aboutsummaryrefslogtreecommitdiff
path: root/www
diff options
context:
space:
mode:
Diffstat (limited to 'www')
-rw-r--r--www/Makefile40
-rw-r--r--www/adguardhome/Makefile2
-rw-r--r--www/adzap/Makefile3
-rw-r--r--www/amfora/Makefile2
-rw-r--r--www/aquatone/Makefile2
-rw-r--r--www/authelia/Makefile1
-rw-r--r--www/bareos-webui/Makefile2
-rw-r--r--www/bareos-webui/distinfo6
-rw-r--r--www/bareos21-webui/Makefile2
-rw-r--r--www/bareos21-webui/distinfo6
-rw-r--r--www/bareos22-webui/Makefile2
-rw-r--r--www/bareos22-webui/distinfo6
-rw-r--r--www/beehive/Makefile2
-rw-r--r--www/bkmrkconv/Makefile3
-rw-r--r--www/bluefish/Makefile2
-rw-r--r--www/bolt/Makefile5
-rw-r--r--www/bozohttpd/Makefile5
-rw-r--r--www/bugzilla2atom/Makefile2
-rw-r--r--www/caddy-custom/Makefile2
-rw-r--r--www/caddy-custom/pkg-descr2
-rw-r--r--www/caddy/Makefile2
-rw-r--r--www/carbonapi/Makefile2
-rw-r--r--www/castor/Makefile2
-rw-r--r--www/chems/Makefile3
-rw-r--r--www/chisel/Makefile2
-rw-r--r--www/chromium/Makefile2
-rw-r--r--www/chromium/distinfo14
-rw-r--r--www/chromium/files/patch-chrome_app_chrome__main__delegate.cc44
-rw-r--r--www/chromium/files/patch-chrome_browser_BUILD.gn4
-rw-r--r--www/chromium/files/patch-chrome_browser_chrome__browser__main__extra__parts__linux.cc8
-rw-r--r--www/chromium/files/patch-chrome_browser_devtools_BUILD.gn10
-rw-r--r--www/chromium/files/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc6
-rw-r--r--www/chromium/files/patch-chrome_browser_prefs_browser__prefs.cc6
-rw-r--r--www/chromium/files/patch-chrome_browser_ui_views_tabs_tab.cc4
-rw-r--r--www/chromium/files/patch-components_viz_service_display__embedder_skia__output__surface__impl.cc10
-rw-r--r--www/chromium/files/patch-media_base_media__switches.cc4
-rw-r--r--www/chromium/files/patch-net_dns_BUILD.gn16
-rw-r--r--www/chromium/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json514
-rw-r--r--www/chromium/files/patch-third__party_ffmpeg_configure13
-rw-r--r--www/chromium/files/patch-ui_base_ui__base__features.cc6
-rw-r--r--www/cl-lml-sbcl/Makefile2
-rw-r--r--www/clearsilver/Makefile2
-rw-r--r--www/cobalt/Makefile2
-rw-r--r--www/colly/Makefile2
-rw-r--r--www/cpr/Makefile1
-rw-r--r--www/crawl/Makefile5
-rw-r--r--www/cssed/Makefile4
-rw-r--r--www/deno/Makefile1
-rw-r--r--www/devd/Makefile2
-rw-r--r--www/dezoomify-rs/Makefile2
-rw-r--r--www/dillo2/Makefile16
-rw-r--r--www/dillo2/distinfo6
-rw-r--r--www/dillo2/files/extra-patches-openssl41
-rw-r--r--www/dillo2/pkg-plist5
-rw-r--r--www/domoticz/Makefile3
-rw-r--r--www/domoticz/distinfo6
-rw-r--r--www/domoticz/pkg-plist873
-rw-r--r--www/dot-http/Makefile2
-rw-r--r--www/dpp/Makefile1
-rw-r--r--www/drill/Makefile2
-rw-r--r--www/dufs/Makefile2
-rw-r--r--www/eden/Makefile2
-rw-r--r--www/element-web/Makefile4
-rw-r--r--www/element-web/distinfo6
-rw-r--r--www/element-web/pkg-plist48
-rw-r--r--www/fabio/Makefile2
-rw-r--r--www/ffproxy/Makefile7
-rw-r--r--www/ffsend/Makefile2
-rw-r--r--www/filtron/Makefile2
-rw-r--r--www/firefox-esr/Makefile3
-rw-r--r--www/firefox-esr/distinfo6
-rw-r--r--www/firefox-esr/files/patch-llvm18199
-rw-r--r--www/firefox-esr/files/patch-rust-1.78.03582
-rw-r--r--www/firefox-esr/files/patch-rust-1.78.0-arm64
-rw-r--r--www/firefox/Makefile7
-rw-r--r--www/firefox/distinfo6
-rw-r--r--www/firefox/files/patch-bug189059328
-rw-r--r--www/firefox/files/patch-libwebrtc-generated335
-rw-r--r--www/firefox/files/patch-rust-1.78.03562
-rw-r--r--www/flexget/Makefile4
-rw-r--r--www/forgejo/Makefile16
-rw-r--r--www/forgejo/distinfo6
-rw-r--r--www/forgejo/files/forgejo.in16
-rw-r--r--www/forgejo/files/pkg-message.in27
-rw-r--r--www/forgejo/pkg-message13
-rw-r--r--www/galene/Makefile1
-rw-r--r--www/galene/distinfo78
-rw-r--r--www/garage/Makefile4
-rw-r--r--www/garage/Makefile.crates489
-rw-r--r--www/garage/distinfo984
-rw-r--r--www/garage/files/garage.in11
-rw-r--r--www/geckodriver/Makefile2
-rw-r--r--www/ghostunnel/Makefile2
-rw-r--r--www/gitea/Makefile8
-rw-r--r--www/gitea/distinfo6
-rw-r--r--www/gitea/files/app.ini.sample.in46
-rw-r--r--www/gitea/files/gitea.in16
-rw-r--r--www/gitlab-pages/Makefile3
-rw-r--r--www/gitlab-pages/distinfo10
-rw-r--r--www/gitlab-workhorse/Makefile2
-rw-r--r--www/gitlab-workhorse/distinfo10
-rw-r--r--www/gitlab/Makefile84
-rw-r--r--www/gitlab/distinfo16
-rw-r--r--www/gitlab/files/patch-Gemfile59
-rw-r--r--www/gitlab/files/patch-config_gitlab.yml.example14
-rw-r--r--www/gitlab/pkg-message4
-rw-r--r--www/glpi/Makefile3
-rw-r--r--www/glpi/distinfo6
-rw-r--r--www/glpi/pkg-plist53
-rw-r--r--www/go-www/Makefile2
-rw-r--r--www/gobuffalo/Makefile2
-rw-r--r--www/gohugo/Makefile4
-rw-r--r--www/gohugo/distinfo10
-rw-r--r--www/goose/Makefile4
-rw-r--r--www/gotty/Makefile2
-rw-r--r--www/grafana/Makefile2
-rw-r--r--www/grafana9/Makefile2
-rw-r--r--www/gurl/Makefile2
-rw-r--r--www/h2o/Makefile41
-rw-r--r--www/h2o/distinfo6
-rw-r--r--www/h2o/files/extra-patch-cputype-defined11
-rw-r--r--www/h2o/files/patch-CMakeLists.txt98
-rw-r--r--www/h2o/files/patch-src_ssl.c4
-rw-r--r--www/h2o/pkg-plist30
-rw-r--r--www/hotcrp/Makefile21
-rw-r--r--www/hotcrp/distinfo6
-rw-r--r--www/hotcrp/pkg-descr5
-rw-r--r--www/hotcrp/pkg-plist317
-rw-r--r--www/hurl/Makefile3
-rw-r--r--www/hurl/Makefile.crates130
-rw-r--r--www/hurl/distinfo266
-rw-r--r--www/icapeg/Makefile2
-rw-r--r--www/ikiwiki/Makefile5
-rw-r--r--www/ikiwiki/distinfo6
-rw-r--r--www/ilias/Makefile10
-rw-r--r--www/ilias/distinfo6
-rw-r--r--www/interchange/Makefile3
-rw-r--r--www/iridium/files/patch-chrome_browser_devtools_BUILD.gn10
-rw-r--r--www/iridium/files/patch-chrome_browser_safe__browsing_BUILD.gn10
-rw-r--r--www/iridium/files/patch-components_BUILD.gn22
-rw-r--r--www/iridium/files/patch-content_browser_BUILD.gn57
-rw-r--r--www/iridium/files/patch-net_BUILD.gn22
-rw-r--r--www/iridium/files/patch-net_dns_BUILD.gn16
-rw-r--r--www/iridium/files/patch-tools_gn_bootstrap_bootstrap.py11
-rw-r--r--www/itop/Makefile5
-rw-r--r--www/jira-cli/Makefile2
-rw-r--r--www/jmeter/Makefile4
-rw-r--r--www/jwt-cli/Makefile2
-rw-r--r--www/kanboard/Makefile2
-rw-r--r--www/kanboard/distinfo6
-rw-r--r--www/kanboard/pkg-plist3
-rw-r--r--www/kineto/Makefile2
-rw-r--r--www/kiwix-tools/Makefile5
-rw-r--r--www/kiwix-tools/distinfo6
-rw-r--r--www/ladybird/Makefile4
-rw-r--r--www/ladybird/distinfo26
-rw-r--r--www/ladybird/files/patch-Meta_Lagom_CMakeLists.txt10
-rw-r--r--www/ladybird/files/patch-Userland_Libraries_LibCore_Environment.cpp34
-rw-r--r--www/ladybird/files/patch-Userland_Libraries_LibJS_Heap_BlockAllocator.cpp23
-rw-r--r--www/ladybird/pkg-plist2017
-rw-r--r--www/larbin/Makefile3
-rw-r--r--www/libdatachannel/Makefile2
-rw-r--r--www/libdatachannel/distinfo6
-rw-r--r--www/libdatachannel/pkg-plist9
-rw-r--r--www/libjwt/Makefile2
-rw-r--r--www/libjwt/distinfo6
-rw-r--r--www/libjwt/pkg-plist2
-rw-r--r--www/libnghttp2/Makefile6
-rw-r--r--www/libnghttp2/distinfo6
-rw-r--r--www/libnghttp2/pkg-plist2
-rw-r--r--www/libnghttp3/Makefile2
-rw-r--r--www/libnghttp3/distinfo6
-rw-r--r--www/libnghttp3/pkg-plist2
-rw-r--r--www/librespeed/Makefile2
-rw-r--r--www/librespeed/distinfo6
-rw-r--r--www/librewolf/Makefile1
-rw-r--r--www/librewolf/files/patch-rust-1.78.03542
-rw-r--r--www/librewolf/files/patch-rust-1.78.0-arm60
-rw-r--r--www/librtcdcpp/Makefile2
-rw-r--r--www/links/Makefile2
-rw-r--r--www/linux-chrome/Makefile58
-rw-r--r--www/linux-chrome/distinfo3
-rw-r--r--www/linux-chrome/files/google-chrome.in20
-rw-r--r--www/linux-chrome/pkg-descr6
-rw-r--r--www/linux-chrome/pkg-plist104
-rw-r--r--www/linux-rl9-libnghttp2/Makefile23
-rw-r--r--www/linux-rl9-libnghttp2/distinfo7
-rw-r--r--www/linux-rl9-libnghttp2/pkg-plist.aarch644
-rw-r--r--www/linux-rl9-libnghttp2/pkg-plist.amd644
-rw-r--r--www/loco/Makefile2
-rw-r--r--www/luakit-devel/Makefile22
-rw-r--r--www/luakit-devel/distinfo6
-rw-r--r--www/luakit-devel/files/patch-config.mk15
-rw-r--r--www/lux/Makefile2
-rw-r--r--www/lychee/Makefile2
-rw-r--r--www/lynx-current/Makefile3
-rw-r--r--www/lynx-current/distinfo6
-rw-r--r--www/lynx-current/files/patch-makefile.in28
-rw-r--r--www/lynx-current/pkg-plist1
-rw-r--r--www/lynx/Makefile2
-rw-r--r--www/lzr/Makefile2
-rw-r--r--www/mattermost-server/Makefile9
-rw-r--r--www/mattermost-server/distinfo6
-rw-r--r--www/mattermost-server/pkg-plist43
-rw-r--r--www/mattermost-webapp/Makefile3
-rw-r--r--www/mattermost-webapp/distinfo6
-rw-r--r--www/mattermost-webapp/pkg-plist470
-rw-r--r--www/microbin/Makefile2
-rw-r--r--www/miniflux/Makefile21
-rw-r--r--www/miniflux/distinfo44
-rw-r--r--www/minio/Makefile2
-rw-r--r--www/miniserve/Makefile2
-rw-r--r--www/mirrorselect/Makefile2
-rw-r--r--www/mod_auth_openid/Makefile3
-rw-r--r--www/mod_tidy/Makefile31
-rw-r--r--www/mod_tidy/distinfo2
-rw-r--r--www/mod_tidy/pkg-descr6
-rw-r--r--www/monolith/Makefile2
-rw-r--r--www/moodle41/Makefile1
-rw-r--r--www/moodle42/Makefile1
-rw-r--r--www/moodle43/Makefile1
-rw-r--r--www/moodle44/Makefile1
-rw-r--r--www/morty/Makefile2
-rw-r--r--www/ncgopher/Makefile2
-rw-r--r--www/newsboat/Makefile2
-rw-r--r--www/nextcloud-appointments/Makefile8
-rw-r--r--www/nextcloud-appointments/distinfo6
-rw-r--r--www/nextcloud-calendar/Makefile3
-rw-r--r--www/nextcloud-calendar/distinfo6
-rw-r--r--www/nextcloud-contacts/Makefile5
-rw-r--r--www/nextcloud-contacts/distinfo6
-rw-r--r--www/nextcloud-deck/Makefile5
-rw-r--r--www/nextcloud-deck/distinfo6
-rw-r--r--www/nextcloud-forms/Makefile1
-rw-r--r--www/nextcloud-groupfolders/Makefile5
-rw-r--r--www/nextcloud-groupfolders/distinfo6
-rw-r--r--www/nextcloud-notes/Makefile3
-rw-r--r--www/nextcloud-notes/distinfo6
-rw-r--r--www/nextcloud-tasks/Makefile5
-rw-r--r--www/nextcloud-tasks/distinfo6
-rw-r--r--www/nextcloud/Makefile3
-rw-r--r--www/nextcloud/distinfo6
-rw-r--r--www/nghttp2/Makefile14
-rw-r--r--www/nghttp2/distinfo6
-rw-r--r--www/nghttp2/pkg-plist1
-rw-r--r--www/nginx-devel/Makefile5
-rw-r--r--www/nginx-devel/Makefile.extmod2
-rw-r--r--www/nginx-devel/distinfo10
-rw-r--r--www/nginx-prometheus-exporter/Makefile2
-rw-r--r--www/nginx-vts-exporter/Makefile2
-rw-r--r--www/nginx/Makefile2
-rw-r--r--www/nginx/Makefile.extmod10
-rw-r--r--www/nginx/Makefile.options.desc1
-rw-r--r--www/nginx/distinfo2
-rw-r--r--www/nginx/pkg-plist1
-rw-r--r--www/node20/Makefile.version2
-rw-r--r--www/node20/distinfo6
-rw-r--r--www/node20/files/patch-tools_install.py11
-rw-r--r--www/node20/pkg-descr6
-rw-r--r--www/node21/Makefile3
-rw-r--r--www/node22/Makefile88
-rw-r--r--www/node22/Makefile.version1
-rw-r--r--www/node22/distinfo3
-rw-r--r--www/node22/files/patch-common.gypi20
-rw-r--r--www/node22/files/patch-deps-openssl-config-archs-linux-elf-no-asm-openssl-cl.gypi11
-rw-r--r--www/node22/files/patch-deps-openssl-config-archs-linux-elf-no-asm-openssl.gypi11
-rw-r--r--www/node22/files/patch-deps-openssl-openssl-cl_no_asm.gypi17
-rw-r--r--www/node22/files/patch-deps-openssl-openssl_no_asm.gypi11
-rw-r--r--www/node22/files/patch-deps-v8-src-base-platform-platform-freebsd.cc13
-rw-r--r--www/node22/files/patch-deps-v8-src-base-small-vector.h10
-rw-r--r--www/node22/files/patch-deps-v8-src-codegen-arm-cpu-arm.cc18
-rw-r--r--www/node22/files/patch-deps-v8-src-codegen-ppc-constants-ppc.h20
-rw-r--r--www/node22/files/patch-deps-v8-src-libsampler-sampler.cc13
-rw-r--r--www/node22/files/patch-node.gypi12
-rw-r--r--www/node22/files/patch-openssl315
-rw-r--r--www/node22/files/patch-src-cares_wrap.h11
-rw-r--r--www/node22/files/patch-tools-v8_gypfiles-v8.gyp11
-rw-r--r--www/node22/pkg-descr2
-rw-r--r--www/node22/pkg-message7
-rw-r--r--www/node22/pkg-plist2375
-rw-r--r--www/npm-node22/Makefile5
-rw-r--r--www/oauth2-proxy/Makefile122
-rw-r--r--www/oauth2-proxy/distinfo238
-rw-r--r--www/oauth2-proxy/files/oauth2_proxy.in (renamed from www/oauth2-proxy/files/oauth2-proxy.in)50
-rw-r--r--www/offpunk/Makefile5
-rw-r--r--www/offpunk/distinfo6
-rw-r--r--www/oneshot/Makefile2
-rw-r--r--www/onionshare-cli/Makefile1
-rw-r--r--www/onionshare/Makefile2
-rw-r--r--www/openemr/Makefile39
-rw-r--r--www/openemr/distinfo3
-rw-r--r--www/openemr/files/pkg-message.in26
-rw-r--r--www/openemr/pkg-descr5
-rw-r--r--www/owncast/Makefile2
-rw-r--r--www/p5-HTML5-DOM/Makefile4
-rw-r--r--www/p5-HTML5-DOM/distinfo6
-rw-r--r--www/p5-HTTP-Tiny/Makefile10
-rw-r--r--www/p5-Mojolicious/Makefile2
-rw-r--r--www/p5-Mojolicious/distinfo6
-rw-r--r--www/p5-Mojolicious/pkg-plist2
-rw-r--r--www/p5-REST-Client/Makefile4
-rw-r--r--www/p5-REST-Client/distinfo6
-rw-r--r--www/pear-Structures_DataGrid_Renderer_Smarty/Makefile3
-rw-r--r--www/php83-tidy/Makefile2
-rw-r--r--www/phpfpmtop/Makefile2
-rw-r--r--www/phpsysinfo/Makefile3
-rw-r--r--www/piwigo/Makefile2
-rw-r--r--www/pomerium/Makefile2
-rw-r--r--www/privatebin/Makefile3
-rw-r--r--www/privatebin/distinfo6
-rw-r--r--www/privatebin/pkg-plist14
-rw-r--r--www/proxygen/Makefile3
-rw-r--r--www/proxygen/distinfo6
-rw-r--r--www/py-adblock/Makefile2
-rw-r--r--www/py-aioh2/Makefile5
-rw-r--r--www/py-aiohttp-session/Makefile1
-rw-r--r--www/py-aiohttp_cors/Makefile5
-rw-r--r--www/py-aiostream/Makefile6
-rw-r--r--www/py-aiostream/distinfo6
-rw-r--r--www/py-aiostream/files/patch-pyproject.toml9
-rw-r--r--www/py-arxiv/Makefile5
-rw-r--r--www/py-autobahn/Makefile2
-rw-r--r--www/py-betamax/Makefile6
-rw-r--r--www/py-biscuits/Makefile6
-rw-r--r--www/py-bleach/Makefile8
-rw-r--r--www/py-bleach/files/patch-setup.py11
-rw-r--r--www/py-boto3/Makefile2
-rw-r--r--www/py-boto3/distinfo6
-rw-r--r--www/py-branca/Makefile2
-rw-r--r--www/py-branca/distinfo6
-rw-r--r--www/py-caldav/Makefile5
-rw-r--r--www/py-channels-redis/Makefile (renamed from www/py-dj42-channels-redis/Makefile)4
-rw-r--r--www/py-channels-redis/distinfo (renamed from www/py-dj42-channels-redis/distinfo)0
-rw-r--r--www/py-channels-redis/pkg-descr (renamed from www/py-dj42-channels-redis/pkg-descr)0
-rw-r--r--www/py-cheroot/Makefile9
-rw-r--r--www/py-cheroot/distinfo6
-rw-r--r--www/py-cinemagoer/Makefile5
-rw-r--r--www/py-cookies/Makefile6
-rw-r--r--www/py-cssmin/Makefile7
-rw-r--r--www/py-cssutils/Makefile4
-rw-r--r--www/py-cssutils/distinfo6
-rw-r--r--www/py-daphne/Makefile1
-rw-r--r--www/py-dj-database-url/Makefile3
-rw-r--r--www/py-dj42-django-modelcluster/Makefile5
-rw-r--r--www/py-dj42-django-permissionedforms/Makefile5
-rw-r--r--www/py-dj42-drf-spectacular-sidecar/Makefile3
-rw-r--r--www/py-dj42-drf-spectacular-sidecar/distinfo6
-rw-r--r--www/py-django-allauth/Makefile22
-rw-r--r--www/py-django-allauth/distinfo6
-rw-r--r--www/py-django-annoying/Makefile4
-rw-r--r--www/py-django-assets/Makefile4
-rw-r--r--www/py-django-auditlog/Makefile (renamed from www/py-dj42-django-auditlog/Makefile)2
-rw-r--r--www/py-django-auditlog/distinfo (renamed from www/py-dj42-django-auditlog/distinfo)0
-rw-r--r--www/py-django-auditlog/pkg-descr (renamed from www/py-dj42-django-auditlog/pkg-descr)0
-rw-r--r--www/py-django-auth-ldap/Makefile3
-rw-r--r--www/py-django-bitfield/Makefile3
-rw-r--r--www/py-django-bleach/Makefile3
-rw-r--r--www/py-django-bootstrap3/Makefile3
-rw-r--r--www/py-django-braces/Makefile4
-rw-r--r--www/py-django-cacheops/Makefile3
-rw-r--r--www/py-django-celery-results/Makefile (renamed from www/py-dj42-django-celery-results/Makefile)2
-rw-r--r--www/py-django-celery-results/distinfo (renamed from www/py-dj42-django-celery-results/distinfo)0
-rw-r--r--www/py-django-celery-results/pkg-descr (renamed from www/py-dj42-django-celery-results/pkg-descr)0
-rw-r--r--www/py-django-choices-field/Makefile3
-rw-r--r--www/py-django-classy-tags/Makefile7
-rw-r--r--www/py-django-cms/Makefile3
-rw-r--r--www/py-django-compression-middleware/Makefile (renamed from www/py-dj42-django-compression-middleware/Makefile)2
-rw-r--r--www/py-django-compression-middleware/distinfo (renamed from www/py-dj42-django-compression-middleware/distinfo)0
-rw-r--r--www/py-django-compression-middleware/pkg-descr (renamed from www/py-dj42-django-compression-middleware/pkg-descr)0
-rw-r--r--www/py-django-configurations/Makefile5
-rw-r--r--www/py-django-constance/Makefile3
-rw-r--r--www/py-django-contact-form/Makefile3
-rw-r--r--www/py-django-contrib-comments/Makefile4
-rw-r--r--www/py-django-cors-headers/Makefile3
-rw-r--r--www/py-django-crispy-forms/Makefile3
-rw-r--r--www/py-django-cron/Makefile3
-rw-r--r--www/py-django-csp/Makefile3
-rw-r--r--www/py-django-debreach/Makefile2
-rw-r--r--www/py-django-debug-toolbar/Makefile3
-rw-r--r--www/py-django-dpaste/Makefile41
-rw-r--r--www/py-django-dpaste/distinfo3
-rw-r--r--www/py-django-dpaste/pkg-descr3
-rw-r--r--www/py-django-extensions/Makefile3
-rw-r--r--www/py-django-filer/Makefile3
-rw-r--r--www/py-django-filter/Makefile3
-rw-r--r--www/py-django-formset-js-improved/Makefile4
-rw-r--r--www/py-django-graphiql-debug-toolbar/Makefile4
-rw-r--r--www/py-django-guardian/Makefile3
-rw-r--r--www/py-django-hashid-field/Makefile9
-rw-r--r--www/py-django-hashid-field/distinfo6
-rw-r--r--www/py-django-haystack/Makefile4
-rw-r--r--www/py-django-hijack/Makefile3
-rw-r--r--www/py-django-htmx/Makefile3
-rw-r--r--www/py-django-jquery-js/Makefile4
-rw-r--r--www/py-django-js-asset/Makefile3
-rw-r--r--www/py-django-jsonview/Makefile8
-rw-r--r--www/py-django-markdownx/Makefile7
-rw-r--r--www/py-django-model-utils/Makefile3
-rw-r--r--www/py-django-modelcluster/Makefile7
-rw-r--r--www/py-django-mptt/Makefile3
-rw-r--r--www/py-django-multiselectfield/Makefile (renamed from www/py-dj42-django-multiselectfield/Makefile)2
-rw-r--r--www/py-django-multiselectfield/distinfo (renamed from www/py-dj42-django-multiselectfield/distinfo)0
-rw-r--r--www/py-django-multiselectfield/pkg-descr (renamed from www/py-dj42-django-multiselectfield/pkg-descr)0
-rw-r--r--www/py-django-netfields/Makefile3
-rw-r--r--www/py-django-otp-yubikey/Makefile5
-rw-r--r--www/py-django-otp/Makefile3
-rw-r--r--www/py-django-permissionedforms/Makefile7
-rw-r--r--www/py-django-photologue/Makefile3
-rw-r--r--www/py-django-picklefield/Makefile5
-rw-r--r--www/py-django-polymorphic/Makefile4
-rw-r--r--www/py-django-post_office/Makefile3
-rw-r--r--www/py-django-prometheus/Makefile3
-rw-r--r--www/py-django-pyscss/Makefile7
-rw-r--r--www/py-django-ranged-response/Makefile4
-rw-r--r--www/py-django-recaptcha/Makefile3
-rw-r--r--www/py-django-redis/Makefile7
-rw-r--r--www/py-django-registration-redux/Makefile3
-rw-r--r--www/py-django-registration/Makefile3
-rw-r--r--www/py-django-requests-debug-toolbar/Makefile5
-rw-r--r--www/py-django-reversion/Makefile3
-rw-r--r--www/py-django-rich/Makefile3
-rw-r--r--www/py-django-sekizai/Makefile3
-rw-r--r--www/py-django-simple-captcha/Makefile3
-rw-r--r--www/py-django-simple-history/Makefile9
-rw-r--r--www/py-django-smart-selects/Makefile3
-rw-r--r--www/py-django-solo/Makefile3
-rw-r--r--www/py-django-sortedm2m/Makefile4
-rw-r--r--www/py-django-star-ratings/Makefile4
-rw-r--r--www/py-django-statici18n/Makefile3
-rw-r--r--www/py-django-storages/Makefile30
-rw-r--r--www/py-django-storages/distinfo6
-rw-r--r--www/py-django-tables2/Makefile3
-rw-r--r--www/py-django-tagging/Makefile4
-rw-r--r--www/py-django-taggit/Makefile3
-rw-r--r--www/py-django-tastypie/Makefile5
-rw-r--r--www/py-django-tastypie/distinfo6
-rw-r--r--www/py-django-templatetag-sugar/Makefile4
-rw-r--r--www/py-django-timezone-field/Makefile3
-rw-r--r--www/py-django-tinymce/Makefile3
-rw-r--r--www/py-django-treebeard/Makefile5
-rw-r--r--www/py-django-unfold/Makefile4
-rw-r--r--www/py-django-unfold/distinfo6
-rw-r--r--www/py-django-webpack-loader/Makefile3
-rw-r--r--www/py-django-widget-tweaks/Makefile3
-rw-r--r--www/py-django32/Makefile2
-rw-r--r--www/py-django42/Makefile5
-rw-r--r--www/py-django42/distinfo6
-rw-r--r--www/py-django42/files/patch-setup.cfg2
-rw-r--r--www/py-django50/Makefile5
-rw-r--r--www/py-django50/distinfo6
-rw-r--r--www/py-django50/files/patch-setup.cfg2
-rw-r--r--www/py-djangocms-admin-style/Makefile3
-rw-r--r--www/py-djangoql/Makefile3
-rw-r--r--www/py-djangorestframework-guardian/Makefile (renamed from www/py-dj42-djangorestframework-guardian/Makefile)6
-rw-r--r--www/py-djangorestframework-guardian/distinfo (renamed from www/py-dj42-djangorestframework-guardian/distinfo)0
-rw-r--r--www/py-djangorestframework-guardian/pkg-descr (renamed from www/py-dj42-djangorestframework-guardian/pkg-descr)0
-rw-r--r--www/py-djangorestframework/Makefile3
-rw-r--r--www/py-djangosaml2/Makefile3
-rw-r--r--www/py-draftjs-exporter/Makefile6
-rw-r--r--www/py-drf-spectacular-sidecar/Makefile5
-rw-r--r--www/py-drf-spectacular-sidecar/distinfo6
-rw-r--r--www/py-drf-spectacular/Makefile3
-rw-r--r--www/py-drf-writable-nested/Makefile (renamed from www/py-dj42-drf-writable-nested/Makefile)4
-rw-r--r--www/py-drf-writable-nested/distinfo (renamed from www/py-dj42-drf-writable-nested/distinfo)0
-rw-r--r--www/py-drf-writable-nested/pkg-descr (renamed from www/py-dj42-drf-writable-nested/pkg-descr)0
-rw-r--r--www/py-drf-yasg/Makefile3
-rw-r--r--www/py-dropbox/Makefile5
-rw-r--r--www/py-dropbox/files/patch-setup.py9
-rw-r--r--www/py-enmerkar/Makefile8
-rw-r--r--www/py-fastapi/Makefile5
-rw-r--r--www/py-fastapi/distinfo6
-rw-r--r--www/py-flask-apscheduler/Makefile6
-rw-r--r--www/py-flask-apscheduler/files/patch-setup.py9
-rw-r--r--www/py-flask-caching/Makefile4
-rw-r--r--www/py-flask-caching/distinfo6
-rw-r--r--www/py-flask-json/Makefile5
-rw-r--r--www/py-flask-json/files/patch-setup.py11
-rw-r--r--www/py-flask-marshmallow/Makefile5
-rw-r--r--www/py-flask-script/Makefile5
-rw-r--r--www/py-flask-script/files/patch-setup.py11
-rw-r--r--www/py-flask-smorest/Makefile2
-rw-r--r--www/py-flask-smorest/distinfo6
-rw-r--r--www/py-forcediphttpsadapter/Makefile5
-rw-r--r--www/py-freenit/Makefile4
-rw-r--r--www/py-freenit/distinfo6
-rw-r--r--www/py-ghp-import/Makefile6
-rw-r--r--www/py-google-api-core/Makefile2
-rw-r--r--www/py-google-api-core/distinfo6
-rw-r--r--www/py-google-api-python-client/Makefile2
-rw-r--r--www/py-google-api-python-client/distinfo6
-rw-r--r--www/py-google-cloud-aiplatform/Makefile2
-rw-r--r--www/py-google-cloud-aiplatform/distinfo6
-rw-r--r--www/py-google-cloud-bigquery/Makefile4
-rw-r--r--www/py-google-cloud-bigquery/distinfo6
-rw-r--r--www/py-google-cloud-dlp/Makefile2
-rw-r--r--www/py-google-cloud-dlp/distinfo6
-rw-r--r--www/py-gunicorn/Makefile1
-rw-r--r--www/py-gunicorn/files/gunicorn.in2
-rw-r--r--www/py-horizon/Makefile9
-rw-r--r--www/py-hstspreload/Makefile2
-rw-r--r--www/py-hstspreload/distinfo6
-rw-r--r--www/py-httptools/Makefile5
-rw-r--r--www/py-instabot/Makefile6
-rw-r--r--www/py-jsonfield/Makefile8
-rw-r--r--www/py-mechanicalsoup/Makefile5
-rw-r--r--www/py-mechanicalsoup/files/patch-setup.py11
-rw-r--r--www/py-nh3/Makefile1
-rw-r--r--www/py-notebook/Makefile1
-rw-r--r--www/py-paste/Makefile6
-rw-r--r--www/py-paste/distinfo6
-rw-r--r--www/py-planet/Makefile5
-rw-r--r--www/py-postorius/Makefile7
-rw-r--r--www/py-priority/Makefile6
-rw-r--r--www/py-priority1/Makefile6
-rw-r--r--www/py-pygsheets/Makefile5
-rw-r--r--www/py-pyramid-mako/Makefile6
-rw-r--r--www/py-pysmartdl/Makefile7
-rw-r--r--www/py-pysmartdl/files/patch-setup.py9
-rw-r--r--www/py-python-dotenv/Makefile6
-rw-r--r--www/py-pywikibot/Makefile2
-rw-r--r--www/py-pywikibot/distinfo6
-rw-r--r--www/py-pywry/Makefile2
-rw-r--r--www/py-qt6-webengine/Makefile2
-rw-r--r--www/py-qt6-webengine/distinfo6
-rw-r--r--www/py-qt6-webengine/pkg-plist2
-rw-r--r--www/py-quilt3/Makefile5
-rw-r--r--www/py-requests-aws4auth/Makefile5
-rw-r--r--www/py-requests-futures/Makefile5
-rw-r--r--www/py-requests-toolbelt/Makefile5
-rw-r--r--www/py-requests-wsgi-adapter/Makefile5
-rw-r--r--www/py-requests/Makefile5
-rw-r--r--www/py-rfc3987/Makefile6
-rw-r--r--www/py-sentinelhub/Makefile3
-rw-r--r--www/py-sentinelhub/distinfo6
-rw-r--r--www/py-social-auth-app-django/Makefile4
-rw-r--r--www/py-social-auth-app-django/distinfo6
-rw-r--r--www/py-spyne/Makefile8
-rw-r--r--www/py-strawberry-graphql-django/Makefile7
-rw-r--r--www/py-strawberry-graphql-django/distinfo6
-rw-r--r--www/py-swapper/Makefile10
-rw-r--r--www/py-ticketutil/Makefile5
-rw-r--r--www/py-ticketutil/files/patch-setup.py2
-rw-r--r--www/py-tornado4/Makefile7
-rw-r--r--www/py-tornado5/Makefile7
-rw-r--r--www/py-wagtail-2fa/Makefile8
-rw-r--r--www/py-wagtail-airtable/Makefile4
-rw-r--r--www/py-wagtail-bakery/Makefile5
-rw-r--r--www/py-wagtail-factories/Makefile5
-rw-r--r--www/py-wagtail/Makefile17
-rw-r--r--www/py-wagtail/distinfo6
-rw-r--r--www/py-wagtail/files/patch-setup.py11
-rw-r--r--www/py-webargs/Makefile16
-rw-r--r--www/py-webargs/distinfo6
-rw-r--r--www/py-webtest/Makefile5
-rw-r--r--www/py-webtest/files/patch-setup.py11
-rw-r--r--www/py-werkzeug/Makefile4
-rw-r--r--www/py-werkzeug/distinfo6
-rw-r--r--www/py-werkzeug/files/patch-pyproject.toml6
-rw-r--r--www/py-woob/Makefile4
-rw-r--r--www/pydio-cells/Makefile3
-rw-r--r--www/pydio-cells/distinfo10
-rw-r--r--www/qt5-webengine/Makefile1
-rw-r--r--www/qt5-webengine/files/patch-security-rollup273
-rw-r--r--www/qt5-webengine/files/patch-src_3rdparty_chromium_content_browser_BUILD.gn32
-rw-r--r--www/qt6-httpserver/distinfo6
-rw-r--r--www/qt6-webchannel/distinfo6
-rw-r--r--www/qt6-webengine/Makefile20
-rw-r--r--www/qt6-webengine/distinfo6
-rw-r--r--www/qt6-webengine/files/patch-cmake_Functions.cmake27
-rw-r--r--www/qt6-webengine/files/patch-configure.cmake14
-rw-r--r--www/qt6-webengine/files/patch-security-rollup6033
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_BUILD.gn63
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_BUILD.gn103
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_dispatcher_tls.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_BUILD.gn11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_address__space__randomization.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_page__allocator.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_page__allocator__constants.h10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_page__allocator__internals__posix.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__address__space.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc.gni14
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc__base_compiler__specific.h32
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc__base_debug_stack__trace__posix.cc34
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc__base_rand__util__posix.cc8
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc__config.h8
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc__constants.h15
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc__forward.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__page.h11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__page__constants.h11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__root.cc10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_spinning__mutex.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_starscan_stack_stack.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_base__switches.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_base__switches.h6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_compiler__specific.h35
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_debug_elf__reader.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_debug_stack__trace__posix.cc52
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_files_file__util__posix.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_i18n_icu__util.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_linux__util.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_memory_madv__free__discardable__memory__posix.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_memory_platform__shared__memory__region.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_process_launch.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_process_process__metrics.cc8
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_process_process__metrics.h6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_process_process__metrics__openbsd.cc10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_process_process__metrics__posix.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_process_process__posix.cc33
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_profiler_module__cache.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_profiler_stack__sampling__profiler__test__util.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_rand__util.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_system_sys__info.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_system_sys__info.h10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_system_sys__info__posix.cc15
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_test_test__file__util__linux.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_threading_hang__watcher.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_threading_platform__thread__bsd.cc34
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_threading_platform__thread__internal__posix.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_threading_platform__thread__linux.cc84
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_threading_platform__thread__posix.cc28
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_trace__event_malloc__dump__provider.cc10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_base_trace__event_trace__log.cc16
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_BUILD.gn25
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_BUILDCONFIG.gn2
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_compiler_BUILD.gn49
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_compiler_pgo_BUILD.gn19
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_freetype_freetype.gni11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_linux_BUILD.gn11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_linux_pkg-config.py4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_ozone.gni4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_rust.gni11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_build_toolchain_gcc__toolchain.gni4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_build_toolchain_toolchain.gni11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_cc_BUILD.gn10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_cc_base_features.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_app__management__strings.grdp11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_chromium__strings.grd38
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_generated__resources.grd92
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_google__chrome__strings.grd38
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_profiles__strings.grdp11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_settings__strings.grdp35
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_theme_chrome__unscaled__resources.grd29
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_theme_theme__resources.grd59
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_BUILD.gn16
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_custom__handlers_chrome__protocol__handler__registry__delegate.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_BUILD.gn13
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_api__browser__context__keyed__service__factories.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_enterprise__reporting__private_chrome__desktop__report__request__helper.cc29
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.h11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.cc38
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.h29
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_image__writer__private_removable__storage__provider.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_messaging_native__process__launcher__posix.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_passwords__private_passwords__private__delegate__impl.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_runtime_chrome__runtime__api__delegate.cc13
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_settings__private_prefs__util.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_tabs_tabs__api.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_webrtc__logging__private_webrtc__logging__private__api.cc29
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_webstore__private_webstore__private__api.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_gcm_gcm__profile__service__factory.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_gcm_instance__id_instance__id__profile__service__factory.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_router_discovery_BUILD.gn11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_webrtc_capture__policy__utils.cc18
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_webrtc_chrome__screen__enumerator.cc16
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_webrtc_webrtc__event__log__uploader.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_webrtc_webrtc__log__uploader.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_webrtc_webrtc__logging__controller.cc10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_webrtc_webrtc__logging__controller.h10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_net_system__network__context__manager.cc115
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_net_system__network__context__manager.h29
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_prefs_browser__prefs.cc69
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_prefs_pref__service__incognito__allowlist.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_printing_print__backend__service__manager.cc29
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_printing_printer__query.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_resources_sandbox__internals_sandbox__internals.ts29
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_resources_signin_signin__shared.css11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_resources_signin_sync__confirmation_sync__confirmation__app.html20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_about__ui.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_app__home_app__home__page__handler.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc92
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_connectors__internals_device__trust__utils.cc29
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_management_management__ui.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_management_management__ui__handler.cc53
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_management_management__ui__handler.h37
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_ntp_app__launcher__handler.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_realbox_realbox__handler.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_settings_appearance__handler.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_settings_settings__localized__strings__provider.cc65
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_channel__info.h18
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_channel__info__posix.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_chrome__features.cc83
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_chrome__features.h45
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_chrome__paths.cc84
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_chrome__paths.h29
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_chrome__paths__internal.h11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_chrome__switches.cc19
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_chrome__switches.h17
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_extensions_permissions_chrome__permission__message__rules.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_media_cdm__host__file__path.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_media_cdm__registration.cc52
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_media_component__widevine__cdm__hint__file__linux.h11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_pref__names.h82
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_url__constants.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_url__constants.h11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_webui__url__constants.cc12
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_webui__url__constants.h11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_renderer_chrome__render__frame__observer.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_test_BUILD.gn11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_test_chromedriver_chrome__launcher.cc10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_test_chromedriver_chrome_chrome__finder.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_autofill__payments__strings.grdp4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_autofill_core_browser_contact__info__sync__util.cc18
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_autofill_core_browser_personal__data__manager.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_autofill_core_browser_webdata_autofill__sync__bridge__util.cc22
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_autofill_core_common_autofill__payments__features.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_autofill_core_common_autofill__util.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_commerce__strings.grdp11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_components__chromium__strings.grd4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_components__google__chrome__strings.grd4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_crash_core_app_BUILD.gn10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_crash_core_app_chrome__crashpad__handler.cc12
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_crash_core_browser_crash__upload__list__crashpad.cc26
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_crash_core_common_BUILD.gn4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_browser_mock__signals__aggregator.h11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_browser_signals__aggregator.h11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_browser_signals__aggregator__impl.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_browser_signals__aggregator__impl.h11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_browser_user__permission__service.h11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_browser_user__permission__service__impl.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_browser_user__permission__service__impl.h11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_common_signals__features.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_common_signals__features.h11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_system__signals_platform__delegate.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_embedder__support_user__agent__utils.cc12
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feature__engagement_public_event__constants.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feature__engagement_public_event__constants.h11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feature__engagement_public_feature__configurations.cc21
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feature__engagement_public_feature__constants.cc21
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feature__engagement_public_feature__constants.h21
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feature__engagement_public_feature__list.cc21
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feature__engagement_public_feature__list.h40
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feed_core_proto_v2_wire_version.proto13
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feed_core_v2_proto__util.cc24
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_flags__ui_flags__state.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_gwp__asan_BUILD.gn11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_gwp__asan_client_guarded__page__allocator__posix.cc13
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_gwp__asan_client_gwp__asan.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_gwp__asan_crash__handler_crash__analyzer.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_live__caption_caption__util.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_live__caption_caption__util.h11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_management__strings.grdp11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_media__router_common_providers_cast_channel_cast__message__util.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_metrics_drive__metrics__provider__linux.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_metrics_metrics__log.cc8
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_network__session__configurator_browser_network__session__configurator.cc14
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_optimization__guide_core_optimization__guide__util.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_optimization__guide_core_tflite__model__executor.h62
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_os__crypt_keyring__util__linux.cc17
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_os__crypt_libsecret__util__linux.cc18
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_os__crypt_sync_libsecret__util__linux.cc27
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_os__crypt_sync_os__crypt.h (renamed from www/qt6-webengine/files/patch-src_3rdparty_chromium_components_os__crypt_os__crypt.h)4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_paint__preview_browser_paint__preview__client.cc13
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_paint__preview_player_player__compositor__delegate.cc13
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_password__manager_core_browser_features_password__features.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_password__manager_core_browser_sync_password__sync__bridge.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_password__manager_core_common_password__manager__features.cc15
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_password__manager_core_common_password__manager__features.h21
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_performance__manager_public_features.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_permissions_prediction__service_prediction__common.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_policy_core_browser_policy__pref__mapping__test.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_policy_core_common_cloud_cloud__policy__client.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_policy_core_common_cloud_cloud__policy__util.cc55
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_policy_core_common_policy__loader__common.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_policy_core_common_policy__paths.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_policy_tools_generate__policy__source.py14
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_power__metrics_BUILD.gn11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_power__metrics_energy__metrics__provider.cc21
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_safe__browsing_content_resources_gen__file__type__proto.py20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_safe__browsing_core_browser_db_v4__protocol__manager__util.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_safe__browsing_core_browser_realtime_url__lookup__service__base.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_segmentation__platform_embedder_default__model_cross__device__user__segment.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.cc29
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_services_screen__ai_screen__ai__library__wrapper.cc29
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_startup__metric__utils_common_startup__metric__utils.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_storage__monitor_BUILD.gn2
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_supervised__user_core_browser_proto__fetcher.cc39
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_supervised__user_core_browser_proto__fetcher.h21
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_supervised__user_core_browser_supervised__user__service.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_sync__device__info_local__device__info__util.cc29
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_sync__device__info_local__device__info__util__linux.cc14
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_update__client_update__query__params.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_url__formatter_spoof__checks_idn__spoof__checker.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_user__education_views_help__bubble__view.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_variations_service_google__groups__updater__service.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_variations_service_variations__service.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_common_gpu_dawn__context__provider.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_host_renderer__settings__creation.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_service_display__embedder_skia__output__surface__impl.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_service_display__embedder_skia__output__surface__impl__on__gpu.cc16
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_service_display_skia__renderer.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_service_frame__sinks_root__compositor__frame__sink__impl.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_service_frame__sinks_root__compositor__frame__sink__impl.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_app_content__main.cc2
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_app_content__main__runner__impl.cc83
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_BUILD.gn6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_browser__child__process__host__impl.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_browser__main__loop.cc12
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_child__process__launcher__helper__linux.cc29
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_compositor_viz__process__transport__factory.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_devtools_protocol_system__info__handler.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_file__system__access_file__system__access__local__path__watcher.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_gpu_gpu__data__manager__impl.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_gpu_gpu__data__manager__impl.h11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_gpu_gpu__data__manager__impl__private.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_gpu_gpu__data__manager__impl__private.h20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_gpu_gpu__memory__buffer__manager__singleton.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_gpu_gpu__process__host.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_media_frameless__media__interface__proxy.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_media_media__interface__proxy.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_media_media__keys__listener__manager__impl.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_network__service__instance__impl.cc19
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_back__forward__cache__impl.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_delegated__frame__host.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_media_service__video__capture__device__launcher.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_render__process__host__impl.cc39
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_render__process__host__impl.h31
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_render__view__host__impl.cc10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_render__widget__host__view__aura.cc14
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_render__widget__host__view__aura.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_render__widget__host__view__event__handler.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_sandbox__host__linux.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_scheduler_responsiveness_jank__monitor__impl.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_service__worker_service__worker__context__wrapper.cc15
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_utility__process__host.cc56
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_utility__process__host.h20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_utility__process__host__receiver__bindings.cc19
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_utility__sandbox__delegate.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_web__contents_web__contents__view__aura.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_webui_web__ui__main__frame__observer.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_zygote__host_zygote__host__impl__linux.cc27
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_child_child__process.cc14
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_common_BUILD.gn6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_common_zygote_sandbox__support__linux.cc14
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_gpu_BUILD.gn20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_gpu_gpu__main.cc37
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_gpu_gpu__sandbox__hook__bsd.cc72
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_gpu_gpu__sandbox__hook__bsd.h19
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_gpu_gpu__sandbox__hook__linux.cc70
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_ppapi__plugin_ppapi__blink__platform__impl.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_ppapi__plugin_ppapi__blink__platform__impl.h18
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_ppapi__plugin_ppapi__plugin__main.cc8
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_public_browser_render__process__host.h20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_public_common_common__param__traits__macros.h11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_public_common_content__features.cc12
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_public_common_content__features.h8
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_public_common_content__switches.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_public_common_content__switches.h8
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_renderer_BUILD.gn4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_renderer_render__process__impl.cc10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_renderer_render__thread__impl.cc12
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_renderer_renderer__blink__platform__impl.cc17
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_renderer_renderer__blink__platform__impl.h22
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_renderer_renderer__main__platform__delegate__linux.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_shell_BUILD.gn4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_shell_app_shell__main__delegate.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_test_BUILD.gn6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_utility_services.cc28
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_utility_speech_speech__recognition__sandbox__hook__linux.h10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_utility_utility__blink__platform__with__sandbox__support__impl.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_utility_utility__blink__platform__with__sandbox__support__impl.h17
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_utility_utility__main.cc40
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_zygote_zygote__linux.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_content_zygote_zygote__main__linux.cc28
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_device_bluetooth_bluetooth__adapter.cc12
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_browser_api_api__browser__context__keyed__service__factories.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_browser_api_messaging_message__service.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_browser_api_networking__private_networking__private__delegate__factory.cc10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_browser_extension__prefs.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_browser_pref__names.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_browser_pref__names.h11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_common_api___permission__features.json12
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_common_api_runtime.json16
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_common_command.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_common_features_feature.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_shell_browser_api_runtime_shell__runtime__api__delegate.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_google__apis_gcm_engine_heartbeat__manager.cc8
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_common_gpu__memory__buffer__support.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_dawn__context__provider.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_gles2__cmd__decoder.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_shared__image_angle__vulkan__image__backing__factory.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_shared__image_external__vk__image__backing.cc24
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_shared__image_external__vk__image__backing__factory.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_shared__image_shared__image__factory.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_shared__image_shared__image__manager.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_shared__image_wrapped__sk__image__backing.cc10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_webgpu__decoder__impl.cc23
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_config_gpu__control__list.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_config_gpu__finch__features.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_ipc_common_gpu__memory__buffer__support.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_ipc_common_gpu__memory__buffer__support.h6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_ipc_service_gpu__init.cc33
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_generate__bindings.py4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_semaphore__handle.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_vulkan__device__queue.cc16
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_vulkan__device__queue.h10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_vulkan__function__pointers.cc13
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_vulkan__function__pointers.h8
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_vulkan__image.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_vulkan__util.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_headless_lib_browser_headless__browser__main__parts__posix.cc16
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_headless_lib_browser_headless__web__contents__impl.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_headless_lib_headless__content__main__delegate.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ipc_ipc__message__utils.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_BUILD.gn2
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_audio_BUILD.gn4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_audio_audio__input__device.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_audio_sndio_sndio__input.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_base_cdm__promise__adapter.cc16
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_base_media__switches.cc46
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_base_media__switches.h22
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_base_video__frame.cc12
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_base_video__frame.h14
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_fake__video__capture__device__factory.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_linux_fake__v4l2__impl.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_linux_fake__v4l2__impl.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_linux_v4l2__capture__delegate.cc123
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_linux_v4l2__capture__delegate.h40
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_linux_video__capture__device__factory__v4l2.cc8
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_video__capture__buffer__tracker__factory__impl.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_video__capture__device__client.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_cdm_library__cdm_cdm__paths.gni11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_buffer__validation.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_chromeos_video__decoder__pipeline.cc15
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_gpu__video__encode__accelerator__factory.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.cc10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.cc14
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_vaapi_vaapi__video__decoder.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_vaapi_vaapi__wrapper.cc56
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_media__options.gni6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_mojo_mojom_stable_stable__video__decoder__types__mojom__traits.cc15
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_mojo_mojom_stable_stable__video__decoder__types__mojom__traits.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_video_gpu__memory__buffer__video__frame__pool.cc8
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_video_video__encode__accelerator__adapter.cc2
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_media_video_video__encode__accelerator__adapter__test.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_mojo_core_BUILD.gn4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_mojo_core_embedder_features.h8
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_mojo_public_tools_bindings_mojom.gni4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_net_BUILD.gn31
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_net_base_features.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_net_base_mock__network__change__notifier.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_net_base_mock__network__change__notifier.h20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_net_base_network__change__notifier.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_net_base_network__change__notifier__passive.cc (renamed from www/qt6-webengine/files/patch-src_3rdparty_chromium_net_base_network__change__notifier__posix.cc)8
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_net_cert_cert__verifier.cc18
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_net_cert_cert__verify__proc.cc10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_net_cert_cert__verify__proc.h10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_net_cert_pki_general__names.h10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_net_disk__cache_blockfile_disk__format.h12
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_net_dns_BUILD.gn24
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_net_dns_address__info.cc16
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_net_dns_address__sorter__posix.cc12
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_net_http_http__auth__gssapi__posix.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_net_http_http__auth__handler__negotiate.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_net_http_http__auth__preferences.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_net_http_http__auth__preferences.h29
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_net_proxy__resolution_proxy__config__service__linux.cc12
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_net_socket_tcp__socket__posix.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_net_socket_udp__socket__posix.cc8
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_net_tools_cert__verify__tool_cert__verify__comparision__tool.cc10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_net_tools_cert__verify__tool_cert__verify__tool.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_net_url__request_url__request__context__builder.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_pdf_pdfium_pdfium__engine.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_backend_cups__helper.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_backend_cups__ipp__helper.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_mojom_printing__context__mojom__traits.cc19
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_mojom_printing__context__mojom__traits.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_print__settings.cc24
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_print__settings.h23
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_print__settings__conversion.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_printing__context__linux.cc12
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_sandbox_print__backend__sandbox__hook__linux.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_sandbox_print__backend__sandbox__hook__linux.h6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_linux_BUILD.gn2
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_linux_services_libc__interceptor.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_BUILD.gn4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_features.cc10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_freebsd_sandbox__freebsd.cc2
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_freebsd_sandbox__freebsd.h2
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_mojom_sandbox.mojom8
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_openbsd_sandbox__openbsd.cc157
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_sandbox.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_sandbox.h12
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_sandbox__type.cc26
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_switches.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_switches.h6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_services_audio_audio__sandbox__hook__linux.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_services_audio_audio__sandbox__hook__linux.h10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_services_cert__verifier_cert__verifier__creation.cc16
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_compute__pressure_cpu__probe.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_geolocation_location__arbitrator.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_hid_BUILD.gn4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_public_cpp_generic__sensor_sensor__reading.h11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_public_mojom_BUILD.gn6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_serial_BUILD.gn11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_serial_serial__device__enumerator.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_serial_serial__io__handler__posix.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_time__zone__monitor_time__zone__monitor__linux.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_usb_BUILD.gn8
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_BUILD.gn4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_network__context.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_network__context.h11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_network__sandbox__hook__linux.cc45
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_network__sandbox__hook__linux.h12
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_network__service.cc24
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_network__service.h29
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_public_cpp_BUILD.gn11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_public_cpp_features.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_public_mojom_BUILD.gn25
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_shared__dictionary_shared__dictionary__writer__in__memory.h11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_services_resource__coordinator_memory__instrumentation_queued__request__dispatcher.cc16
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_services_resource__coordinator_public_cpp_memory__instrumentation_BUILD.gn4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_services_tracing_public_cpp_stack__sampling_tracing__sampler__profiler.cc2
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_services_video__capture_video__capture__service__impl.cc38
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_services_video__capture_video__capture__service__impl.h29
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_skia_ext_SkMemory__new__handler.cpp4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_skia_ext_skcolorspace__trfn.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_abseil-cpp_absl_base_config.h18
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_abseil-cpp_absl_base_internal_raw__logging.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_abseil-cpp_absl_base_internal_sysinfo.cc61
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_abseil-cpp_absl_debugging_internal_elf__mem__image.h10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_abseil-cpp_absl_time_internal_cctz_src_time__zone__format.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_BUILD.gn8
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_common_platform__helpers.h11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_common_vulkan_BUILD.gn11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_gpu__info__util_SystemInfo__internal.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_libANGLE_Display.cpp24
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_libANGLE_formatutils.cpp4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_libANGLE_renderer_driver__utils.h11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_third__party_volk_BUILD.gn11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_util_BUILD.gn4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_common_privacy__budget_active__sampling.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_common_renderer__preferences_renderer__preferences__mojom__traits.cc8
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_public_common_renderer__preferences_renderer__preferences.h6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_public_common_renderer__preferences_renderer__preferences__mojom__traits.h6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_public_platform_platform.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_controller_blink__initializer.cc22
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_controller_memory__usage__monitor__posix.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_exported_web__view__impl.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_frame_web__frame__test.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_html_canvas_canvas__async__blob__creator.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_inspector_inspector__memory__agent.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_layout_ng_layout__ng__view.cc (renamed from www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_layout_layout__view.cc)14
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_paint_paint__layer.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_scroll_scrollbar__theme__aura.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_canvas_canvas2d_canvas__style.cc12
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_media_audio_audio__renderer__mixer__manager__test.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_ml_webnn_features.gni12
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_ml_webnn_ml__graph__xnnpack.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_peerconnection_webrtc__audio__renderer__test.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_webgl_webgl__rendering__context__base.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_webgl_webgl__webcodecs__video__frame.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_webgpu_gpu__queue.cc14
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_BUILD.gn4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_font__cache.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_font__cache.h14
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_font__description.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_font__palette.h28
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_font__platform__data.cc2
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_palette__interpolation.cc16
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc15
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_graphics_begin__frame__provider.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_graphics_video__frame__submitter.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_peerconnection_rtc__video__encoder__factory.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_runtime__enabled__features.json525
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_scheduler_common_thread.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_video__capture_video__capture__impl.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_widget_compositing_blink__categorized__worker__pool__delegate.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_widget_compositing_categorized__worker__pool.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_wtf_math__extras.h15
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_BUILD.generated.gni18
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_BUILD.gn11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_chacha_asm_chacha-x86__64.pl18
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_cipher__extra_asm_aes128gcmsiv-x86__64.pl19
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_cipher__extra_asm_chacha20__poly1305__x86__64.pl18
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_cpu__aarch64__openbsd.c60
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_aes_asm_aesni-x86__64.pl18
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_aes_asm_vpaes-x86__64.pl10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_bn_asm_x86__64-mont5.pl16
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_ec_asm_p256-x86__64-asm.pl18
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_modes_asm_aesni-gcm-x86__64.pl18
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_modes_asm_ghash-ssse3-x86__64.pl18
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_modes_asm_ghash-x86__64.pl18
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_rand_internal.h12
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_sha_asm_sha1-x86__64.pl18
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_sha_asm_sha512-x86__64.pl30
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_rand__extra_arc4random.c36
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_refcount__c11.c12
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_include_openssl_base.h14
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_include_openssl_thread.h10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_util_generate__build__files.py10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_cpuinfo_cpuinfo.gni11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_build_crashpad__buildconfig.gni11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_client_BUILD.gn16
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_client_crashpad__client__posix.cc43
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_minidump_minidump__misc__info__writer.cc13
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_misc_address__types.h20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_misc_capture__context.h22
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_misc_metrics.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_misc_uuid.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_posix_close__multiple.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_posix_drop__privileges.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_posix_signals.cc33
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_posix_symbolic__constants__posix.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crc32c_BUILD.gn4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_dawn_include_dawn_native_VulkanBackend.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_BUILD.gn10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_chromium_scripts_build__ffmpeg.py121
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_chromium_scripts_robo__lib_config.py53
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_configure10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_libavcodec_x86_cabac.h12
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_libavcodec_x86_fft.asm108
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_libavutil_cpu.c14
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_libavutil_mem.c12
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_libavutil_random__seed.c14
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_libavutil_x86_x86inc.asm23
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_fontconfig_include_config.h89
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_fontconfig_src_src_fccompat.c13
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ipcz_src_reference__drivers_random.cc12
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_leveldatabase_env__chromium.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_libaom_source_libaom_aom__ports_aarch64__cpudetect.c39
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_libsync_src_sync.c12
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_libusb_BUILD.gn52
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_libusb_src_libusb_core.c11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_libusb_src_libusb_os_threads__posix.c24
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_libxml_linux_config.h12
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_libxml_src_dict.c41
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_lzma__sdk_C_CpuArch.c44
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_maldoca_BUILD.gn13
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_maldoca_src_maldoca_base_get__runfiles__dir.cc32
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_maldoca_src_maldoca_service_common_process__doc__wrapper.cc29
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_material__color__utilities_src_cpp_palettes_tones.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_node_node.py11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_pdfium_core_fxge_cfx__fontmapper.cpp2
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_pdfium_pdfium.gni14
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_pdfium_third__party_base_compiler__specific.h11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_perfetto_include_perfetto_tracing_internal_track__event__legacy.h (renamed from www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_perfetto_include_perfetto_tracing_track__event__legacy.h)6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_perfetto_src_base_unix__socket.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_perfetto_src_trace__processor_db_storage_numeric__storage.cc16
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_perfetto_src_tracing_core_tracing__service__impl.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_perfetto_src_tracing_ipc_memfd.cc12
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_perfetto_src_tracing_track.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_skia_src_core_SkCpu.cpp69
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_sqlite_src_amalgamation_sqlite3.c6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_swiftshader_src_Reactor_Debug.cpp11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_swiftshader_src_System_Configurator.cpp12
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_swiftshader_src_System_Linux_MemFd.cpp37
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_swiftshader_src_Vulkan_VkSemaphoreExternalLinux.hpp20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_swiftshader_src_WSI_libXCB.cpp20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_test__fonts_fontconfig_BUILD.gn15
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_test__fonts_fontconfig_fontconfig__util__linux.cc27
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_test__fonts_fontconfig_generate__fontconfig__caches.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_vulkan-deps_vulkan-loader_src_BUILD.gn4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_vulkan-deps_vulkan-loader_src_loader_vk__loader__platform.h6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_vulkan-deps_vulkan-validation-layers_src_layers_external_vma_vk__mem__alloc.h (renamed from www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_vulkan-deps_vulkan-validation-layers_src_layers_vk__mem__alloc.h)12
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_vulkan__memory__allocator_include_vk__mem__alloc.h2
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_wayland_BUILD.gn14
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_BUILD.gn4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_modules_audio__device_BUILD.gn4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_modules_desktop__capture_linux_wayland_egl__dmabuf.cc18
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_modules_desktop__capture_linux_x11_x__server__pixel__buffer.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_pc_legacy__stats__collector.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_rtc__base_net__test__helpers.cc10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_rtc__base_network.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_rtc__base_physical__socket__server.cc16
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_rtc__base_physical__socket__server.h14
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_widevine_cdm_widevine.gni11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_zlib_BUILD.gn24
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_zlib_cpu__features.c50
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_tools_json__schema__compiler_feature__compiler.py4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_tools_licenses_licenses.py4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_tools_perf_chrome__telemetry__build_BUILD.gn6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_tools_protoc__wrapper_protoc__wrapper.py4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_clipboard_clipboard__constants.h2
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_cursor_cursor__factory.cc8
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_cursor_cursor__factory.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_dragdrop_os__exchange__data__provider__factory.cc2
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ime_fake__text__input__client.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ime_fake__text__input__client.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ime_text__input__client.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_resource_resource__bundle.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ui__base__features.cc24
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ui__base__features.h20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ui__base__switches.cc18
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ui__base__switches.h16
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_webui_web__ui__util.cc13
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_x_x11__cursor__factory.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_x_x11__cursor__factory.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_x_x11__cursor__loader.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_color_color__id.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_compositor_compositor.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_compositor_compositor.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_events_devices_x11_device__data__manager__x11.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_events_event.cc8
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_events_gesture__detection_motion__event__generic.h10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_BUILD.gn4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_canvas__skia.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_codec_png__codec.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_font__list.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_linux_client__native__pixmap__dmabuf.cc25
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_linux_dmabuf__uapi.h36
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_native__pixmap__handle.cc2
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_native__widget__types.h12
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_switches.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_switches.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_x_xlib__support.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gl_BUILD.gn10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gl_gl__context.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gl_gl__fence.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gl_gl__implementation.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gl_gl__switches.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gtk_gtk__compat.cc12
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gtk_gtk__ui.cc22
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gtk_printing_print__dialog__gtk.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_native__theme_native__theme.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_native__theme_native__theme__base.cc8
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_common_features.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_headless_vulkan__implementation__headless.cc22
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_host_wayland__toplevel__window.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_host_wayland__toplevel__window.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_host_wayland__window.cc44
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_host_wayland__window.h33
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_host_xdg__toplevel__wrapper__impl.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_host_zwp__text__input__wrapper__v1.cc21
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_ozone__platform__wayland.cc24
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_x11_ozone__platform__x11.cc2
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_x11_x11__screen__ozone.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_x11_x11__screen__ozone.h11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_public_ozone__platform.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_public_platform__screen.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_public_platform__screen.h20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_platform__window_platform__window__delegate.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_platform__window_platform__window__delegate.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_controls_textfield_textfield.cc14
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_controls_textfield_textfield.h6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_corewm_tooltip__aura.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_focus_focus__manager.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.cc2
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc10
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_widget_widget.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_widget_widget.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_window_dialog__delegate.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_window_frame__background.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_BUILD.gn21
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_include_v8-internal.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_api_api.cc8
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_base_atomicops.h4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_base_platform_platform-openbsd.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_base_platform_platform-posix.cc18
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_baseline_x64_baseline-assembler-x64-inl.h13
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_builtins_x64_builtins-x64.cc46
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_codegen_x64_assembler-x64.cc42
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_codegen_x64_assembler-x64.h21
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_codegen_x64_macro-assembler-x64.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_codegen_x64_macro-assembler-x64.h20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_compiler_backend_ia32_instruction-selector-ia32.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_compiler_backend_x64_code-generator-x64.cc16
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_deoptimizer_x64_deoptimizer-x64.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_diagnostics_perf-jit.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_execution_isolate.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_flags_flags.cc36
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_maglev_x64_maglev-assembler-x64-inl.h14
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_maglev_x64_maglev-assembler-x64.cc16
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_regexp_x64_regexp-macro-assembler-x64.cc22
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_regexp_x64_regexp-macro-assembler-x64.h12
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_snapshot_embedded_platform-embedded-file-writer-generic.cc4
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_trap-handler_handler-inside-posix.cc6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_trap-handler_trap-handler.h6
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_wasm_baseline_ia32_liftoff-assembler-ia32.h30
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_wasm_jump-table-assembler.cc51
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_wasm_jump-table-assembler.h16
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_weblayer_browser_browser__main__parts__impl.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_weblayer_browser_content__browser__client__impl.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_weblayer_browser_content__browser__client__impl.h11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_weblayer_browser_system__network__context__manager.cc11
-rw-r--r--www/qt6-webengine/files/patch-src_3rdparty_chromium_weblayer_common_weblayer__paths.cc20
-rw-r--r--www/qt6-webengine/files/patch-src_core_CMakeLists.txt12
-rw-r--r--www/qt6-webengine/files/patch-src_core_api_configure.cmake10
-rw-r--r--www/qt6-webengine/files/patch-src_pdf_CMakeLists.txt10
-rw-r--r--www/qt6-webengine/pkg-plist9
-rw-r--r--www/qt6-websockets/distinfo6
-rw-r--r--www/qt6-webview/distinfo6
-rw-r--r--www/rearx/Makefile2
-rw-r--r--www/reddsaver/Makefile2
-rw-r--r--www/remark42/Makefile76
-rw-r--r--www/remark42/distinfo154
-rw-r--r--www/remark42/files/patch-frontend_apps_remark42_app_components_comment-form_____subscribe-by-email_comment-form____subscribe-by-email.test.tsx20
-rw-r--r--www/remark42/files/remark.in9
-rw-r--r--www/reproxy/Makefile8
-rw-r--r--www/reproxy/distinfo8
-rw-r--r--www/restinio/Makefile26
-rw-r--r--www/rt50/Makefile3
-rw-r--r--www/rt50/Makefile.cpan4
-rw-r--r--www/rt50/distinfo6
-rw-r--r--www/rt50/pkg-plist24
-rw-r--r--www/rubygem-actioncable70/Makefile2
-rw-r--r--www/rubygem-actioncable70/distinfo6
-rw-r--r--www/rubygem-actioncable71/Makefile2
-rw-r--r--www/rubygem-actioncable71/distinfo6
-rw-r--r--www/rubygem-actionpack70/Makefile2
-rw-r--r--www/rubygem-actionpack70/distinfo6
-rw-r--r--www/rubygem-actionpack71/Makefile2
-rw-r--r--www/rubygem-actionpack71/distinfo6
-rw-r--r--www/rubygem-async-http/Makefile14
-rw-r--r--www/rubygem-async-http/distinfo6
-rw-r--r--www/rubygem-async-pool/Makefile6
-rw-r--r--www/rubygem-async-pool/distinfo6
-rw-r--r--www/rubygem-async-rest/Makefile4
-rw-r--r--www/rubygem-async-websocket/Makefile9
-rw-r--r--www/rubygem-async-websocket/distinfo6
-rw-r--r--www/rubygem-browser/Makefile4
-rw-r--r--www/rubygem-browser/distinfo6
-rw-r--r--www/rubygem-browser5/Makefile19
-rw-r--r--www/rubygem-browser5/distinfo3
-rw-r--r--www/rubygem-browser5/pkg-descr1
-rw-r--r--www/rubygem-bullet_train-fields/Makefile22
-rw-r--r--www/rubygem-bullet_train-fields/distinfo3
-rw-r--r--www/rubygem-bullet_train-fields/pkg-descr14
-rw-r--r--www/rubygem-bullet_train-has_uuid/Makefile19
-rw-r--r--www/rubygem-bullet_train-has_uuid/distinfo3
-rw-r--r--www/rubygem-bullet_train-has_uuid/pkg-descr1
-rw-r--r--www/rubygem-bullet_train-roles/Makefile21
-rw-r--r--www/rubygem-bullet_train-roles/distinfo3
-rw-r--r--www/rubygem-bullet_train-roles/pkg-descr9
-rw-r--r--www/rubygem-bullet_train-routes/Makefile19
-rw-r--r--www/rubygem-bullet_train-routes/distinfo3
-rw-r--r--www/rubygem-bullet_train-routes/pkg-descr4
-rw-r--r--www/rubygem-bullet_train-scope_validator/Makefile19
-rw-r--r--www/rubygem-bullet_train-scope_validator/distinfo3
-rw-r--r--www/rubygem-bullet_train-scope_validator/pkg-descr2
-rw-r--r--www/rubygem-bullet_train-super_load_and_authorize_resource/Makefile20
-rw-r--r--www/rubygem-bullet_train-super_load_and_authorize_resource/distinfo3
-rw-r--r--www/rubygem-bullet_train-super_load_and_authorize_resource/pkg-descr3
-rw-r--r--www/rubygem-bullet_train-themes/Makefile21
-rw-r--r--www/rubygem-bullet_train-themes/distinfo3
-rw-r--r--www/rubygem-bullet_train-themes/pkg-descr7
-rw-r--r--www/rubygem-bullet_train/Makefile51
-rw-r--r--www/rubygem-bullet_train/distinfo3
-rw-r--r--www/rubygem-bullet_train/pkg-descr3
-rw-r--r--www/rubygem-cable_ready/Makefile25
-rw-r--r--www/rubygem-cable_ready/distinfo3
-rw-r--r--www/rubygem-cable_ready/pkg-descr4
-rw-r--r--www/rubygem-cloudinary/Makefile22
-rw-r--r--www/rubygem-cloudinary/distinfo3
-rw-r--r--www/rubygem-cloudinary/pkg-descr3
-rw-r--r--www/rubygem-http-accept/Makefile1
-rw-r--r--www/rubygem-httparty/Makefile5
-rw-r--r--www/rubygem-httparty/distinfo6
-rw-r--r--www/rubygem-httparty021/Makefile29
-rw-r--r--www/rubygem-httparty021/distinfo3
-rw-r--r--www/rubygem-httparty021/pkg-descr9
-rw-r--r--www/rubygem-multipart-post/Makefile6
-rw-r--r--www/rubygem-multipart-post/distinfo6
-rw-r--r--www/rubygem-passenger/Makefile2
-rw-r--r--www/rubygem-passenger/distinfo6
-rw-r--r--www/rubygem-possessive/Makefile17
-rw-r--r--www/rubygem-possessive/distinfo3
-rw-r--r--www/rubygem-possessive/pkg-descr2
-rw-r--r--www/rubygem-protocol-hpack/Makefile4
-rw-r--r--www/rubygem-protocol-http/Makefile5
-rw-r--r--www/rubygem-protocol-http/distinfo6
-rw-r--r--www/rubygem-protocol-http1/Makefile5
-rw-r--r--www/rubygem-protocol-http1/distinfo6
-rw-r--r--www/rubygem-protocol-http2/Makefile5
-rw-r--r--www/rubygem-protocol-http2/distinfo6
-rw-r--r--www/rubygem-protocol-rack/Makefile6
-rw-r--r--www/rubygem-protocol-rack/distinfo6
-rw-r--r--www/rubygem-protocol-websocket/Makefile6
-rw-r--r--www/rubygem-protocol-websocket/distinfo6
-rw-r--r--www/rubygem-rack-contrib/Makefile3
-rw-r--r--www/rubygem-rack/Makefile2
-rw-r--r--www/rubygem-rack/distinfo6
-rw-r--r--www/rubygem-rack16/Makefile2
-rw-r--r--www/rubygem-rack22/Makefile7
-rw-r--r--www/rubygem-rails70/Makefile2
-rw-r--r--www/rubygem-rails70/distinfo6
-rw-r--r--www/rubygem-rails71/Makefile2
-rw-r--r--www/rubygem-rails71/distinfo6
-rw-r--r--www/rubygem-railties70/Makefile2
-rw-r--r--www/rubygem-railties70/distinfo6
-rw-r--r--www/rubygem-railties71/Makefile2
-rw-r--r--www/rubygem-railties71/distinfo6
-rw-r--r--www/rubygem-responders-rails71/Makefile21
-rw-r--r--www/rubygem-responders-rails71/distinfo3
-rw-r--r--www/rubygem-responders-rails71/pkg-descr1
-rw-r--r--www/rubygem-roda/Makefile2
-rw-r--r--www/rubygem-roda/distinfo6
-rw-r--r--www/rubygem-rqrcode/Makefile4
-rw-r--r--www/rubygem-ruby-openai/Makefile2
-rw-r--r--www/rubygem-ruby-openai/distinfo6
-rw-r--r--www/rubygem-selenium-webdriver/Makefile2
-rw-r--r--www/rubygem-selenium-webdriver/distinfo6
-rw-r--r--www/rubygem-showcase-rails/Makefile19
-rw-r--r--www/rubygem-showcase-rails/distinfo3
-rw-r--r--www/rubygem-showcase-rails/pkg-descr2
-rw-r--r--www/rustypaste-cli/Makefile3
-rw-r--r--www/rustypaste-cli/Makefile.crates230
-rw-r--r--www/rustypaste-cli/distinfo350
-rw-r--r--www/rustypaste/Makefile3
-rw-r--r--www/rustypaste/Makefile.crates711
-rw-r--r--www/rustypaste/distinfo632
-rw-r--r--www/s/Makefile4
-rw-r--r--www/s/distinfo10
-rw-r--r--www/screego/Makefile4
-rw-r--r--www/seahub/Makefile6
-rw-r--r--www/shiori/Makefile2
-rw-r--r--www/shiori/distinfo10
-rw-r--r--www/so/Makefile2
-rw-r--r--www/sogo/Makefile1
-rw-r--r--www/sqlpage/Makefile3
-rw-r--r--www/sqlpage/Makefile.crates120
-rw-r--r--www/sqlpage/distinfo246
-rw-r--r--www/stork/Makefile2
-rw-r--r--www/tcexam/Makefile2
-rw-r--r--www/tcexam/distinfo6
-rw-r--r--www/tclhttpd/Makefile4
-rw-r--r--www/tdom/Makefile3
-rw-r--r--www/tgpt/Makefile62
-rw-r--r--www/tgpt/distinfo79
-rw-r--r--www/tgpt/pkg-descr5
-rw-r--r--www/threejs/Makefile2
-rw-r--r--www/threejs/distinfo6
-rw-r--r--www/threejs/pkg-plist2
-rw-r--r--www/threema-web/Makefile2
-rw-r--r--www/threema-web/distinfo6
-rw-r--r--www/threema-web/pkg-plist11
-rw-r--r--www/tinymce/Makefile2
-rw-r--r--www/tinymce/distinfo6
-rw-r--r--www/tinyproxy/Makefile2
-rw-r--r--www/tinyproxy/distinfo6
-rw-r--r--www/tomcat-devel/Makefile2
-rw-r--r--www/tomcat-devel/distinfo6
-rw-r--r--www/tomcat-devel/pkg-plist8
-rw-r--r--www/tomcat-native2/Makefile37
-rw-r--r--www/tomcat-native2/distinfo3
-rw-r--r--www/tomcat-native2/files/patch-include_ssl__private.h12
-rw-r--r--www/tomcat-native2/files/patch-src_ssl.c63
-rw-r--r--www/tomcat-native2/files/patch-src_sslutils.c14
-rw-r--r--www/tomcat-native2/pkg-descr3
-rw-r--r--www/tomcat101/Makefile2
-rw-r--r--www/tomcat101/distinfo6
-rw-r--r--www/tomcat9/Makefile2
-rw-r--r--www/tomcat9/distinfo6
-rw-r--r--www/tor-browser/Makefile5
-rw-r--r--www/tor-browser/distinfo6
-rw-r--r--www/tor-browser/files/patch-dom_media_flac_FlacDecoder.cpp2
-rw-r--r--www/tor-browser/files/patch-rust-1.78.03582
-rw-r--r--www/tor-browser/files/patch-rust-1.78.0-arm64
-rw-r--r--www/tor-browser/files/patch-toolkit_components_processtools_procinfo__bsd.c104
-rw-r--r--www/tor-browser/files/patch-toolkit_components_tor-launcher_TorProcess.sys.mjs34
-rw-r--r--www/tor-browser/files/patch-toolkit_components_tor-launcher_TorProcess_sys_mjs26
-rw-r--r--www/trac-accountmanager/Makefile4
-rw-r--r--www/trac-accountmanager/distinfo6
-rw-r--r--www/trac/Makefile2
-rw-r--r--www/trac/files/patch-trac_util_datefmt.py143
-rw-r--r--www/trunk/Makefile271
-rw-r--r--www/trunk/distinfo538
-rw-r--r--www/tt-rss/Makefile5
-rw-r--r--www/tt-rss/distinfo6
-rw-r--r--www/tuifeed/Makefile2
-rw-r--r--www/tusc/Makefile2
-rw-r--r--www/tusd/Makefile2
-rw-r--r--www/typo3-11/Makefile2
-rw-r--r--www/typo3-11/distinfo6
-rw-r--r--www/typo3-11/pkg-descr8
-rw-r--r--www/typo3-12/Makefile4
-rw-r--r--www/typo3-12/distinfo6
-rw-r--r--www/typo3-12/pkg-descr14
-rw-r--r--www/typo3-13/Makefile76
-rw-r--r--www/typo3-13/distinfo3
-rw-r--r--www/typo3-13/files/pkg-message.in24
-rw-r--r--www/typo3-13/pkg-descr14
-rw-r--r--www/uchiwa/Makefile2
-rw-r--r--www/ungoogled-chromium/Makefile2
-rw-r--r--www/ungoogled-chromium/distinfo14
-rw-r--r--www/ungoogled-chromium/files/patch-chrome_app_chrome__main__delegate.cc26
-rw-r--r--www/ungoogled-chromium/files/patch-chrome_browser_BUILD.gn4
-rw-r--r--www/ungoogled-chromium/files/patch-chrome_browser_chrome__browser__main__extra__parts__linux.cc8
-rw-r--r--www/ungoogled-chromium/files/patch-chrome_browser_devtools_BUILD.gn10
-rw-r--r--www/ungoogled-chromium/files/patch-chrome_browser_extensions_BUILD.gn12
-rw-r--r--www/ungoogled-chromium/files/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc6
-rw-r--r--www/ungoogled-chromium/files/patch-chrome_browser_prefs_browser__prefs.cc6
-rw-r--r--www/ungoogled-chromium/files/patch-chrome_browser_ui_views_tabs_tab.cc4
-rw-r--r--www/ungoogled-chromium/files/patch-components_viz_service_display__embedder_skia__output__surface__impl.cc10
-rw-r--r--www/ungoogled-chromium/files/patch-media_base_media__switches.cc4
-rw-r--r--www/ungoogled-chromium/files/patch-net_dns_BUILD.gn16
-rw-r--r--www/ungoogled-chromium/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json514
-rw-r--r--www/ungoogled-chromium/files/patch-third__party_ffmpeg_configure13
-rw-r--r--www/ungoogled-chromium/files/patch-ui_base_ui__base__features.cc6
-rw-r--r--www/unit-java/distinfo6
-rw-r--r--www/unit-ruby/Makefile2
-rw-r--r--www/unit-wasm/Makefile2
-rw-r--r--www/unit/distinfo6
-rw-r--r--www/unit/version.mk2
-rw-r--r--www/varnish-libvmod-dynamic/Makefile2
-rw-r--r--www/varnish-libvmod-fileserver/Makefile2
-rw-r--r--www/varnish_exporter/Makefile2
-rw-r--r--www/vieb/Makefile3
-rw-r--r--www/vigil/Makefile2
-rw-r--r--www/vultr-cli/Makefile2
-rw-r--r--www/wabt/Makefile4
-rw-r--r--www/wabt/distinfo10
-rw-r--r--www/wabt/files/patch-CMakeLists.txt8
-rw-r--r--www/wabt/pkg-plist1
-rw-r--r--www/wasm-pack/Makefile2
-rw-r--r--www/web2ldap/Makefile1
-rw-r--r--www/webalizer/Makefile65
-rw-r--r--www/webalizer/files/ja-webalizer.conf-dist.patch69
-rw-r--r--www/webalizer/files/patch-webalizer_lang.japanese159
-rw-r--r--www/webhook/Makefile2
-rw-r--r--www/websh/Makefile4
-rw-r--r--www/websocat/Makefile1
-rw-r--r--www/websocketd/Makefile2
-rw-r--r--www/wiki-tui/Makefile2
-rw-r--r--www/writeas-cli/Makefile2
-rw-r--r--www/wuzz/Makefile2
-rw-r--r--www/xcaddy/Makefile1
-rw-r--r--www/xh/Makefile2
-rw-r--r--www/xurls/Makefile2
-rw-r--r--www/yarn-node22/Makefile5
-rw-r--r--www/yarr/Makefile2
-rw-r--r--www/you-get/Makefile3
-rw-r--r--www/ytdl/Makefile2
-rw-r--r--www/zgrab2/Makefile2
-rw-r--r--www/zola/Makefile2
1539 files changed, 41992 insertions, 8754 deletions
diff --git a/www/Makefile b/www/Makefile
index 8cebe5a998ff..2fb285c57633 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -324,6 +324,8 @@
SUBDIR += links
SUBDIR += links1
SUBDIR += linux-c7-qtwebkit
+ SUBDIR += linux-chrome
+ SUBDIR += linux-rl9-libnghttp2
SUBDIR += linux-widevine-cdm
SUBDIR += litmus
SUBDIR += ljdeps
@@ -422,7 +424,6 @@
SUBDIR += mod_scgi
SUBDIR += mod_security
SUBDIR += mod_setenvifplus
- SUBDIR += mod_tidy
SUBDIR += mod_umask
SUBDIR += mod_webauth
SUBDIR += mod_webkit
@@ -474,6 +475,7 @@
SUBDIR += node18
SUBDIR += node20
SUBDIR += node21
+ SUBDIR += node22
SUBDIR += nostromo
SUBDIR += novnc
SUBDIR += novnc-websockify
@@ -483,6 +485,7 @@
SUBDIR += npm-node18
SUBDIR += npm-node20
SUBDIR += npm-node21
+ SUBDIR += npm-node22
SUBDIR += oauth2-proxy
SUBDIR += obhttpd
SUBDIR += offpunk
@@ -492,6 +495,7 @@
SUBDIR += onionshare-cli
SUBDIR += onlyoffice-documentserver
SUBDIR += opencart
+ SUBDIR += openemr
SUBDIR += openresty
SUBDIR += orangehrm
SUBDIR += osrm-backend
@@ -1473,6 +1477,7 @@
SUBDIR += py-cachelib
SUBDIR += py-caldav
SUBDIR += py-channels
+ SUBDIR += py-channels-redis
SUBDIR += py-cheroot
SUBDIR += py-cherrypy
SUBDIR += py-cinemagoer
@@ -1487,12 +1492,8 @@
SUBDIR += py-daphne
SUBDIR += py-dj-database-url
SUBDIR += py-dj42-channels
- SUBDIR += py-dj42-channels-redis
SUBDIR += py-dj42-django-allauth
- SUBDIR += py-dj42-django-auditlog
SUBDIR += py-dj42-django-auth-ldap
- SUBDIR += py-dj42-django-celery-results
- SUBDIR += py-dj42-django-compression-middleware
SUBDIR += py-dj42-django-cors-headers
SUBDIR += py-dj42-django-crispy-forms
SUBDIR += py-dj42-django-debug-toolbar
@@ -1503,7 +1504,6 @@
SUBDIR += py-dj42-django-js-asset
SUBDIR += py-dj42-django-modelcluster
SUBDIR += py-dj42-django-mptt
- SUBDIR += py-dj42-django-multiselectfield
SUBDIR += py-dj42-django-otp
SUBDIR += py-dj42-django-permissionedforms
SUBDIR += py-dj42-django-prometheus
@@ -1515,16 +1515,15 @@
SUBDIR += py-dj42-django-treebeard
SUBDIR += py-dj42-djangoql
SUBDIR += py-dj42-djangorestframework
- SUBDIR += py-dj42-djangorestframework-guardian
SUBDIR += py-dj42-drf-spectacular
SUBDIR += py-dj42-drf-spectacular-sidecar
- SUBDIR += py-dj42-drf-writable-nested
SUBDIR += py-django-admin-rangefilter
SUBDIR += py-django-advanced-filters
SUBDIR += py-django-allauth
SUBDIR += py-django-annoying
SUBDIR += py-django-appconf
SUBDIR += py-django-assets
+ SUBDIR += py-django-auditlog
SUBDIR += py-django-auth-ldap
SUBDIR += py-django-autocomplete-light
SUBDIR += py-django-bakery
@@ -1535,10 +1534,12 @@
SUBDIR += py-django-bootstrap4
SUBDIR += py-django-braces
SUBDIR += py-django-cacheops
+ SUBDIR += py-django-celery-results
SUBDIR += py-django-choices-field
SUBDIR += py-django-ckeditor-5
SUBDIR += py-django-classy-tags
SUBDIR += py-django-cms
+ SUBDIR += py-django-compression-middleware
SUBDIR += py-django-configurations
SUBDIR += py-django-constance
SUBDIR += py-django-contact-form
@@ -1551,7 +1552,6 @@
SUBDIR += py-django-csp
SUBDIR += py-django-debreach
SUBDIR += py-django-debug-toolbar
- SUBDIR += py-django-dpaste
SUBDIR += py-django-extensions
SUBDIR += py-django-filer
SUBDIR += py-django-filter
@@ -1579,6 +1579,7 @@
SUBDIR += py-django-model-utils
SUBDIR += py-django-modelcluster
SUBDIR += py-django-mptt
+ SUBDIR += py-django-multiselectfield
SUBDIR += py-django-netfields
SUBDIR += py-django-object-actions
SUBDIR += py-django-otp
@@ -1633,11 +1634,13 @@
SUBDIR += py-djangorestframework
SUBDIR += py-djangorestframework-csv
SUBDIR += py-djangorestframework-filters
+ SUBDIR += py-djangorestframework-guardian
SUBDIR += py-djangorestframework-xml
SUBDIR += py-djangosaml2
SUBDIR += py-draftjs-exporter
SUBDIR += py-drf-spectacular
SUBDIR += py-drf-spectacular-sidecar
+ SUBDIR += py-drf-writable-nested
SUBDIR += py-drf-yasg
SUBDIR += py-dropbox
SUBDIR += py-dtflickr
@@ -1964,6 +1967,16 @@
SUBDIR += rubygem-bluecloth
SUBDIR += rubygem-bootstrap-sass
SUBDIR += rubygem-browser
+ SUBDIR += rubygem-browser5
+ SUBDIR += rubygem-bullet_train
+ SUBDIR += rubygem-bullet_train-fields
+ SUBDIR += rubygem-bullet_train-has_uuid
+ SUBDIR += rubygem-bullet_train-roles
+ SUBDIR += rubygem-bullet_train-routes
+ SUBDIR += rubygem-bullet_train-scope_validator
+ SUBDIR += rubygem-bullet_train-super_load_and_authorize_resource
+ SUBDIR += rubygem-bullet_train-themes
+ SUBDIR += rubygem-cable_ready
SUBDIR += rubygem-cal-heatmap-rails
SUBDIR += rubygem-carrierwave
SUBDIR += rubygem-carrierwave1
@@ -1972,6 +1985,7 @@
SUBDIR += rubygem-chosen-rails
SUBDIR += rubygem-chromedriver-helper
SUBDIR += rubygem-circuitbox
+ SUBDIR += rubygem-cloudinary
SUBDIR += rubygem-cookiejar
SUBDIR += rubygem-crass
SUBDIR += rubygem-cssbundling-rails
@@ -2064,6 +2078,7 @@
SUBDIR += rubygem-http_router
SUBDIR += rubygem-httparty
SUBDIR += rubygem-httparty020
+ SUBDIR += rubygem-httparty021
SUBDIR += rubygem-httpclient
SUBDIR += rubygem-httpi
SUBDIR += rubygem-hurley
@@ -2156,6 +2171,7 @@
SUBDIR += rubygem-passenger
SUBDIR += rubygem-patron
SUBDIR += rubygem-platform-api
+ SUBDIR += rubygem-possessive
SUBDIR += rubygem-propshaft
SUBDIR += rubygem-propshaft-rails70
SUBDIR += rubygem-protocol-hpack
@@ -2235,6 +2251,7 @@
SUBDIR += rubygem-responders-rails60
SUBDIR += rubygem-responders-rails61
SUBDIR += rubygem-responders-rails70
+ SUBDIR += rubygem-responders-rails71
SUBDIR += rubygem-rest-client
SUBDIR += rubygem-rfacebook
SUBDIR += rubygem-rfeedfinder
@@ -2257,6 +2274,7 @@
SUBDIR += rubygem-select2-rails
SUBDIR += rubygem-selenium-webdriver
SUBDIR += rubygem-semantic-ui-sass
+ SUBDIR += rubygem-showcase-rails
SUBDIR += rubygem-simple-rss
SUBDIR += rubygem-sinatra
SUBDIR += rubygem-sinatra-contrib
@@ -2368,6 +2386,7 @@
SUBDIR += tdom
SUBDIR += template_
SUBDIR += templatelite
+ SUBDIR += tgpt
SUBDIR += thirtybees
SUBDIR += threejs
SUBDIR += threema-web
@@ -2384,6 +2403,7 @@
SUBDIR += tokyopromenade
SUBDIR += tomcat-devel
SUBDIR += tomcat-native
+ SUBDIR += tomcat-native2
SUBDIR += tomcat101
SUBDIR += tomcat85
SUBDIR += tomcat9
@@ -2437,6 +2457,7 @@
SUBDIR += twms
SUBDIR += typo3-11
SUBDIR += typo3-12
+ SUBDIR += typo3-13
SUBDIR += uchiwa
SUBDIR += ufdbguard
SUBDIR += ulfius
@@ -2527,6 +2548,7 @@
SUBDIR += yarn-node18
SUBDIR += yarn-node20
SUBDIR += yarn-node21
+ SUBDIR += yarn-node22
SUBDIR += yarr
SUBDIR += yaws
SUBDIR += you-get
diff --git a/www/adguardhome/Makefile b/www/adguardhome/Makefile
index 68fa35e12925..78a6b44d14f4 100644
--- a/www/adguardhome/Makefile
+++ b/www/adguardhome/Makefile
@@ -1,7 +1,7 @@
PORTNAME= adguardhome
DISTVERSIONPREFIX= v
DISTVERSION= 0.107.48
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= www
MAINTAINER= yuri@FreeBSD.org
diff --git a/www/adzap/Makefile b/www/adzap/Makefile
index 528a132445cb..97020af53e72 100644
--- a/www/adzap/Makefile
+++ b/www/adzap/Makefile
@@ -10,6 +10,9 @@ WWW= https://adzapper.sourceforge.net/
LICENSE= BSD3CLAUSE
+DEPRECATED= Obsolete, no longer provides reasonable amount of filtering
+EXPIRATION_DATE=2024-06-30
+
USES= perl5 shebangfix
SHEBANG_FILES= scripts/squid_redirect-nodata scripts/wrapzap scripts/zapchain
USE_PERL5= run
diff --git a/www/amfora/Makefile b/www/amfora/Makefile
index 1146f02db656..d6b5b60269d7 100644
--- a/www/amfora/Makefile
+++ b/www/amfora/Makefile
@@ -1,7 +1,7 @@
PORTNAME= amfora
DISTVERSIONPREFIX= v
DISTVERSION= 1.10.0
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= www
MAINTAINER= lcook@FreeBSD.org
diff --git a/www/aquatone/Makefile b/www/aquatone/Makefile
index 17fe8b2f643b..1434230eb4db 100644
--- a/www/aquatone/Makefile
+++ b/www/aquatone/Makefile
@@ -1,7 +1,7 @@
PORTNAME= aquatone
DISTVERSIONPREFIX= v
DISTVERSION= 1.7.0
-PORTREVISION= 19
+PORTREVISION= 20
CATEGORIES= www security
MAINTAINER= yuri@FreeBSD.org
diff --git a/www/authelia/Makefile b/www/authelia/Makefile
index ab0537b19408..56cdcdca36f4 100644
--- a/www/authelia/Makefile
+++ b/www/authelia/Makefile
@@ -1,6 +1,7 @@
PORTNAME= authelia
DISTVERSIONPREFIX= v
DISTVERSION= 4.38.8
+PORTREVISION= 1
CATEGORIES= www
MASTER_SITES= https://github.com/authelia/authelia/releases/download/v${DISTVERSION}/:public_html
DISTFILES= authelia-${DISTVERSIONFULL}-public_html${EXTRACT_SUFX}:public_html # html root directory needs to be built in a special way
diff --git a/www/bareos-webui/Makefile b/www/bareos-webui/Makefile
index 843fdc7b552f..e540133f7c9e 100644
--- a/www/bareos-webui/Makefile
+++ b/www/bareos-webui/Makefile
@@ -1,6 +1,6 @@
PORTNAME= bareos
DISTVERSIONPREFIX= Release/
-DISTVERSION= 23.0.1
+DISTVERSION= 23.0.2
CATEGORIES?= www sysutils
PKGNAMESUFFIX= -webui
diff --git a/www/bareos-webui/distinfo b/www/bareos-webui/distinfo
index 49002a9e97ef..ff77959d57ef 100644
--- a/www/bareos-webui/distinfo
+++ b/www/bareos-webui/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1705703894
-SHA256 (bareos-bareos-Release-23.0.1_GH0.tar.gz) = ab35e0be81c11913c42e62829daa3228c1ae94ad96d76b829cab0d3eb6f2ef6c
-SIZE (bareos-bareos-Release-23.0.1_GH0.tar.gz) = 14728566
+TIMESTAMP = 1714631949
+SHA256 (bareos-bareos-Release-23.0.2_GH0.tar.gz) = 88df0b281d0c23c4991e227126b2df263f13a89329aaaaa67e84e804cafc793c
+SIZE (bareos-bareos-Release-23.0.2_GH0.tar.gz) = 14724410
diff --git a/www/bareos21-webui/Makefile b/www/bareos21-webui/Makefile
index 5712ff597452..e0ef8025450f 100644
--- a/www/bareos21-webui/Makefile
+++ b/www/bareos21-webui/Makefile
@@ -1,6 +1,6 @@
PORTNAME= bareos
DISTVERSIONPREFIX= Release/
-DISTVERSION= 21.1.8
+DISTVERSION= 21.1.9
CATEGORIES?= www sysutils
PKGNAMESUFFIX= 21-webui
diff --git a/www/bareos21-webui/distinfo b/www/bareos21-webui/distinfo
index 2d2bd1dabcac..4a42ebd17c2c 100644
--- a/www/bareos21-webui/distinfo
+++ b/www/bareos21-webui/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1704486594
-SHA256 (bareos-bareos-Release-21.1.8_GH0.tar.gz) = 5cdf196151e758ff2787d47d97153e69cf75895d81f559b61c06679166a60b4d
-SIZE (bareos-bareos-Release-21.1.8_GH0.tar.gz) = 11663322
+TIMESTAMP = 1714631959
+SHA256 (bareos-bareos-Release-21.1.9_GH0.tar.gz) = cea611402f3d42903e8ad56808e43f3bc2163e0dbbbca4cba3f4abab8842320c
+SIZE (bareos-bareos-Release-21.1.9_GH0.tar.gz) = 11670286
diff --git a/www/bareos22-webui/Makefile b/www/bareos22-webui/Makefile
index bd40ab0ec9dd..ced73c924ee9 100644
--- a/www/bareos22-webui/Makefile
+++ b/www/bareos22-webui/Makefile
@@ -1,6 +1,6 @@
PORTNAME= bareos
DISTVERSIONPREFIX= Release/
-DISTVERSION= 22.1.3
+DISTVERSION= 22.1.4
CATEGORIES?= www sysutils
PKGNAMESUFFIX= 22-webui
diff --git a/www/bareos22-webui/distinfo b/www/bareos22-webui/distinfo
index fe4153fead46..1de1847a5575 100644
--- a/www/bareos22-webui/distinfo
+++ b/www/bareos22-webui/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1704486712
-SHA256 (bareos-bareos-Release-22.1.3_GH0.tar.gz) = 765bf250a34296756051e896b28130b2ca3965cebaf310116c50e3e6c63d7d52
-SIZE (bareos-bareos-Release-22.1.3_GH0.tar.gz) = 14745204
+TIMESTAMP = 1714631970
+SHA256 (bareos-bareos-Release-22.1.4_GH0.tar.gz) = fd2d2eb7557907e1fe85cb823ef51a31bfc2809d5cb25264d42685a24dafdb6d
+SIZE (bareos-bareos-Release-22.1.4_GH0.tar.gz) = 14747141
diff --git a/www/beehive/Makefile b/www/beehive/Makefile
index bb042d6174e9..f17cc485cc74 100644
--- a/www/beehive/Makefile
+++ b/www/beehive/Makefile
@@ -1,7 +1,7 @@
PORTNAME= beehive
DISTVERSIONPREFIX= v
DISTVERSION= 0.4.0
-PORTREVISION= 20
+PORTREVISION= 21
CATEGORIES= www
MAINTAINER= lcook@FreeBSD.org
diff --git a/www/bkmrkconv/Makefile b/www/bkmrkconv/Makefile
index e4f93913aa7b..aa434a866828 100644
--- a/www/bkmrkconv/Makefile
+++ b/www/bkmrkconv/Makefile
@@ -9,6 +9,9 @@ WWW= http://www.bleb.org/software/bkmrkconv/
LICENSE= ART10
+DEPRECATED= Obsolete utility, generated files are already in a readable format
+EXPIRATION_DATE=2024-05-31
+
USES= perl5
NO_BUILD= yes
NO_ARCH= yes
diff --git a/www/bluefish/Makefile b/www/bluefish/Makefile
index e65073b07ee1..10d7b2c86332 100644
--- a/www/bluefish/Makefile
+++ b/www/bluefish/Makefile
@@ -30,6 +30,8 @@ CONFIGURE_ARGS= --disable-update-databases \
--with-icon-path=${PREFIX}/share/pixmaps
INSTALL_TARGET= install-strip
+PORTSCOUT= skipv:2.2.15fp
+
OPTIONS_DEFINE= DEBUG DOCS NLS TIDY
OPTIONS_DEFAULT= GTK3
OPTIONS_SINGLE= TOOLKIT
diff --git a/www/bolt/Makefile b/www/bolt/Makefile
index 05b824f238ce..357e848f18bc 100644
--- a/www/bolt/Makefile
+++ b/www/bolt/Makefile
@@ -6,11 +6,14 @@ MASTER_SITES= https://bolt.cm/distribution/
MAINTAINER= ports@FreeBSD.org
COMMENT= Sophisticated, lightweight & simple CMS
-WWW= https://bolt.cm/
+WWW= https://github.com/bolt/core
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE.md
+DEPRECATED= Outdated and unsupported, current version is several years old and unsupported upstream
+EXPIRATION_DATE=2024-06-30
+
USES= cpe php:web
CPE_VENDOR= ${PORTNAME}cms
diff --git a/www/bozohttpd/Makefile b/www/bozohttpd/Makefile
index 94c23a39ea75..e80b858d4fd0 100644
--- a/www/bozohttpd/Makefile
+++ b/www/bozohttpd/Makefile
@@ -2,12 +2,11 @@ PORTNAME= bozohttpd
PORTVERSION= 20210227
PORTREVISION= 1
CATEGORIES= www
-MASTER_SITES= http://www.eterna.com.au/bozohttpd/ \
- NETBSD
+MASTER_SITES= http://eterna23.net/bozohttpd/
MAINTAINER= jmohacsi@bsd.hu
COMMENT= Bozotic HTTP server from NetBSD
-WWW= http://www.eterna.com.au/bozohttpd/
+WWW= http://eterna23.net/bozohttpd/
LICENSE= BSD2CLAUSE
diff --git a/www/bugzilla2atom/Makefile b/www/bugzilla2atom/Makefile
index 1346f1aa06ed..ca575e9ac1ce 100644
--- a/www/bugzilla2atom/Makefile
+++ b/www/bugzilla2atom/Makefile
@@ -1,7 +1,7 @@
PORTNAME= bugzilla2atom
DISTVERSIONPREFIX= v
DISTVERSION= ${MODVERSION:S/-/./g:R}
-PORTREVISION= 7
+PORTREVISION= 8
CATEGORIES= www
MAINTAINER= fuz@FreeBSD.org
diff --git a/www/caddy-custom/Makefile b/www/caddy-custom/Makefile
index 59954858225a..6c883c52a262 100644
--- a/www/caddy-custom/Makefile
+++ b/www/caddy-custom/Makefile
@@ -4,7 +4,7 @@
PORTNAME= caddy-custom
PORTVERSION= ${CADDY_VERSION}.${XCADDY_VERSION}
-PORTREVISION= 16
+PORTREVISION= 17
CATEGORIES= www
DISTFILES= # none
diff --git a/www/caddy-custom/pkg-descr b/www/caddy-custom/pkg-descr
index c5983d9a92ac..21e76169df57 100644
--- a/www/caddy-custom/pkg-descr
+++ b/www/caddy-custom/pkg-descr
@@ -3,7 +3,7 @@ using plugins of your choice. You will need to rebuild this port
manually if one of your plugins gets updated.
Caddy is a high-performance webserver with a simple config format,
-out-of-the-box HTTP/3 support, and automatica transparent ACME
+out-of-the-box HTTP/3 support, and automatic transparent ACME
certificate provisioning.
NOTE: THIS PORT BYPASSES EVERY SINGLE ONE OF FREEBSD'S CHECKSUM-
diff --git a/www/caddy/Makefile b/www/caddy/Makefile
index 4f5556675c3b..c2712310ecc2 100644
--- a/www/caddy/Makefile
+++ b/www/caddy/Makefile
@@ -1,7 +1,7 @@
PORTNAME= caddy
DISTVERSIONPREFIX= v
DISTVERSION= 2.7.6
-PORTREVISION= 5
+PORTREVISION= 6
CATEGORIES= www
DIST_SUBDIR= caddy
diff --git a/www/carbonapi/Makefile b/www/carbonapi/Makefile
index 9f35701c101e..f076a3506474 100644
--- a/www/carbonapi/Makefile
+++ b/www/carbonapi/Makefile
@@ -1,6 +1,6 @@
PORTNAME= carbonapi
DISTVERSION= 0.14.1
-PORTREVISION= 19
+PORTREVISION= 20
CATEGORIES= www
MAINTAINER= a.andersson.thn@gmail.com
diff --git a/www/castor/Makefile b/www/castor/Makefile
index 86da1f3d5ead..8f3816748194 100644
--- a/www/castor/Makefile
+++ b/www/castor/Makefile
@@ -1,6 +1,6 @@
PORTNAME= castor
DISTVERSION= 0.8.16
-PORTREVISION= 34
+PORTREVISION= 35
CATEGORIES= www
MASTER_SITES= https://git.sr.ht/~julienxx/${PORTNAME}/archive/${DISTVERSIONFULL}${EXTRACT_SUFX}?dummy=/
DISTFILES= ${DISTNAME}${EXTRACT_SUFX}
diff --git a/www/chems/Makefile b/www/chems/Makefile
index 9b09488ed0f0..412cb04f90c1 100644
--- a/www/chems/Makefile
+++ b/www/chems/Makefile
@@ -8,6 +8,9 @@ MAINTAINER= ports@FreeBSD.org
COMMENT= The geekest content helper management system
WWW= http://chems.sf.net
+DEPRECATED= Abandonware, last release in 2009 and no activity since upstream
+EXPIRATION_DATE=2024-05-31
+
NO_BUILD= yes
USES= zip php
USE_PHP= xml iconv gd
diff --git a/www/chisel/Makefile b/www/chisel/Makefile
index 4c7a842a82d3..dbe6796d462c 100644
--- a/www/chisel/Makefile
+++ b/www/chisel/Makefile
@@ -1,7 +1,7 @@
PORTNAME= chisel
DISTVERSIONPREFIX= v
DISTVERSION= 1.9.1
-PORTREVISION= 5
+PORTREVISION= 6
CATEGORIES= www
MAINTAINER= lcook@FreeBSD.org
diff --git a/www/chromium/Makefile b/www/chromium/Makefile
index f4243fab81f2..b6c560def878 100644
--- a/www/chromium/Makefile
+++ b/www/chromium/Makefile
@@ -1,5 +1,5 @@
PORTNAME= chromium
-PORTVERSION= 124.0.6367.60
+PORTVERSION= 124.0.6367.207
CATEGORIES= www wayland
MASTER_SITES= https://commondatastorage.googleapis.com/chromium-browser-official/ \
https://nerd.hu/distfiles/:external
diff --git a/www/chromium/distinfo b/www/chromium/distinfo
index e61cc1be1d16..559acaf6b434 100644
--- a/www/chromium/distinfo
+++ b/www/chromium/distinfo
@@ -1,9 +1,9 @@
-TIMESTAMP = 1713531852
-SHA256 (chromium-124.0.6367.60.tar.xz) = ebd553527149cb8477a522df90acd6cea2388a6f431e2db589a0301df1d0cae2
-SIZE (chromium-124.0.6367.60.tar.xz) = 3432734968
-SHA256 (chrome-linux-124.0.6367.60-llvm17.profdata.tar.xz) = 6c4447dcd395f898bce3dbb7c5d361ee25f571f1c9c9c30767b169dec5ce1290
-SIZE (chrome-linux-124.0.6367.60-llvm17.profdata.tar.xz) = 30129116
-SHA256 (chromium-124.0.6367.60-testdata.tar.xz) = 42fcb4454bb703343843b7b7b4c7c28cbc9e0f885f5e38748268aeeb00ce9d29
-SIZE (chromium-124.0.6367.60-testdata.tar.xz) = 279785420
+TIMESTAMP = 1715673268
+SHA256 (chromium-124.0.6367.207.tar.xz) = 6d6dc8b943012573a244ddb013b281ecbc97f77fe1fc6f55a4118241d107eba5
+SIZE (chromium-124.0.6367.207.tar.xz) = 3450794132
+SHA256 (chrome-linux-124.0.6367.207-llvm17.profdata.tar.xz) = 43953cf8958c1f8d6b700635a4d209fe27ea4487e26ac12bc5f2ee56c28cb0c5
+SIZE (chrome-linux-124.0.6367.207-llvm17.profdata.tar.xz) = 30059564
+SHA256 (chromium-124.0.6367.207-testdata.tar.xz) = d30386a73719a64fdd191f7b51709185e4d3fc49888b04a390506d4370e69b06
+SIZE (chromium-124.0.6367.207-testdata.tar.xz) = 277899644
SHA256 (test_fonts-336e775eec536b2d785cc80eff6ac39051931286.tar.gz) = a2ca2962daf482a8f943163541e1c73ba4b2694fabcd2510981f2db4eda493c8
SIZE (test_fonts-336e775eec536b2d785cc80eff6ac39051931286.tar.gz) = 32624734
diff --git a/www/chromium/files/patch-chrome_app_chrome__main__delegate.cc b/www/chromium/files/patch-chrome_app_chrome__main__delegate.cc
index 22672e805dd8..3b8e559bce55 100644
--- a/www/chromium/files/patch-chrome_app_chrome__main__delegate.cc
+++ b/www/chromium/files/patch-chrome_app_chrome__main__delegate.cc
@@ -1,4 +1,4 @@
---- chrome/app/chrome_main_delegate.cc.orig 2024-04-19 13:02:56 UTC
+--- chrome/app/chrome_main_delegate.cc.orig 2024-05-01 07:03:57 UTC
+++ chrome/app/chrome_main_delegate.cc
@@ -146,7 +146,7 @@
#include "components/about_ui/credit_utils.h"
@@ -34,7 +34,16 @@
#include "chrome/browser/policy/policy_path_parser.h"
#include "components/crash/core/app/crashpad.h"
#endif
-@@ -346,7 +346,7 @@ void AdjustLinuxOOMScore(const std::string& process_ty
+@@ -249,7 +249,7 @@
+ #include "base/scoped_add_feature_flags.h"
+ #include "ui/base/ui_base_features.h"
+ #include "ui/ozone/public/ozone_platform.h"
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/chrome_browser_main_extra_parts_linux.h"
+ #endif
+ #endif // BUILDFLAG(IS_OZONE)
+@@ -349,7 +349,7 @@ void AdjustLinuxOOMScore(const std::string& process_ty
// and resources loaded.
bool SubprocessNeedsResourceBundle(const std::string& process_type) {
return
@@ -43,7 +52,7 @@
// The zygote process opens the resources for the renderers.
process_type == switches::kZygoteProcess ||
#endif
-@@ -431,7 +431,7 @@ bool HandleVersionSwitches(const base::CommandLine& co
+@@ -434,7 +434,7 @@ bool HandleVersionSwitches(const base::CommandLine& co
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
@@ -52,7 +61,7 @@
// Show the man page if --help or -h is on the command line.
void HandleHelpSwitches(const base::CommandLine& command_line) {
if (command_line.HasSwitch(switches::kHelp) ||
-@@ -477,7 +477,7 @@ void SetCrashpadUploadConsentPostLogin() {
+@@ -480,7 +480,7 @@ void SetCrashpadUploadConsentPostLogin() {
}
#endif // BUILDFLAG(IS_CHROMEOS_LACROS)
@@ -61,7 +70,7 @@
void SIGTERMProfilingShutdown(int signal) {
content::Profiling::Stop();
struct sigaction sigact;
-@@ -559,7 +559,7 @@ std::optional<int> AcquireProcessSingleton(
+@@ -562,7 +562,7 @@ std::optional<int> AcquireProcessSingleton(
// process can be exited.
ChromeProcessSingleton::CreateInstance(user_data_dir);
@@ -70,7 +79,7 @@
// Read the xdg-activation token and set it in the command line for the
// duration of the notification in order to ensure this is propagated to an
// already running browser process if it exists.
-@@ -643,7 +643,7 @@ void InitializeUserDataDir(base::CommandLine* command_
+@@ -646,7 +646,7 @@ void InitializeUserDataDir(base::CommandLine* command_
std::string process_type =
command_line->GetSwitchValueASCII(switches::kProcessType);
@@ -79,7 +88,7 @@
// On Linux, Chrome does not support running multiple copies under different
// DISPLAYs, so the profile directory can be specified in the environment to
// support the virtual desktop use-case.
-@@ -770,7 +770,7 @@ void RecordMainStartupMetrics(base::TimeTicks applicat
+@@ -773,7 +773,7 @@ void RecordMainStartupMetrics(base::TimeTicks applicat
#endif
#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || \
@@ -88,7 +97,16 @@
// Record the startup process creation time on supported platforms. On Android
// this is recorded in ChromeMainDelegateAndroid.
startup_metric_utils::GetCommon().RecordStartupProcessCreationTime(
-@@ -1155,7 +1155,7 @@ void ChromeMainDelegate::CommonEarlyInitialization(Inv
+@@ -964,7 +964,7 @@ std::optional<int> ChromeMainDelegate::PostEarlyInitia
+ #if BUILDFLAG(IS_OZONE)
+ // Initialize Ozone platform and add required feature flags as per platform's
+ // properties.
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ ChromeBrowserMainExtraPartsLinux::InitOzonePlatformHint();
+ #endif
+ ui::OzonePlatform::PreEarlyInitialization();
+@@ -1162,7 +1162,7 @@ void ChromeMainDelegate::CommonEarlyInitialization(Inv
chrome::GetChannel() == version_info::Channel::DEV;
const bool emit_crashes =
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
@@ -97,7 +115,7 @@
is_canary_dev;
#else
false;
-@@ -1174,7 +1174,7 @@ void ChromeMainDelegate::CommonEarlyInitialization(Inv
+@@ -1181,7 +1181,7 @@ void ChromeMainDelegate::CommonEarlyInitialization(Inv
// for more context.
base::sequence_manager::internal::ThreadController::InitializeFeatures(
/*record_sample_metadata=*/is_canary_dev);
@@ -106,7 +124,7 @@
base::MessagePumpLibevent::InitializeFeatures();
#elif BUILDFLAG(IS_MAC)
base::PlatformThread::InitFeaturesPostFieldTrial();
-@@ -1323,7 +1323,7 @@ std::optional<int> ChromeMainDelegate::BasicStartupCom
+@@ -1330,7 +1330,7 @@ std::optional<int> ChromeMainDelegate::BasicStartupCom
// TODO(crbug.com/1052397): Revisit the macro expression once build flag
// switch of lacros-chrome is complete.
@@ -115,7 +133,7 @@
// This will directly exit if the user asked for help.
HandleHelpSwitches(command_line);
#endif
-@@ -1353,7 +1353,7 @@ std::optional<int> ChromeMainDelegate::BasicStartupCom
+@@ -1360,7 +1360,7 @@ std::optional<int> ChromeMainDelegate::BasicStartupCom
#if BUILDFLAG(IS_CHROMEOS)
chromeos::dbus_paths::RegisterPathProvider();
#endif
@@ -124,7 +142,7 @@
nacl::RegisterPathProvider();
#endif
-@@ -1750,7 +1750,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
+@@ -1757,7 +1757,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
CHECK(!loaded_locale.empty()) << "Locale could not be found for " << locale;
}
@@ -133,7 +151,7 @@
// Zygote needs to call InitCrashReporter() in RunZygote().
if (process_type != switches::kZygoteProcess) {
if (command_line.HasSwitch(switches::kPreCrashpadCrashTest)) {
-@@ -1851,7 +1851,7 @@ absl::variant<int, content::MainFunctionParams> Chrome
+@@ -1858,7 +1858,7 @@ absl::variant<int, content::MainFunctionParams> Chrome
// This entry is not needed on Linux, where the NaCl loader
// process is launched via nacl_helper instead.
diff --git a/www/chromium/files/patch-chrome_browser_BUILD.gn b/www/chromium/files/patch-chrome_browser_BUILD.gn
index bd4ce5d9f973..87575ea436c1 100644
--- a/www/chromium/files/patch-chrome_browser_BUILD.gn
+++ b/www/chromium/files/patch-chrome_browser_BUILD.gn
@@ -1,6 +1,6 @@
---- chrome/browser/BUILD.gn.orig 2024-04-19 13:02:56 UTC
+--- chrome/browser/BUILD.gn.orig 2024-04-25 21:17:54 UTC
+++ chrome/browser/BUILD.gn
-@@ -6552,6 +6552,13 @@ static_library("browser") {
+@@ -6554,6 +6554,13 @@ static_library("browser") {
}
}
diff --git a/www/chromium/files/patch-chrome_browser_chrome__browser__main__extra__parts__linux.cc b/www/chromium/files/patch-chrome_browser_chrome__browser__main__extra__parts__linux.cc
index e30002b2521b..80dcc921f211 100644
--- a/www/chromium/files/patch-chrome_browser_chrome__browser__main__extra__parts__linux.cc
+++ b/www/chromium/files/patch-chrome_browser_chrome__browser__main__extra__parts__linux.cc
@@ -1,9 +1,9 @@
---- chrome/browser/chrome_browser_main_extra_parts_linux.cc.orig 2024-04-19 13:02:56 UTC
+--- chrome/browser/chrome_browser_main_extra_parts_linux.cc.orig 2024-05-01 07:03:57 UTC
+++ chrome/browser/chrome_browser_main_extra_parts_linux.cc
-@@ -169,7 +169,7 @@ ChromeBrowserMainExtraPartsLinux::ChromeBrowserMainExt
- ChromeBrowserMainExtraPartsLinux::~ChromeBrowserMainExtraPartsLinux() = default;
+@@ -175,7 +175,7 @@ void ChromeBrowserMainExtraPartsLinux::PostBrowserStar
- void ChromeBrowserMainExtraPartsLinux::PreEarlyInitialization() {
+ // static
+ void ChromeBrowserMainExtraPartsLinux::InitOzonePlatformHint() {
-#if BUILDFLAG(IS_LINUX)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
// On the desktop, we fix the platform name if necessary.
diff --git a/www/chromium/files/patch-chrome_browser_devtools_BUILD.gn b/www/chromium/files/patch-chrome_browser_devtools_BUILD.gn
new file mode 100644
index 000000000000..06adbd4b64ff
--- /dev/null
+++ b/www/chromium/files/patch-chrome_browser_devtools_BUILD.gn
@@ -0,0 +1,10 @@
+--- chrome/browser/devtools/BUILD.gn.orig 2024-04-30 23:46:45 UTC
++++ chrome/browser/devtools/BUILD.gn
+@@ -113,6 +113,7 @@ static_library("devtools") {
+ "//chrome/browser/autofill:autofill",
+ "//components/autofill/content/browser:browser",
+ "//components/autofill/core/browser:browser",
++ "//components/enterprise/buildflags",
+ "//components/paint_preview/buildflags:buildflags",
+ "//content/public/browser",
+ "//net",
diff --git a/www/chromium/files/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc b/www/chromium/files/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc
index 7a10eb391d30..257aa9ece63e 100644
--- a/www/chromium/files/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc
+++ b/www/chromium/files/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc
@@ -1,4 +1,4 @@
---- chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc.orig 2024-04-19 13:02:56 UTC
+--- chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc.orig 2024-05-11 05:42:43 UTC
+++ chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
@@ -80,8 +80,10 @@
@@ -30,7 +30,7 @@
#include "components/power_metrics/system_power_monitor.h"
#endif
-@@ -858,7 +860,7 @@ void RecordStartupMetrics() {
+@@ -860,7 +862,7 @@ void RecordStartupMetrics() {
// Record whether Chrome is the default browser or not.
// Disabled on Linux due to hanging browser tests, see crbug.com/1216328.
@@ -39,7 +39,7 @@
shell_integration::DefaultWebClientState default_state =
shell_integration::GetDefaultBrowser();
base::UmaHistogramEnumeration("DefaultBrowser.State", default_state,
-@@ -1162,11 +1164,11 @@ void ChromeBrowserMainExtraPartsMetrics::PostBrowserSt
+@@ -1164,11 +1166,11 @@ void ChromeBrowserMainExtraPartsMetrics::PostBrowserSt
}
#endif // !BUILDFLAG(IS_ANDROID)
diff --git a/www/chromium/files/patch-chrome_browser_prefs_browser__prefs.cc b/www/chromium/files/patch-chrome_browser_prefs_browser__prefs.cc
index 5631409a268a..de849528cb42 100644
--- a/www/chromium/files/patch-chrome_browser_prefs_browser__prefs.cc
+++ b/www/chromium/files/patch-chrome_browser_prefs_browser__prefs.cc
@@ -1,4 +1,4 @@
---- chrome/browser/prefs/browser_prefs.cc.orig 2024-04-19 13:02:56 UTC
+--- chrome/browser/prefs/browser_prefs.cc.orig 2024-05-01 07:03:57 UTC
+++ chrome/browser/prefs/browser_prefs.cc
@@ -488,18 +488,18 @@
#endif
@@ -31,7 +31,7 @@
#include "ui/color/system_theme.h"
#endif
-@@ -1715,7 +1715,7 @@ void RegisterLocalState(PrefRegistrySimple* registry)
+@@ -1722,7 +1722,7 @@ void RegisterLocalState(PrefRegistrySimple* registry)
registry->RegisterBooleanPref(prefs::kOopPrintDriversAllowedByPolicy, true);
#endif
@@ -40,7 +40,7 @@
registry->RegisterBooleanPref(prefs::kChromeForTestingAllowed, true);
#endif
-@@ -2060,12 +2060,12 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySync
+@@ -2067,12 +2067,12 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySync
#endif
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
diff --git a/www/chromium/files/patch-chrome_browser_ui_views_tabs_tab.cc b/www/chromium/files/patch-chrome_browser_ui_views_tabs_tab.cc
index 3a94f3289bf5..b84d4925f3dc 100644
--- a/www/chromium/files/patch-chrome_browser_ui_views_tabs_tab.cc
+++ b/www/chromium/files/patch-chrome_browser_ui_views_tabs_tab.cc
@@ -1,6 +1,6 @@
---- chrome/browser/ui/views/tabs/tab.cc.orig 2024-02-23 21:04:38 UTC
+--- chrome/browser/ui/views/tabs/tab.cc.orig 2024-04-25 21:17:54 UTC
+++ chrome/browser/ui/views/tabs/tab.cc
-@@ -618,7 +618,7 @@ void Tab::MaybeUpdateHoverStatus(const ui::MouseEvent&
+@@ -621,7 +621,7 @@ void Tab::MaybeUpdateHoverStatus(const ui::MouseEvent&
return;
}
diff --git a/www/chromium/files/patch-components_viz_service_display__embedder_skia__output__surface__impl.cc b/www/chromium/files/patch-components_viz_service_display__embedder_skia__output__surface__impl.cc
index a0a51fe0e131..fc579ddbbd9f 100644
--- a/www/chromium/files/patch-components_viz_service_display__embedder_skia__output__surface__impl.cc
+++ b/www/chromium/files/patch-components_viz_service_display__embedder_skia__output__surface__impl.cc
@@ -1,9 +1,9 @@
---- components/viz/service/display_embedder/skia_output_surface_impl.cc.orig 2024-04-19 13:02:56 UTC
+--- components/viz/service/display_embedder/skia_output_surface_impl.cc.orig 2024-04-25 21:17:54 UTC
+++ components/viz/service/display_embedder/skia_output_surface_impl.cc
-@@ -1526,7 +1526,7 @@ GrBackendFormat SkiaOutputSurfaceImpl::GetGrBackendFor
- ->GetDeviceQueue()
- ->GetVulkanPhysicalDevice(),
- VK_IMAGE_TILING_OPTIMAL, vk_format, yuv_color_space, ycbcr_info);
+@@ -1527,7 +1527,7 @@ GrBackendFormat SkiaOutputSurfaceImpl::GetGrBackendFor
+ ->GetVulkanPhysicalDevice(),
+ VK_IMAGE_TILING_OPTIMAL, vk_format,
+ si_format, yuv_color_space, ycbcr_info);
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Textures that were allocated _on linux_ with ycbcr info came from
diff --git a/www/chromium/files/patch-media_base_media__switches.cc b/www/chromium/files/patch-media_base_media__switches.cc
index 2bd334016a61..818840435859 100644
--- a/www/chromium/files/patch-media_base_media__switches.cc
+++ b/www/chromium/files/patch-media_base_media__switches.cc
@@ -1,4 +1,4 @@
---- media/base/media_switches.cc.orig 2024-04-19 13:02:56 UTC
+--- media/base/media_switches.cc.orig 2024-05-11 05:42:43 UTC
+++ media/base/media_switches.cc
@@ -21,7 +21,7 @@
#include "ui/gl/gl_features.h"
@@ -92,7 +92,7 @@
base::FEATURE_ENABLED_BY_DEFAULT
#else
base::FEATURE_DISABLED_BY_DEFAULT
-@@ -1500,7 +1500,7 @@ BASE_FEATURE(kUseGTFOOutOfProcessVideoDecoding,
+@@ -1496,7 +1496,7 @@ BASE_FEATURE(kUseGTFOOutOfProcessVideoDecoding,
base::FEATURE_DISABLED_BY_DEFAULT);
#endif // BUILDFLAG(ALLOW_OOP_VIDEO_DECODER)
diff --git a/www/chromium/files/patch-net_dns_BUILD.gn b/www/chromium/files/patch-net_dns_BUILD.gn
index 8c130b336675..dd5a55548aa8 100644
--- a/www/chromium/files/patch-net_dns_BUILD.gn
+++ b/www/chromium/files/patch-net_dns_BUILD.gn
@@ -1,4 +1,4 @@
---- net/dns/BUILD.gn.orig 2024-04-19 13:02:56 UTC
+--- net/dns/BUILD.gn.orig 2024-04-30 23:47:00 UTC
+++ net/dns/BUILD.gn
@@ -136,7 +136,7 @@ source_set("dns") {
"dns_config_service_android.cc",
@@ -9,7 +9,17 @@
sources += [
"dns_config_service_linux.cc",
"dns_config_service_linux.h",
-@@ -177,6 +177,7 @@ source_set("dns") {
+@@ -170,6 +170,9 @@ source_set("dns") {
+ }
+
+ deps = [ "//net:net_deps" ]
++ if (is_bsd) {
++ deps += [ "//services/screen_ai/buildflags" ]
++ }
+
+ public_deps = [
+ ":dns_client",
+@@ -177,6 +180,7 @@ source_set("dns") {
":host_resolver_manager",
":mdns_client",
"//net:net_public_deps",
@@ -17,7 +27,7 @@
]
allow_circular_includes_from = [
-@@ -444,9 +445,9 @@ source_set("tests") {
+@@ -444,9 +448,9 @@ source_set("tests") {
if (is_android) {
sources += [ "dns_config_service_android_unittest.cc" ]
diff --git a/www/chromium/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5 b/www/chromium/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5
index e8b0df090779..f1773706aebd 100644
--- a/www/chromium/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5
+++ b/www/chromium/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5
@@ -1,6 +1,6 @@
---- third_party/blink/renderer/platform/runtime_enabled_features.json5.orig 2024-04-19 13:02:56 UTC
+--- third_party/blink/renderer/platform/runtime_enabled_features.json5.orig 2024-05-01 07:03:57 UTC
+++ third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -321,7 +321,7 @@
+@@ -313,7 +313,7 @@
name: "AppTitle",
status: "experimental",
origin_trial_feature_name: "AppTitle",
@@ -9,7 +9,7 @@
base_feature: "WebAppEnableAppTitle",
},
{
-@@ -1969,7 +1969,7 @@
+@@ -1961,7 +1961,7 @@
base_feature_status: "enabled",
copied_from_base_feature_if: "overridden",
origin_trial_feature_name: "FullscreenPopupWindows",
@@ -18,7 +18,7 @@
},
{
name: "GamepadButtonAxisEvents",
-@@ -2890,7 +2890,7 @@
+@@ -2882,7 +2882,7 @@
name: "PaymentHandlerMinimalHeaderUX",
origin_trial_feature_name: "PaymentHandlerMinimalHeaderUX",
origin_trial_allows_third_party: true,
@@ -27,7 +27,7 @@
status: "stable",
},
{
-@@ -3082,7 +3082,7 @@
+@@ -3074,7 +3074,7 @@
{
name: "PrivateNetworkAccessPermissionPrompt",
origin_trial_feature_name: "PrivateNetworkAccessPermissionPrompt",
@@ -36,7 +36,7 @@
status: "stable",
public: true,
base_feature: "none",
-@@ -3950,7 +3950,7 @@
+@@ -3942,7 +3942,7 @@
name: "UnrestrictedSharedArrayBuffer",
base_feature: "none",
origin_trial_feature_name: "UnrestrictedSharedArrayBuffer",
@@ -45,7 +45,7 @@
},
// Enables using policy-controlled feature "usb-unrestricted" to allow
// isolated context to access protected USB interface classes and to
-@@ -4110,7 +4110,7 @@
+@@ -4102,7 +4102,7 @@
{
name: "WebAppScopeExtensions",
origin_trial_feature_name: "WebAppScopeExtensions",
diff --git a/www/chromium/files/patch-third__party_ffmpeg_configure b/www/chromium/files/patch-third__party_ffmpeg_configure
new file mode 100644
index 000000000000..4ef45be429b6
--- /dev/null
+++ b/www/chromium/files/patch-third__party_ffmpeg_configure
@@ -0,0 +1,13 @@
+--- third_party/ffmpeg/configure.orig 2024-04-25 07:48:13 UTC
++++ third_party/ffmpeg/configure
+@@ -6713,8 +6713,8 @@ if ! disabled pthreads && ! enabled w32threads && ! en
+ if enabled pthread_np_h; then
+ hdrs="$hdrs pthread_np.h"
+ fi
+- check_lib pthread_set_name_np "$hdrs" pthread_set_name_np -lpthread
+- check_lib pthread_setname_np "$hdrs" pthread_setname_np -lpthread
++ check_lib pthread_set_name_np pthread_np.h pthread_set_name_np -lpthread
++ check_lib pthread_setname_np pthread_np.h pthread_setname_np -lpthread
+ fi
+ fi
+
diff --git a/www/chromium/files/patch-ui_base_ui__base__features.cc b/www/chromium/files/patch-ui_base_ui__base__features.cc
index d0da3c97ac93..2a6cf5fba425 100644
--- a/www/chromium/files/patch-ui_base_ui__base__features.cc
+++ b/www/chromium/files/patch-ui_base_ui__base__features.cc
@@ -1,6 +1,6 @@
---- ui/base/ui_base_features.cc.orig 2024-04-19 13:02:56 UTC
+--- ui/base/ui_base_features.cc.orig 2024-05-01 07:03:57 UTC
+++ ui/base/ui_base_features.cc
-@@ -227,7 +227,7 @@ BASE_FEATURE(kExperimentalFlingAnimation,
+@@ -228,7 +228,7 @@ BASE_FEATURE(kExperimentalFlingAnimation,
"ExperimentalFlingAnimation",
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
@@ -9,7 +9,7 @@
(BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_ASH) && \
!BUILDFLAG(IS_CHROMEOS_LACROS))
base::FEATURE_ENABLED_BY_DEFAULT
-@@ -326,7 +326,7 @@ bool IsForcedColorsEnabled() {
+@@ -327,7 +327,7 @@ bool IsForcedColorsEnabled() {
BASE_FEATURE(kEyeDropper,
"EyeDropper",
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
diff --git a/www/cl-lml-sbcl/Makefile b/www/cl-lml-sbcl/Makefile
index 7ede627088e6..bed4cd7de3e9 100644
--- a/www/cl-lml-sbcl/Makefile
+++ b/www/cl-lml-sbcl/Makefile
@@ -1,6 +1,6 @@
PORTNAME= lml
PORTVERSION= 2.5.7
-PORTREVISION= 81
+PORTREVISION= 82
CATEGORIES= www textproc
PKGNAMEPREFIX= cl-
DISTFILES= # none
diff --git a/www/clearsilver/Makefile b/www/clearsilver/Makefile
index 65eda7b57f42..d3e65d3097a3 100644
--- a/www/clearsilver/Makefile
+++ b/www/clearsilver/Makefile
@@ -8,6 +8,8 @@ MAINTAINER= ports@FreeBSD.org
COMMENT= Fast, powerful, and language-neutral template system
WWW= http://www.clearsilver.net/
+DEPRECATED= Abandonware and outdated, last release in 2017 no activity since 2019
+
USES= gmake
GNU_CONFIGURE= yes
GNU_CONFIGURE_MANPREFIX=${PREFIX}/share
diff --git a/www/cobalt/Makefile b/www/cobalt/Makefile
index de42df88bb8b..b6d457044cd9 100644
--- a/www/cobalt/Makefile
+++ b/www/cobalt/Makefile
@@ -1,7 +1,7 @@
PORTNAME= cobalt
DISTVERSIONPREFIX= v
DISTVERSION= 0.19.2
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= www
PKGNAMESUFFIX= -site-generator
diff --git a/www/colly/Makefile b/www/colly/Makefile
index ef86cc761725..394a0895fb07 100644
--- a/www/colly/Makefile
+++ b/www/colly/Makefile
@@ -1,7 +1,7 @@
PORTNAME= colly
DISTVERSIONPREFIX= v
DISTVERSION= 2.1.0
-PORTREVISION= 18
+PORTREVISION= 19
CATEGORIES= www
MAINTAINER= yuri@FreeBSD.org
diff --git a/www/cpr/Makefile b/www/cpr/Makefile
index 6bf3a5d261bf..f21e05edad65 100644
--- a/www/cpr/Makefile
+++ b/www/cpr/Makefile
@@ -34,7 +34,6 @@ CMAKE_ON= BUILD_SHARED_LIBS \
CPR_ENABLE_SSL \
CPR_SKIP_CA_BUNDLE_SEARCH \
CPR_USE_SYSTEM_CURL
-PIE_UNSAFE= yes
PLIST_SUB= PORTVERSION=${PORTVERSION}
diff --git a/www/crawl/Makefile b/www/crawl/Makefile
index 141037a64133..d2676aad821e 100644
--- a/www/crawl/Makefile
+++ b/www/crawl/Makefile
@@ -1,10 +1,10 @@
PORTNAME= crawl
PORTVERSION= 0.4
-PORTREVISION= 15
+PORTREVISION= 16
CATEGORIES= www
MASTER_SITES= http://www.monkey.org/~provos/
-MAINTAINER= ports@FreeBSD.org
+MAINTAINER= portmaster@BSDforge.com
COMMENT= Small, efficient web crawler with advanced features
WWW= https://www.monkey.org/~provos/crawl/
@@ -15,7 +15,6 @@ LIB_DEPENDS= libevent.so:devel/libevent
USES= bdb pkgconfig
GNU_CONFIGURE= yes
-GNU_CONFIGURE_MANPREFIX=${PREFIX}/share
CONFIGURE_ARGS= --with-libevent --program-transform-name=''
CONFIGURE_ENV= EVENTINC="`pkgconf --cflags libevent`" EVENTLIB="`pkgconf --libs libevent`"
diff --git a/www/cssed/Makefile b/www/cssed/Makefile
index fbe8155c4deb..af31552892b4 100644
--- a/www/cssed/Makefile
+++ b/www/cssed/Makefile
@@ -11,6 +11,10 @@ WWW= https://cssed.sourceforge.net/
LICENSE= GPLv2
LICENSE_FILE= ${WRKSRC}/COPYING
+BROKEN= Not compatible with Python 3.x
+DEPRECATED= Abandonware and broken, doesn't work with Python 3.x
+EXPIRATION_DATE=2024-05-31
+
USES= compiler:c++11-lang dos2unix gettext gnome localbase pathfix \
pkgconfig
DOS2UNIX_FILES= scintilla/gtk/ScintillaGTK.cxx
diff --git a/www/deno/Makefile b/www/deno/Makefile
index d4ff04bd736d..d2fe456ccca2 100644
--- a/www/deno/Makefile
+++ b/www/deno/Makefile
@@ -1,6 +1,7 @@
PORTNAME= deno
DISTVERSIONPREFIX= v
DISTVERSION= 1.42.4
+PORTREVISION= 1
CATEGORIES= www
MAINTAINER= mikael@FreeBSD.org
diff --git a/www/devd/Makefile b/www/devd/Makefile
index 56d92bbcc248..a934e63e557e 100644
--- a/www/devd/Makefile
+++ b/www/devd/Makefile
@@ -1,7 +1,7 @@
PORTNAME= devd
DISTVERSIONPREFIX= v
DISTVERSION= 0.9
-PORTREVISION= 22
+PORTREVISION= 23
CATEGORIES= www devel
MAINTAINER= yuri@FreeBSD.org
diff --git a/www/dezoomify-rs/Makefile b/www/dezoomify-rs/Makefile
index e5d9cefa4592..b300deac0f0b 100644
--- a/www/dezoomify-rs/Makefile
+++ b/www/dezoomify-rs/Makefile
@@ -1,7 +1,7 @@
PORTNAME= dezoomify-rs
DISTVERSIONPREFIX= v
DISTVERSION= 2.12.3
-PORTREVISION= 0
+PORTREVISION= 1
CATEGORIES= www
MAINTAINER= nivit@FreeBSD.org
diff --git a/www/dillo2/Makefile b/www/dillo2/Makefile
index 376bcbadd86f..8eded5223a80 100644
--- a/www/dillo2/Makefile
+++ b/www/dillo2/Makefile
@@ -1,8 +1,7 @@
PORTNAME= dillo
-PORTVERSION= 3.0.5
-PORTREVISION= 5
+PORTVERSION= 3.1.0
CATEGORIES= www
-MASTER_SITES= http://www.dillo.org/download/ \
+MASTER_SITES= https://github.com/dillo-browser/dillo/releases/download/v3.1.0/ \
LOCAL/bf/dillo/ \
TEX/language/hyph-utf8/tex/generic/hyph-utf8/patterns/txt/:hyphen
DISTFILES= ${DISTNAME}${EXTRACT_SUFX}
@@ -11,7 +10,7 @@ EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
MAINTAINER= cy@FreeBSD.org
COMMENT= Fast, small graphical Web browser built upon fltk
-WWW= https://www.dillo.org/
+WWW= https://dillo-browser.github.io/dillo.org.html
LICENSE= GPLv3+
LICENSE_FILE= ${WRKSRC}/COPYING
@@ -37,11 +36,10 @@ PORTDOCS= *
OPTIONS_DEFINE= COOKIES DEBUG DOCS HYPHENATION IPV6 JPEG PNG SSL \
THREADS
-OPTIONS_DEFAULT= COOKIES IPV6 JPEG PNG SSL THREADS
+OPTIONS_DEFAULT= COOKIES IPV6 JPEG PNG THREADS
COOKIES_DESC= Cookie support
HYPHENATION_DESC= Hyphenation file(s) for HYPHENATION_LANGS
-SSL_DESC= Experimental HTTPS support
DEBUG_CONFIGURE_ENABLE= gprof rtfl
@@ -55,10 +53,6 @@ JPEG_USES= jpeg
PNG_CONFIGURE_ENABLE= png
PNG_LIB_DEPENDS= libpng.so:graphics/png
-SSL_USES= ssl
-SSL_CONFIGURE_ENABLE= ssl
-SSL_EXTRA_PATCHES= ${PATCHDIR}/extra-patches-openssl
-
THREADS_CONFIGURE_ENABLE= threaded-dns
.include <bsd.port.pre.mk>
@@ -90,11 +84,13 @@ post-patch:
@${MV} ${WRKSRC}/dillorc ${WRKSRC}/dillorc.sample
@${MV} ${WRKSRC}/dpid/dpidrc.in ${WRKSRC}/dpid/dpidrc.sample.in
@${MV} ${WRKSRC}/src/domainrc ${WRKSRC}/src/domainrc.sample
+ @${MV} ${WRKSRC}/src/hsts_preload ${WRKSRC}/src/hsts_preload.sample
@${MV} ${WRKSRC}/src/keysrc ${WRKSRC}/src/keysrc.sample
@${REINPLACE_CMD} -e "s|/usr/local|${LOCALBASE}|g" ${WRKSRC}/configure
@${REINPLACE_CMD} -e "s|dillorc|dillorc.sample|g" ${WRKSRC}/Makefile.in
@${REINPLACE_CMD} -e "s|dpidrc|dpidrc.sample|g" ${WRKSRC}/dpid/Makefile.in
@${REINPLACE_CMD} -E "s/(domain|keys)rc/&.sample/g" ${WRKSRC}/src/Makefile.in
+ @${REINPLACE_CMD} -E "s/hsts_preload/hsts_preload.sample/g" ${WRKSRC}/src/Makefile.in
@${REINPLACE_CMD} -e "s|/lib/dillo|/libexec/dillo|" \
${WRKSRC}/dillo-install-hyphenation \
${WRKSRC}/doc/dillo.1.in \
diff --git a/www/dillo2/distinfo b/www/dillo2/distinfo
index 650e7afdaec1..967d6dfe04be 100644
--- a/www/dillo2/distinfo
+++ b/www/dillo2/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1652973072
-SHA256 (dillo/dillo-3.0.5.tar.bz2) = db1be16c1c5842ebe07b419aa7c6ef11a45603a75df2877f99635f4f8345148b
-SIZE (dillo/dillo-3.0.5.tar.bz2) = 734472
+TIMESTAMP = 1715503936
+SHA256 (dillo/dillo-3.1.0.tar.bz2) = f56766956d90dac0ccca31755917cba8a4014bcf43b3e36c7d86efe1d20f9d92
+SIZE (dillo/dillo-3.1.0.tar.bz2) = 994610
diff --git a/www/dillo2/files/extra-patches-openssl b/www/dillo2/files/extra-patches-openssl
deleted file mode 100644
index 38134a30d2fe..000000000000
--- a/www/dillo2/files/extra-patches-openssl
+++ /dev/null
@@ -1,41 +0,0 @@
-Patches obtained from:
-http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/www/dillo/patches/
-
-$NetBSD: patch-configure,v 1.1 2018/03/24 15:40:07 ryoon Exp $
-
-* Detect OpenSSL 1.1.0
-
---- configure.orig 2015-06-30 14:07:22.000000000 +0000
-+++ configure
-@@ -6018,11 +6018,11 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_
- #ifdef __cplusplus
- extern "C"
- #endif
--char SSL_library_init ();
-+void OPENSSL_config ();
- int
- main ()
- {
--return SSL_library_init ();
-+OPENSSL_config ();
- ;
- return 0;
- }
-$NetBSD: patch-dpi_https.c,v 1.1 2018/03/24 15:40:07 ryoon Exp $
-
-* Support OpenSSL 1.1.0
-
---- dpi/https.c.orig 2015-06-30 14:06:08.000000000 +0000
-+++ dpi/https.c
-@@ -476,7 +476,11 @@ static int handle_certificate_problem(SS
- case X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT:
- /*Either self signed and untrusted*/
- /*Extract CN from certificate name information*/
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L
- if ((cn = strstr(remote_cert->name, "/CN=")) == NULL) {
-+#else
-+ if ((cn = strstr(X509_get_subject_name(remote_cert), "/CN=")) == NULL) {
-+#endif
- strcpy(buf, "(no CN given)");
- } else {
- char *cn_end;
diff --git a/www/dillo2/pkg-plist b/www/dillo2/pkg-plist
index a02ea17856e1..2f4bf3e9c87a 100644
--- a/www/dillo2/pkg-plist
+++ b/www/dillo2/pkg-plist
@@ -5,6 +5,7 @@ bin/dpidc
@sample etc/dillo/dillorc.sample
@sample etc/dillo/domainrc.sample
@sample etc/dillo/dpidrc.sample
+@sample etc/dillo/hsts_preload.sample
@sample etc/dillo/keysrc.sample
libexec/dillo/dpi/bookmarks/bookmarks.dpi
libexec/dillo/dpi/cookies/cookies.dpi
@@ -13,7 +14,9 @@ libexec/dillo/dpi/downloads/downloads.dpi
libexec/dillo/dpi/file/file.dpi
libexec/dillo/dpi/ftp/ftp.filter.dpi
libexec/dillo/dpi/hello/hello.filter.dpi
-libexec/dillo/dpi/https/https.filter.dpi
libexec/dillo/dpi/vsource/vsource.filter.dpi
+share/applications/dillo.desktop
+share/icons/hicolor/128x128/apps/dillo.png
+share/icons/hicolor/48x48/apps/dillo.png
share/man/man1/dillo.1.gz
@dir libexec/dillo/hyphenation
diff --git a/www/domoticz/Makefile b/www/domoticz/Makefile
index f6d72fcf11d6..5affeba9ea85 100644
--- a/www/domoticz/Makefile
+++ b/www/domoticz/Makefile
@@ -1,6 +1,5 @@
PORTNAME= domoticz
-DISTVERSION= 2023.1
-PORTREVISION= 2
+DISTVERSION= 2024.4
CATEGORIES= www
MAINTAINER= kiwi@oav.net
diff --git a/www/domoticz/distinfo b/www/domoticz/distinfo
index 831bdeb9b4e6..0d14e196ff67 100644
--- a/www/domoticz/distinfo
+++ b/www/domoticz/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1684829760
-SHA256 (domoticz-domoticz-2023.1_GH0.tar.gz) = 3144372d0847cb4d22a8c4b1362cd31885b37671adc682c3a8e9435762cde338
-SIZE (domoticz-domoticz-2023.1_GH0.tar.gz) = 13135239
+TIMESTAMP = 1714821392
+SHA256 (domoticz-domoticz-2024.4_GH0.tar.gz) = d87113d7cacd0b52b9126fcc1ef24e140a4f7042d5bc6262e86e4b4752f5cf38
+SIZE (domoticz-domoticz-2024.4_GH0.tar.gz) = 13221980
diff --git a/www/domoticz/pkg-plist b/www/domoticz/pkg-plist
index 586e11fb27ef..850a65a40b8e 100644
--- a/www/domoticz/pkg-plist
+++ b/www/domoticz/pkg-plist
@@ -1,855 +1,3 @@
-domoticz/Config/2gig/ct100.xml
-domoticz/Config/2gig/ct101.xml
-domoticz/Config/2gig/ct200.xml
-domoticz/Config/2gig/ct30.xml
-domoticz/Config/2gig/ct32.xml
-domoticz/Config/2gig/ct50e.xml
-domoticz/Config/2gig/ct80.xml
-domoticz/Config/BeNext/1poleswitch.xml
-domoticz/Config/BeNext/2poleswitch.xml
-domoticz/Config/BeNext/AlarmSound.xml
-domoticz/Config/BeNext/BuiltinDimmer.xml
-domoticz/Config/BeNext/DoorSensor.xml
-domoticz/Config/BeNext/EnergySwitch.xml
-domoticz/Config/BeNext/HeatingControl.xml
-domoticz/Config/BeNext/Molite.xml
-domoticz/Config/BeNext/P1dongle.xml
-domoticz/Config/BeNext/PanicButton.xml
-domoticz/Config/BeNext/PanicWatch.xml
-domoticz/Config/BeNext/PluginDimmer.xml
-domoticz/Config/BeNext/SceneController.xml
-domoticz/Config/BeNext/TagReader.xml
-domoticz/Config/BeNext/TagReader500.xml
-domoticz/Config/BeNext/mydisplay.xml
-domoticz/Config/BeNext/mygate.xml
-domoticz/Config/Localization.xml
-domoticz/Config/Localization.xsd
-domoticz/Config/NotificationCCTypes.xml
-domoticz/Config/NotificationCCTypes.xsd
-domoticz/Config/SensorMultiLevelCCTypes.xml
-domoticz/Config/SensorMultiLevelCCTypes.xsd
-domoticz/Config/abus/SHRM10000.xml
-domoticz/Config/act/lfm20.xml
-domoticz/Config/act/zdm230.xml
-domoticz/Config/act/zdp100.xml
-domoticz/Config/act/zdw103.xml
-domoticz/Config/act/zdw232.xml
-domoticz/Config/act/zir010.xml
-domoticz/Config/act/zrm230.xml
-domoticz/Config/act/zrp100.xml
-domoticz/Config/act/zrp110.xml
-domoticz/Config/act/zrw103.xml
-domoticz/Config/act/zrw230.xml
-domoticz/Config/aeotec/dsa03202.xml
-domoticz/Config/aeotec/dsa22.xml
-domoticz/Config/aeotec/dsa38.xml
-domoticz/Config/aeotec/dsb04100.xml
-domoticz/Config/aeotec/dsb05.xml
-domoticz/Config/aeotec/dsb09104.xml
-domoticz/Config/aeotec/dsb28-zweu.xml
-domoticz/Config/aeotec/dsb28.xml
-domoticz/Config/aeotec/dsb29.xml
-domoticz/Config/aeotec/dsb45.xml
-domoticz/Config/aeotec/dsb54.xml
-domoticz/Config/aeotec/dsc06106.xml
-domoticz/Config/aeotec/dsc08101.xml
-domoticz/Config/aeotec/dsc10.xml
-domoticz/Config/aeotec/dsc11.xml
-domoticz/Config/aeotec/dsc12104.xml
-domoticz/Config/aeotec/dsc13104.xml
-domoticz/Config/aeotec/dsc14104.xml
-domoticz/Config/aeotec/dsc18103.xml
-domoticz/Config/aeotec/dsc19103.xml
-domoticz/Config/aeotec/dsc24.xml
-domoticz/Config/aeotec/dsc26103.xml
-domoticz/Config/aeotec/dsc27103.xml
-domoticz/Config/aeotec/dsc35103.xml
-domoticz/Config/aeotec/dsd37.xml
-domoticz/Config/aeotec/zw056.xml
-domoticz/Config/aeotec/zw062.xml
-domoticz/Config/aeotec/zw074.xml
-domoticz/Config/aeotec/zw075.xml
-domoticz/Config/aeotec/zw078.xml
-domoticz/Config/aeotec/zw080.xml
-domoticz/Config/aeotec/zw088.xml
-domoticz/Config/aeotec/zw089.xml
-domoticz/Config/aeotec/zw090.xml
-domoticz/Config/aeotec/zw095.xml
-domoticz/Config/aeotec/zw096.xml
-domoticz/Config/aeotec/zw097.xml
-domoticz/Config/aeotec/zw098.xml
-domoticz/Config/aeotec/zw099.xml
-domoticz/Config/aeotec/zw100.xml
-domoticz/Config/aeotec/zw111.xml
-domoticz/Config/aeotec/zw112.xml
-domoticz/Config/aeotec/zw116.xml
-domoticz/Config/aeotec/zw117.xml
-domoticz/Config/aeotec/zw120.xml
-domoticz/Config/aeotec/zw121.xml
-domoticz/Config/aeotec/zw122.xml
-domoticz/Config/aeotec/zw129.xml
-domoticz/Config/aeotec/zw130.xml
-domoticz/Config/aeotec/zw132.xml
-domoticz/Config/aeotec/zw139.xml
-domoticz/Config/aeotec/zw140.xml
-domoticz/Config/aeotec/zw141.xml
-domoticz/Config/aeotec/zw162.xml
-domoticz/Config/aeotec/zw164.xml
-domoticz/Config/aeotec/zw175.xml
-domoticz/Config/aeotec/zw187.xml
-domoticz/Config/aeotec/zw189.xml
-domoticz/Config/aeotec/zwa001.xml
-domoticz/Config/aeotec/zwa002.xml
-domoticz/Config/aeotec/zwa003.xml
-domoticz/Config/aeotec/zwa004.xml
-domoticz/Config/aeotec/zwa005.xml
-domoticz/Config/aeotec/zwa006.xml
-domoticz/Config/aeotec/zwa008.xml
-domoticz/Config/aeotec/zwa009.xml
-domoticz/Config/aeotec/zwa011.xml
-domoticz/Config/aeotec/zwa012.xml
-domoticz/Config/aeotec/zwa019.xml
-domoticz/Config/aeotec/zwa021.xml
-domoticz/Config/aeotec/zwa023.xml
-domoticz/Config/airlinemechanical/zds-ud10.xml
-domoticz/Config/alfred/DB2.xml
-domoticz/Config/assa_abloy/ConexisL1.xml
-domoticz/Config/assa_abloy/KeyfreeConnected-plus.xml
-domoticz/Config/assa_abloy/KeyfreeConnected.xml
-domoticz/Config/assa_abloy/ProSLKey-FreeDeadbolt.xml
-domoticz/Config/assa_abloy/PushButtonDeadbolt.xml
-domoticz/Config/assa_abloy/PushButtonLever.xml
-domoticz/Config/assa_abloy/TouchDeadbolt.xml
-domoticz/Config/assa_abloy/TouchLever.xml
-domoticz/Config/assa_abloy/nexTouch.xml
-domoticz/Config/assa_abloy/yrd1x0.xml
-domoticz/Config/assa_abloy/yrm276.xml
-domoticz/Config/august/asl-03.xml
-domoticz/Config/buffalo/hw-100v15a-zw.xml
-domoticz/Config/building36/b36-t10.xml
-domoticz/Config/comfort/ucm.xml
-domoticz/Config/config-template.xml
-domoticz/Config/connecthome/ch-201.xml
-domoticz/Config/cooper/RF9501.xml
-domoticz/Config/cooper/RF9505-T.xml
-domoticz/Config/cooper/RF9505-T.xml.zip
-domoticz/Config/cooper/RF9517.xml
-domoticz/Config/cooper/RF9540-N.xml
-domoticz/Config/cooper/RF9542-Z.xml
-domoticz/Config/cooper/RF9601.xml
-domoticz/Config/cooper/RFWC5.xml
-domoticz/Config/cooper/rf9534.xml
-domoticz/Config/danfoss/living.xml
-domoticz/Config/danfoss/rsroom.xml
-domoticz/Config/danfoss/z.xml
-domoticz/Config/device_classes.xml
-domoticz/Config/device_classes.xsd
-domoticz/Config/device_configuration.xsd
-domoticz/Config/devolo/connectz.xml
-domoticz/Config/devolo/mt02648.xml
-domoticz/Config/devolo/mt02755.xml
-domoticz/Config/devolo/mt02758.xml
-domoticz/Config/devolo/mt02792.xml
-domoticz/Config/devolo/mt2646.xml
-domoticz/Config/devolo/mt2647.xml
-domoticz/Config/devolo/mt2651.xml
-domoticz/Config/devolo/mt2652.xml
-domoticz/Config/devolo/mt2653.xml
-domoticz/Config/devolo/mt2756.xml
-domoticz/Config/devolo/mt2759.xml
-domoticz/Config/devolo/mt2760.xml
-domoticz/Config/devolo/mt2761.xml
-domoticz/Config/devolo/rs014G0159.xml
-domoticz/Config/diehlcontrols/766366.xml
-domoticz/Config/dlink/dch-z110.xml
-domoticz/Config/dlink/dch-z120.xml
-domoticz/Config/dlink/dch-z210.xml
-domoticz/Config/dlink/dch-z510.xml
-domoticz/Config/dome/0002.xml
-domoticz/Config/dome/0083.xml
-domoticz/Config/dome/0085.xml
-domoticz/Config/dome/0086.xml
-domoticz/Config/dome/0087.xml
-domoticz/Config/dome/0088.xml
-domoticz/Config/dome/0101.xml
-domoticz/Config/dome/0104.xml
-domoticz/Config/dome/0201.xml
-domoticz/Config/dome/dmex1.xml
-domoticz/Config/domitech/zb22uk.xml
-domoticz/Config/domitech/ze27eu.xml
-domoticz/Config/domux/DX1CA-Z.xml
-domoticz/Config/domux/DX1CG-Z.xml
-domoticz/Config/domux/DX1DS-Z.xml
-domoticz/Config/domux/DX1HT-Z.xml
-domoticz/Config/domux/DX1MS-Z.xml
-domoticz/Config/domux/DX1SA-Z.xml
-domoticz/Config/domux/DX1WL-Z.xml
-domoticz/Config/domux/DX2SK-Z.xml
-domoticz/Config/dragontech/wd-100.xml
-domoticz/Config/duco/DucoBox.xml
-domoticz/Config/duco/Ducotronic_CO-RH_sensor.xml
-domoticz/Config/duwi/05458.xml
-domoticz/Config/duwi/ZWES1000.xml
-domoticz/Config/duwi/ZWESJ300.xml
-domoticz/Config/duwi/zw-edan-300.xml
-domoticz/Config/duwi/zw-zdan-300.xml
-domoticz/Config/duwi/zwfb.xml
-domoticz/Config/duwi/zwws.xml
-domoticz/Config/ecodim/0.7.xml
-domoticz/Config/ecolink/doorwindow.xml
-domoticz/Config/ecolink/firefighter.xml
-domoticz/Config/ecolink/floodfreeze.xml
-domoticz/Config/ecolink/motion.xml
-domoticz/Config/ecolink/sensor.xml
-domoticz/Config/ecolink/tiltsensor.xml
-domoticz/Config/econet/ezw1204.xml
-domoticz/Config/electronicsolutions/dbmz.xml
-domoticz/Config/enblink/ss201-us-w_1308.xml
-domoticz/Config/enerwave/zw15rmplus.xml
-domoticz/Config/enerwave/zw15s.xml
-domoticz/Config/enerwave/zw20r.xml
-domoticz/Config/enerwave/zw20rm.xml
-domoticz/Config/enerwave/zw500d.xml
-domoticz/Config/enerwave/zwn-bpc.xml
-domoticz/Config/enerwave/zwn-sc7.xml
-domoticz/Config/enerwave/zwnrsm1plus.xml
-domoticz/Config/enerwave/zwnrsm2plus.xml
-domoticz/Config/eurotronic/eur_airquality.xml
-domoticz/Config/eurotronic/eur_cometz.xml
-domoticz/Config/eurotronic/eur_spiritz.xml
-domoticz/Config/eurotronic/eur_stellaz.xml
-domoticz/Config/eurotronic/eur_temphumin.xml
-domoticz/Config/everspring/ad146.xml
-domoticz/Config/everspring/ad147.xml
-domoticz/Config/everspring/an145.xml
-domoticz/Config/everspring/an157.xml
-domoticz/Config/everspring/an158.xml
-domoticz/Config/everspring/an163.xml
-domoticz/Config/everspring/an179.xml
-domoticz/Config/everspring/an180.xml
-domoticz/Config/everspring/an181.xml
-domoticz/Config/everspring/hac01.xml
-domoticz/Config/everspring/han01.xml
-domoticz/Config/everspring/han02-1.xml
-domoticz/Config/everspring/hsp02.xml
-domoticz/Config/everspring/lptdm1u.xml
-domoticz/Config/everspring/se812.xml
-domoticz/Config/everspring/sf812.xml
-domoticz/Config/everspring/sm103.xml
-domoticz/Config/everspring/sp103.xml
-domoticz/Config/everspring/sp814.xml
-domoticz/Config/everspring/sp815.xml
-domoticz/Config/everspring/sp816.xml
-domoticz/Config/everspring/st812.xml
-domoticz/Config/everspring/st814.xml
-domoticz/Config/everspring/st815.xml
-domoticz/Config/everspring/tse03.xml
-domoticz/Config/everspringct/hsm02.xml
-domoticz/Config/evolve/lfm-20.xml
-domoticz/Config/evolve/lrm-as.xml
-domoticz/Config/evolve/lsm-15.xml
-domoticz/Config/evolve/ltm-5.xml
-domoticz/Config/evolve/t-100.xml
-domoticz/Config/fakro/arz.xml
-domoticz/Config/fakro/arzsolar.xml
-domoticz/Config/fakro/zrh12.xml
-domoticz/Config/fakro/zwp10.xml
-domoticz/Config/fakro/zwrs.xml
-domoticz/Config/fakro/zws12.xml
-domoticz/Config/fakro/zws230.xml
-domoticz/Config/fibaro/fgbs001.xml
-domoticz/Config/fibaro/fgbs222.xml
-domoticz/Config/fibaro/fgcd001.xml
-domoticz/Config/fibaro/fgd211.xml
-domoticz/Config/fibaro/fgd212.xml
-domoticz/Config/fibaro/fgdw2.xml
-domoticz/Config/fibaro/fgfs101.xml
-domoticz/Config/fibaro/fgfs101zw5.xml
-domoticz/Config/fibaro/fggc001.xml
-domoticz/Config/fibaro/fgk001.xml
-domoticz/Config/fibaro/fgk10x.xml
-domoticz/Config/fibaro/fgkf601.xml
-domoticz/Config/fibaro/fgms.xml
-domoticz/Config/fibaro/fgmszw5.xml
-domoticz/Config/fibaro/fgpb101.xml
-domoticz/Config/fibaro/fgr221.xml
-domoticz/Config/fibaro/fgr223.xml
-domoticz/Config/fibaro/fgrgbw442.xml
-domoticz/Config/fibaro/fgrgbwm441.xml
-domoticz/Config/fibaro/fgrm222.xml
-domoticz/Config/fibaro/fgs211.xml
-domoticz/Config/fibaro/fgs212.xml
-domoticz/Config/fibaro/fgs213.xml
-domoticz/Config/fibaro/fgs214.xml
-domoticz/Config/fibaro/fgs221.xml
-domoticz/Config/fibaro/fgs222.xml
-domoticz/Config/fibaro/fgs223.xml
-domoticz/Config/fibaro/fgs224.xml
-domoticz/Config/fibaro/fgsd002.xml
-domoticz/Config/fibaro/fgss101.xml
-domoticz/Config/fibaro/fgt001.xml
-domoticz/Config/fibaro/fgwd111.xml
-domoticz/Config/fibaro/fgwds221.xml
-domoticz/Config/fibaro/fgwds221ss.xml
-domoticz/Config/fibaro/fgwoe.xml
-domoticz/Config/fibaro/fgwpb121.xml
-domoticz/Config/fibaro/fgwpe.xml
-domoticz/Config/fibaro/fgwpfzw5.xml
-domoticz/Config/fibaro/fgwpg111.xml
-domoticz/Config/fibaro/fgwr111.xml
-domoticz/Config/firstalert/zcombo-g.xml
-domoticz/Config/firstalert/zcombo.xml
-domoticz/Config/firstalert/zsmoke.xml
-domoticz/Config/followgood/swz-1002.xml
-domoticz/Config/forest/fs2z5232000002.xml
-domoticz/Config/fortrezz/fmi.xml
-domoticz/Config/fortrezz/fts05p.xml
-domoticz/Config/fortrezz/gdc1_fortrezz_1501.xml
-domoticz/Config/fortrezz/mimo2plus.xml
-domoticz/Config/fortrezz/mimolite.xml
-domoticz/Config/fortrezz/ssa2.xml
-domoticz/Config/fortrezz/ssa3.xml
-domoticz/Config/fortrezz/wv01.xml
-domoticz/Config/fortrezz/wwa-01aa.xml
-domoticz/Config/fortrezz/wwa02.xml
-domoticz/Config/frostdale/fdn2311.xml
-domoticz/Config/frostdale/fdn2nxx.xml
-domoticz/Config/ge/12719-plugin-switch.xml
-domoticz/Config/ge/12720.xml
-domoticz/Config/ge/12724-dimmer.xml
-domoticz/Config/ge/12727.xml
-domoticz/Config/ge/14280-plugin-dimmer.xml
-domoticz/Config/ge/14282-plugin-switch.xml
-domoticz/Config/ge/14284.xml
-domoticz/Config/ge/14285.xml
-domoticz/Config/ge/14288-outlet.xml
-domoticz/Config/ge/14291-switch.xml
-domoticz/Config/ge/14292-toggle-switch.xml
-domoticz/Config/ge/14294-dimmer.xml
-domoticz/Config/ge/14295-dimmer-toggle.xml
-domoticz/Config/ge/14298.xml
-domoticz/Config/ge/14322-dimmer-toggle.xml
-domoticz/Config/ge/26931-motion-switch.xml
-domoticz/Config/ge/26932-motion-dimmer.xml
-domoticz/Config/ge/26933-motion-dimmer.xml
-domoticz/Config/ge/28167-plugin-dimmer.xml
-domoticz/Config/ge/28169-plugin-switch.xml
-domoticz/Config/ge/45604.xml
-domoticz/Config/ge/46201-switch.xml
-domoticz/Config/ge/46202-switch.xml
-domoticz/Config/ge/46203-dimmer.xml
-domoticz/Config/ge/46204-dimmer-toggle.xml
-domoticz/Config/ge/dimmer.xml
-domoticz/Config/ge/dimmer_module.xml
-domoticz/Config/ge/hinge-pin.xml
-domoticz/Config/ge/receptacle.xml
-domoticz/Config/ge/relay.xml
-domoticz/Config/ge/ze26i.xml
-domoticz/Config/ge/zw4001-switch.xml
-domoticz/Config/ge/zw6302.xml
-domoticz/Config/gocontrol/GC-TBZ48L.xml
-domoticz/Config/goodway/td14010.xml
-domoticz/Config/gr/gr-302n.xml
-domoticz/Config/gr/gr105.xml
-domoticz/Config/gr/gr105n.xml
-domoticz/Config/gr/grb3.xml
-domoticz/Config/graber/brz1.xml
-domoticz/Config/graber/csz1.xml
-domoticz/Config/graber/mcz1.xml
-domoticz/Config/graber/rsz1.xml
-domoticz/Config/graber/vcz1.xml
-domoticz/Config/greenwave/gs1110-1-gr-1.xml
-domoticz/Config/greenwave/powernode1.xml
-domoticz/Config/greenwave/powernode6.xml
-domoticz/Config/guardtec/gkw2000d.xml
-domoticz/Config/hab/iblindsV2.xml
-domoticz/Config/hab/iblindsV3.xml
-domoticz/Config/hank/hkzw-dws01.xml
-domoticz/Config/hank/hkzw-fld01.xml
-domoticz/Config/hank/hkzw-ms01.xml
-domoticz/Config/hank/hkzw-ms02-200.xml
-domoticz/Config/hank/hkzw-ms02-300.xml
-domoticz/Config/hank/hkzw-rgb01.xml
-domoticz/Config/hank/hkzw-so01-smartplug.xml
-domoticz/Config/hank/hkzw-so03.xml
-domoticz/Config/hank/hkzw-so05-smartplug.xml
-domoticz/Config/hank/hkzw-so08-smartplug.xml
-domoticz/Config/hank/scenecontroller1.xml
-domoticz/Config/hank/scenecontroller4.xml
-domoticz/Config/heiman/HS1CA-Z.xml
-domoticz/Config/heiman/HS1CG-Z.xml
-domoticz/Config/heiman/HS1DS-Z.xml
-domoticz/Config/heiman/HS1HT-Z.xml
-domoticz/Config/heiman/HS1MS-Z.xml
-domoticz/Config/heiman/HS1SA-Z.xml
-domoticz/Config/heiman/HS1WL-Z.xml
-domoticz/Config/heiman/HS2SK-Z.xml
-domoticz/Config/heiman/HS2WD-Z.xml
-domoticz/Config/heltun/he-ft01.xml
-domoticz/Config/heltun/he-ht01.xml
-domoticz/Config/heltun/he-zw-sw-5a-1.xml
-domoticz/Config/heltun/he-zw-therm-fc1.xml
-domoticz/Config/heltun/he-zw-therm-fl2.xml
-domoticz/Config/homeseer/ezmotionplus.xml
-domoticz/Config/homeseer/hs-ds100plus.xml
-domoticz/Config/homeseer/hs-fc200plus.xml
-domoticz/Config/homeseer/hs-fls100plus.xml
-domoticz/Config/homeseer/hs-fs100plus.xml
-domoticz/Config/homeseer/hs-ls100plus.xml
-domoticz/Config/homeseer/hs-ms100plus.xml
-domoticz/Config/homeseer/hs-wd100plus.xml
-domoticz/Config/homeseer/hs-wd200plus.xml
-domoticz/Config/homeseer/hs-ws100plus.xml
-domoticz/Config/homeseer/hs-ws200plus.xml
-domoticz/Config/homeseer/hsm100.xml
-domoticz/Config/homeseer/hsm200.xml
-domoticz/Config/homeseer/ztroller.xml
-domoticz/Config/honeywell/2681-plugin-dimmer.xml
-domoticz/Config/honeywell/3830-zw3107.xml
-domoticz/Config/honeywell/39348-ZW4005.xml
-domoticz/Config/honeywell/39348-zw4008.xml
-domoticz/Config/honeywell/39349-ZW1002.xml
-domoticz/Config/honeywell/39351-ZW3005.xml
-domoticz/Config/honeywell/39351-ZW3010.xml
-domoticz/Config/honeywell/39357-ZW3004.xml
-domoticz/Config/honeywell/39358-ZW4002.xml
-domoticz/Config/honeywell/39449-ZW4106.xml
-domoticz/Config/honeywell/lynx-touch-l5100.xml
-domoticz/Config/honeywell/th6320zw2003.xml
-domoticz/Config/honeywell/th8320zw1000.xml
-domoticz/Config/horstmann/asrzw.xml
-domoticz/Config/horstmann/hrt4zw.xml
-domoticz/Config/horstmann/scsc17.xml
-domoticz/Config/horstmann/ses301.xml
-domoticz/Config/horstmann/ses302.xml
-domoticz/Config/horstmann/ses303.xml
-domoticz/Config/horstmann/sir321.xml
-domoticz/Config/horstmann/srt321.xml
-domoticz/Config/horstmann/srt323.xml
-domoticz/Config/horstmann/ssr302.xml
-domoticz/Config/horstmann/ssr303.xml
-domoticz/Config/icare/zw-66.xml
-domoticz/Config/idlock/idlock101.xml
-domoticz/Config/idlock/idlock150.xml
-domoticz/Config/ingersoll/dwzwave1.xml
-domoticz/Config/inovelli/lzw30-sn.xml
-domoticz/Config/inovelli/lzw30.xml
-domoticz/Config/inovelli/lzw31-sn.xml
-domoticz/Config/inovelli/lzw31.xml
-domoticz/Config/inovelli/lzw36.xml
-domoticz/Config/inovelli/lzw40.xml
-domoticz/Config/inovelli/lzw41.xml
-domoticz/Config/inovelli/lzw42.xml
-domoticz/Config/inovelli/lzw45.xml
-domoticz/Config/inovelli/lzw60.xml
-domoticz/Config/inovelli/nzw1201.xml
-domoticz/Config/inovelli/nzw30.xml
-domoticz/Config/inovelli/nzw31.xml
-domoticz/Config/inovelli/nzw36.xml
-domoticz/Config/inovelli/nzw37.xml
-domoticz/Config/inovelli/nzw39.xml
-domoticz/Config/inovelli/nzw96.xml
-domoticz/Config/inovelli/nzw97.xml
-domoticz/Config/inovelli/simple_module.xml
-domoticz/Config/intermatic/ca8900.xml
-domoticz/Config/iris/rangeextender.xml
-domoticz/Config/iwatsu/ne-4ct-2p.xml
-domoticz/Config/iwatsu/ne-4ct.xml
-domoticz/Config/jasco/45601.xml
-domoticz/Config/kaipule/im20.xml
-domoticz/Config/kaipule/ix32.xml
-domoticz/Config/kwikset/888.xml
-domoticz/Config/kwikset/910.xml
-domoticz/Config/kwikset/914c.xml
-domoticz/Config/kwikset/916.xml
-domoticz/Config/kwikset/smartcode.xml
-domoticz/Config/leviton/dz15s.xml
-domoticz/Config/leviton/dz6hd.xml
-domoticz/Config/leviton/dzpa1.xml
-domoticz/Config/leviton/dzpd3.xml
-domoticz/Config/leviton/rzi10.xml
-domoticz/Config/leviton/vrcpg.xml
-domoticz/Config/leviton/vrcs2.xml
-domoticz/Config/leviton/vrcz4.xml
-domoticz/Config/leviton/vre06.xml
-domoticz/Config/leviton/vrf01.xml
-domoticz/Config/leviton/vri06.xml
-domoticz/Config/leviton/vri10.xml
-domoticz/Config/leviton/vrpa1.xml
-domoticz/Config/leviton/vrpd3.xml
-domoticz/Config/leviton/vrs15.xml
-domoticz/Config/leviton/zw15r.xml
-domoticz/Config/leviton/zw4sf.xml
-domoticz/Config/linear/GC-TBZ48.xml
-domoticz/Config/linear/LB60Z-1.xml
-domoticz/Config/linear/PD300Z-2.xml
-domoticz/Config/linear/WA00Z-1.xml
-domoticz/Config/linear/WA105DBZ-1.xml
-domoticz/Config/linear/WADWAZ-1.xml
-domoticz/Config/linear/WAPIRZ-1.xml
-domoticz/Config/linear/WD500Z-1.xml
-domoticz/Config/linear/WD500Z5-1.xml
-domoticz/Config/linear/WS15Z-1.xml
-domoticz/Config/linear/WT00Z-1.xml
-domoticz/Config/linear/WT00Z5-1.xml
-domoticz/Config/linear/gd00z-7.xml
-domoticz/Config/linear/ngd00z.xml
-domoticz/Config/logicsoft/ZDB5100.xml
-domoticz/Config/logicsoft/ZHC5002.xml
-domoticz/Config/logicsoft/ZHC5010.xml
-domoticz/Config/manufacturer_specific.xml
-domoticz/Config/manufacturer_specific.xsd
-domoticz/Config/mcohome/a8-9.xml
-domoticz/Config/mcohome/mh10pm25wd.xml
-domoticz/Config/mcohome/mh7h.xml
-domoticz/Config/mcohome/mh8fceu.xml
-domoticz/Config/mcohome/mh8fceu0803.xml
-domoticz/Config/mcohome/mh9co2.xml
-domoticz/Config/mcohome/mhdt411.xml
-domoticz/Config/mcohome/mhp210.xml
-domoticz/Config/mcohome/mhp220.xml
-domoticz/Config/mcohome/mhp511.xml
-domoticz/Config/mcohome/mhs220.xml
-domoticz/Config/mcohome/mhs311.xml
-domoticz/Config/mcohome/mhs312.xml
-domoticz/Config/mcohome/mhs314.xml
-domoticz/Config/mcohome/mhs411.xml
-domoticz/Config/mcohome/mhs412.xml
-domoticz/Config/mcohome/mhs513.xml
-domoticz/Config/merten/5044xx.xml
-domoticz/Config/merten/5046xx.xml
-domoticz/Config/merten/506004.xml
-domoticz/Config/merten/507801.xml
-domoticz/Config/merten/508244.xml
-domoticz/Config/merten/50x5xx.xml
-domoticz/Config/miyakawaelectric/me-d101.xml
-domoticz/Config/namron/1402756.xml
-domoticz/Config/namron/4512710.xml
-domoticz/Config/namron/4512712.xml
-domoticz/Config/namron/4512714.xml
-domoticz/Config/namron/4512715.xml
-domoticz/Config/namron/4512720.xml
-domoticz/Config/namron/4512724.xml
-domoticz/Config/nei/ms11z.xml
-domoticz/Config/nexia/db100z.xml
-domoticz/Config/nexia/th100nx.xml
-domoticz/Config/nodon/asp3100SmartPlug.xml
-domoticz/Config/nodon/crc3100OctanRemote.xml
-domoticz/Config/nodon/crc360xSofremote.xml
-domoticz/Config/nodon/cws3101wallswitch.xml
-domoticz/Config/nodon/msp31xxMicroSmartPlug.xml
-domoticz/Config/northq/nq9021.xml
-domoticz/Config/northq/nq9121.xml
-domoticz/Config/northq/nq92021.xml
-domoticz/Config/oomi/ft100.xml
-domoticz/Config/oomi/ft111.xml
-domoticz/Config/oomi/ft112.xml
-domoticz/Config/oomi/ft118.xml
-domoticz/Config/options.xml
-domoticz/Config/options.xsd
-domoticz/Config/permundo/psc132zw.xml
-domoticz/Config/permundo/psc234zw.xml
-domoticz/Config/philio/pad02.xml
-domoticz/Config/philio/pan03.xml
-domoticz/Config/philio/pan04.xml
-domoticz/Config/philio/pan05.xml
-domoticz/Config/philio/pan06.xml
-domoticz/Config/philio/pan07.xml
-domoticz/Config/philio/pan08.xml
-domoticz/Config/philio/pan11-1.xml
-domoticz/Config/philio/pan11.xml
-domoticz/Config/philio/pan16.xml
-domoticz/Config/philio/phpab01.xml
-domoticz/Config/philio/phpat02.xml
-domoticz/Config/philio/phpsg01.xml
-domoticz/Config/philio/pse02.xml
-domoticz/Config/philio/psm02.xml
-domoticz/Config/philio/psp05.xml
-domoticz/Config/philio/psr03-1b.xml
-domoticz/Config/philio/psr04.xml
-domoticz/Config/philio/pst02-1c.xml
-domoticz/Config/philio/pst02-b.xml
-domoticz/Config/philio/pst02.xml
-domoticz/Config/polycontrol/doorlock.xml
-domoticz/Config/polycontrol/doorlockv3.xml
-domoticz/Config/polycontrol/keypad.xml
-domoticz/Config/polycontrol/polylock.xml
-domoticz/Config/popp/004407.xml
-domoticz/Config/popp/009105.xml
-domoticz/Config/popp/009303.xml
-domoticz/Config/popp/009402.xml
-domoticz/Config/popp/009501.xml
-domoticz/Config/popp/012501.xml
-domoticz/Config/popp/123580.xml
-domoticz/Config/popp/123601.xml
-domoticz/Config/popp/123658.xml
-domoticz/Config/popp/700045.xml
-domoticz/Config/popp/700168.xml
-domoticz/Config/popp/700342.xml
-domoticz/Config/popp/700397.xml
-domoticz/Config/popp/700793.xml
-domoticz/Config/popp/701202.xml
-domoticz/Config/popp/dwt.xml
-domoticz/Config/popp/smoke-detector.xml
-domoticz/Config/popp/solar-siren.xml
-domoticz/Config/popp/zweather.xml
-domoticz/Config/prowell/zw-702.xml
-domoticz/Config/q-light/q-light_puck.xml
-domoticz/Config/q-light/q-light_zerodim.xml
-domoticz/Config/q-light/q-light_zerodim_2pol.xml
-domoticz/Config/qees/reto-dimmer-plus.xml
-domoticz/Config/qees/reto-plugin-switch.xml
-domoticz/Config/qolsys/qz2140-840.xml
-domoticz/Config/qubino/ZMNHAA2.xml
-domoticz/Config/qubino/ZMNHADx.xml
-domoticz/Config/qubino/ZMNHBA2.xml
-domoticz/Config/qubino/ZMNHBDx.xml
-domoticz/Config/qubino/ZMNHCA2.xml
-domoticz/Config/qubino/ZMNHCDx.xml
-domoticz/Config/qubino/ZMNHDA2.xml
-domoticz/Config/qubino/ZMNHDDx.xml
-domoticz/Config/qubino/ZMNHHDx.xml
-domoticz/Config/qubino/ZMNHIA2.xml
-domoticz/Config/qubino/ZMNHIDxS1.xml
-domoticz/Config/qubino/ZMNHIDxS2.xml
-domoticz/Config/qubino/ZMNHJA2.xml
-domoticz/Config/qubino/ZMNHJD1.xml
-domoticz/Config/qubino/ZMNHKDx.xml
-domoticz/Config/qubino/ZMNHLAx.xml
-domoticz/Config/qubino/ZMNHLDx.xml
-domoticz/Config/qubino/ZMNHMDx.xml
-domoticz/Config/qubino/ZMNHNDx.xml
-domoticz/Config/qubino/ZMNHODx.xml
-domoticz/Config/qubino/ZMNHQDx.xml
-domoticz/Config/qubino/ZMNHSDx.xml
-domoticz/Config/qubino/ZMNHTDx.xml
-domoticz/Config/qubino/ZMNHTDxS3.xml
-domoticz/Config/qubino/ZMNHUD1.xml
-domoticz/Config/qubino/ZMNHVDx.xml
-domoticz/Config/qubino/ZMNHWD1.xml
-domoticz/Config/qubino/ZMNHXDx.xml
-domoticz/Config/qubino/ZMNHYDx.xml
-domoticz/Config/qubino/ZMNHZDx.xml
-domoticz/Config/qubino/ZMNKADx.xml
-domoticz/Config/qubino/ZMNKIDx.xml
-domoticz/Config/quby/qb2.xml
-domoticz/Config/rcs/em52-zw.xml
-domoticz/Config/rcs/pm12-zw.xml
-domoticz/Config/rcs/therm0005.xml
-domoticz/Config/rcs/therm0007.xml
-domoticz/Config/rcs/therm0009.xml
-domoticz/Config/remotec/bw8120eu.xml
-domoticz/Config/remotec/zfm-80.xml
-domoticz/Config/remotec/zrc-100eu.xml
-domoticz/Config/remotec/zrc-90.xml
-domoticz/Config/remotec/zts-110.xml
-domoticz/Config/remotec/zts-500.xml
-domoticz/Config/remotec/zurc.xml
-domoticz/Config/remotec/zxt-120.xml
-domoticz/Config/remotec/zxt-310.xml
-domoticz/Config/remotec/zxt-600.xml
-domoticz/Config/ring/PIR-SS.xml
-domoticz/Config/ring/contact-sensor-v2.xml
-domoticz/Config/ring/motion-detector-v2.xml
-domoticz/Config/schlage/BE468.xml
-domoticz/Config/schlage/BE468ZP.xml
-domoticz/Config/schlage/BE469.xml
-domoticz/Config/schlage/BE469ZP.xml
-domoticz/Config/schlage/fe599.xml
-domoticz/Config/schlagelink/41.xml
-domoticz/Config/schlagelink/itemp.xml
-domoticz/Config/schlagelink/minikeypad.xml
-domoticz/Config/sensative/strips.xml
-domoticz/Config/sensative/stripscomfort.xml
-domoticz/Config/sercomm/sw-clp01-eu.xml
-domoticz/Config/shenzen_neo/ls01ch.xml
-domoticz/Config/shenzen_neo/ls02ch.xml
-domoticz/Config/shenzen_neo/ls03ch.xml
-domoticz/Config/shenzen_neo/nas-ab01z.xml
-domoticz/Config/shenzen_neo/nas-cs01z.xml
-domoticz/Config/shenzen_neo/nas-ds01z.xml
-domoticz/Config/shenzen_neo/nas-pd01z.xml
-domoticz/Config/shenzen_neo/nas-pd02z.xml
-domoticz/Config/shenzen_neo/nas-pd03z.xml
-domoticz/Config/shenzen_neo/nas-rc01z.xml
-domoticz/Config/shenzen_neo/nas-sc03ze.xml
-domoticz/Config/shenzen_neo/nas-wr01z.xml
-domoticz/Config/shenzen_neo/nas-wr01ze.xml
-domoticz/Config/shenzen_neo/nas-ws02z.xml
-domoticz/Config/shenzen_saykey/sk-3007-05.xml
-domoticz/Config/simon/10002020-13X.xml
-domoticz/Config/simon/10002034-13X.xml
-domoticz/Config/simon/10002041-13X.xml
-domoticz/Config/simon/10002080-13X.xml
-domoticz/Config/smartthings/pgc401m.xml
-domoticz/Config/smartthings/sth-eth200.xml
-domoticz/Config/somfy/1811265_ZRTSI.xml
-domoticz/Config/steinel/is140-2.xml
-domoticz/Config/steinel/l810-led-ihf.xml
-domoticz/Config/steinel/rs-led-d2.xml
-domoticz/Config/steinel/xled-home-2.xml
-domoticz/Config/stelpro/stzw402.xml
-domoticz/Config/sunricher/srzv9001k12dimz4.xml
-domoticz/Config/sunricher/srzv9001k12dimz5.xml
-domoticz/Config/sunricher/srzv9001k2dim.xml
-domoticz/Config/sunricher/srzv9001k4dim.xml
-domoticz/Config/sunricher/srzv9001k4dimg2.xml
-domoticz/Config/sunricher/srzv9001k8.xml
-domoticz/Config/sunricher/srzv9001t4dimeu.xml
-domoticz/Config/sunricher/srzv9001tccteu.xml
-domoticz/Config/sunricher/srzv9003t4rgbweu.xml
-domoticz/Config/sunricher/srzv9100aa.xml
-domoticz/Config/sunricher/srzv9101sachpeu.xml
-domoticz/Config/sunricher/srzv9101sachpswitch.xml
-domoticz/Config/sunricher/zv2835rac.xml
-domoticz/Config/sunricher/zv9101.xml
-domoticz/Config/sunricher/zv9101fa.xml
-domoticz/Config/swiid/swiidinter.xml
-domoticz/Config/swiid/swiidplug.xml
-domoticz/Config/technisat/03009496.xml
-domoticz/Config/technisat/03009497.xml
-domoticz/Config/technisat/03009499.xml
-domoticz/Config/telldus/TZWP102.xml
-domoticz/Config/telldus/tzdw100.xml
-domoticz/Config/telldus/tzwp100.xml
-domoticz/Config/there/800z.xml
-domoticz/Config/thermofloor/heatit-zdim.xml
-domoticz/Config/thermofloor/heatit021-v1.92.xml
-domoticz/Config/thermofloor/heatit021.xml
-domoticz/Config/thermofloor/heatit056.xml
-domoticz/Config/thermofloor/heatit058.xml
-domoticz/Config/thermofloor/heatit204.xml
-domoticz/Config/thermofloor/heatit20a.xml
-domoticz/Config/thermofloor/heatitz4.xml
-domoticz/Config/thermofloor/heatitz8.xml
-domoticz/Config/thermofloor/heatitzm.xml
-domoticz/Config/trane/TZEMT400AB32MAA.xml
-domoticz/Config/trane/TZEMT400BB32MAA.xml
-domoticz/Config/trane/TZEMT524AA21MA.xml
-domoticz/Config/vera/vera2.xml
-domoticz/Config/vision/1701.xml
-domoticz/Config/vision/brg1-433.xml
-domoticz/Config/vision/zd2102.xml
-domoticz/Config/vision/zd2105us5.xml
-domoticz/Config/vision/zd2201.xml
-domoticz/Config/vision/zd2301.xml
-domoticz/Config/vision/zf5201.xml
-domoticz/Config/vision/zg8101.xml
-domoticz/Config/vision/zl7101us.xml
-domoticz/Config/vision/zl7201us.xml
-domoticz/Config/vision/zl7261.xml
-domoticz/Config/vision/zl7431.xml
-domoticz/Config/vision/zl7432us.xml
-domoticz/Config/vision/zm1601eu.xml
-domoticz/Config/vision/zm1601eu5.xml
-domoticz/Config/vision/zm1602eu.xml
-domoticz/Config/vision/zm1602eu5.xml
-domoticz/Config/vision/zp3102.xml
-domoticz/Config/vision/zp3111.xml
-domoticz/Config/vision/zr1202us.xml
-domoticz/Config/vision/zs5101eu.xml
-domoticz/Config/vision/zs610eu.xml
-domoticz/Config/vision/zu1401jp.xml
-domoticz/Config/vitrum/vitrumI-Dimmer.xml
-domoticz/Config/vitrum/vitrumI-Switch.xml
-domoticz/Config/vitrum/vitrumII-Dimmer.xml
-domoticz/Config/vitrum/vitrumII-RollerBlind.xml
-domoticz/Config/vitrum/vitrumII-Switch.xml
-domoticz/Config/vitrum/vitrumIII-Dimmer.xml
-domoticz/Config/vitrum/vitrumIII-Switch.xml
-domoticz/Config/vitrum/vitrumIV-Switch.xml
-domoticz/Config/vitrum/vitrumVI-Switch.xml
-domoticz/Config/waynedalton/WDTC-20.xml
-domoticz/Config/wenzhou/sm103.xml
-domoticz/Config/wenzhou/tsp01.xml
-domoticz/Config/wenzhou/tz55.xml
-domoticz/Config/wenzhou/tz56.xml
-domoticz/Config/wenzhou/tz56s.xml
-domoticz/Config/wenzhou/tz57.xml
-domoticz/Config/wenzhou/tz65d.xml
-domoticz/Config/wenzhou/tz66d.xml
-domoticz/Config/wenzhou/tz67.xml
-domoticz/Config/wenzhou/tz68.xml
-domoticz/Config/wenzhou/tz69.xml
-domoticz/Config/wenzhou/tz74.xml
-domoticz/Config/wenzhou/tz77.xml
-domoticz/Config/wenzhou/tz78.xml
-domoticz/Config/wenzhou/tz79.xml
-domoticz/Config/wenzhou/tz88.xml
-domoticz/Config/wenzhou/tze96.xml
-domoticz/Config/widom/DRY.xml
-domoticz/Config/widom/UBS104.xml
-domoticz/Config/widom/UME304C_S.xml
-domoticz/Config/widom/UMS2.xml
-domoticz/Config/widom/WDS.xml
-domoticz/Config/widom/WDS2.xml
-domoticz/Config/widom/WSP.xml
-domoticz/Config/widom/WTED.xml
-domoticz/Config/wink/wnk-mot1.xml
-domoticz/Config/wink/wnk-sir1p.xml
-domoticz/Config/zipato/MiniKeypad.xml
-domoticz/Config/zipato/RGBBulb.xml
-domoticz/Config/zipato/RGBBulb2.xml
-domoticz/Config/zipato/ne-nas-ab02z.xml
-domoticz/Config/zipato/pan04.xml
-domoticz/Config/zipato/vszd2102.xml
-domoticz/Config/zipato/zp3102.xml
-domoticz/Config/zooz/zen06.xml
-domoticz/Config/zooz/zen07.xml
-domoticz/Config/zooz/zen15.xml
-domoticz/Config/zooz/zen16.xml
-domoticz/Config/zooz/zen17.xml
-domoticz/Config/zooz/zen20.xml
-domoticz/Config/zooz/zen20v2.xml
-domoticz/Config/zooz/zen21.xml
-domoticz/Config/zooz/zen21v3.xml
-domoticz/Config/zooz/zen22.xml
-domoticz/Config/zooz/zen22v2.xml
-domoticz/Config/zooz/zen23.xml
-domoticz/Config/zooz/zen23v3.xml
-domoticz/Config/zooz/zen24.xml
-domoticz/Config/zooz/zen24v2.xml
-domoticz/Config/zooz/zen25.xml
-domoticz/Config/zooz/zen26.xml
-domoticz/Config/zooz/zen27.xml
-domoticz/Config/zooz/zen30.xml
-domoticz/Config/zooz/zen31.xml
-domoticz/Config/zooz/zen32.xml
-domoticz/Config/zooz/zen34.xml
-domoticz/Config/zooz/zen71.xml
-domoticz/Config/zooz/zen72.xml
-domoticz/Config/zooz/zen76.xml
-domoticz/Config/zooz/zen77.xml
-domoticz/Config/zooz/zse08.xml
-domoticz/Config/zooz/zse09.xml
-domoticz/Config/zooz/zse18.xml
-domoticz/Config/zooz/zse19.xml
-domoticz/Config/zooz/zse29.xml
-domoticz/Config/zooz/zse30.xml
-domoticz/Config/zooz/zse33.xml
-domoticz/Config/zooz/zse40.xml
-domoticz/Config/zwave.me/004001.xml
-domoticz/Config/zwave.me/ZME_05431.xml
-domoticz/Config/zwave.me/ZME_05461.xml
-domoticz/Config/zwave.me/ZME_06433.xml
-domoticz/Config/zwave.me/ZME_06436.xml
-domoticz/Config/zwave.me/ZME_064381.xml
-domoticz/Config/zwave.me/ZME_064435.xml
-domoticz/Config/zwave.me/ZME_KFOB-S.xml
-domoticz/Config/zwave.me/ZME_RC2.xml
-domoticz/Config/zwave.me/ZME_WALLC-S.xml
-domoticz/Config/zwave.me/ZME_WCD2.xml
-domoticz/Config/zwave.me/ZUno.xml
-domoticz/Config/zwave.me/iTemp.xml
-domoticz/Config/zwave.me/kfob.xml
-domoticz/Config/zwave.me/popp_kfob-c.xml
-domoticz/Config/zwave.me/razberry.xml
-domoticz/Config/zwave.me/zme_raz5.xml
-domoticz/Config/zwave.me/zweather.xml
-domoticz/Config/zwcfg.xsd
-domoticz/Config/zwp/PA-100.xml
-domoticz/Config/zwp/WD-100.xml
-domoticz/Config/zwscene.xsd
domoticz/History.txt
domoticz/License.txt
domoticz/domoticz
@@ -1136,6 +284,7 @@ domoticz/www/app/DPFibaroController.js
domoticz/www/app/DPGooglePubSubController.js
domoticz/www/app/DPHttpController.js
domoticz/www/app/DPInfluxController.js
+domoticz/www/app/DPMQTTController.js
domoticz/www/app/DashboardController.js
domoticz/www/app/DeviceLightEdit.js
domoticz/www/app/DummyController.js
@@ -1149,9 +298,9 @@ domoticz/www/app/LogController.js
domoticz/www/app/LoginController.js
domoticz/www/app/LogoutController.js
domoticz/www/app/MobileNotificationsController.js
+domoticz/www/app/MyProfileController.js
domoticz/www/app/NotificationController.js
domoticz/www/app/OfflineController.js
-domoticz/www/app/RFXComFirmwareController.js
domoticz/www/app/RestoreDatabaseController.js
domoticz/www/app/ScenesController.js
domoticz/www/app/SetupController.js
@@ -1202,6 +351,10 @@ domoticz/www/app/hardware/setup/EnOceanESP3.html
domoticz/www/app/hardware/setup/EnOceanESP3.js
domoticz/www/app/hardware/setup/Kodi.html
domoticz/www/app/hardware/setup/Kodi.js
+domoticz/www/app/hardware/setup/MQTT-AD.html
+domoticz/www/app/hardware/setup/MQTT-AD.js
+domoticz/www/app/hardware/setup/MQTT.html
+domoticz/www/app/hardware/setup/MQTT.js
domoticz/www/app/hardware/setup/MySensors.html
domoticz/www/app/hardware/setup/MySensors.js
domoticz/www/app/hardware/setup/PanasonicTV.html
@@ -1235,13 +388,18 @@ domoticz/www/app/log/GraphLog.html
domoticz/www/app/log/GraphLog.js
domoticz/www/app/log/LightLog.html
domoticz/www/app/log/LightLog.js
+domoticz/www/app/log/RainLog.html
+domoticz/www/app/log/RainLog.js
domoticz/www/app/log/RefreshingChart.js
domoticz/www/app/log/SceneLog.html
domoticz/www/app/log/SceneLog.js
+domoticz/www/app/log/SetpointLog.html
+domoticz/www/app/log/SetpointLog.js
domoticz/www/app/log/TemperatureLog.html
domoticz/www/app/log/TemperatureLog.js
domoticz/www/app/log/TextLog.html
domoticz/www/app/log/TextLog.js
+domoticz/www/app/log/chart-compare-temp.html
domoticz/www/app/log/chart-compare.html
domoticz/www/app/log/chart-day.html
domoticz/www/app/log/chart-month.html
@@ -1396,6 +554,9 @@ domoticz/www/i18n/domoticz-tr.json.gz
domoticz/www/i18n/domoticz-uk.json.gz
domoticz/www/i18n/domoticz-zh.json.gz
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/Alarm.png
domoticz/www/images/Alarm48_Off.png
domoticz/www/images/Alarm48_On.png
@@ -1844,6 +1005,7 @@ domoticz/www/js/domoticzdevices.js
domoticz/www/js/highcharts-ng.min.js.gz
domoticz/www/js/highcharts/highcharts-more.js.gz
domoticz/www/js/highcharts/highcharts.js.gz
+domoticz/www/js/highcharts/modules/data.js.gz
domoticz/www/js/highcharts/modules/dependency-wheel.js.gz
domoticz/www/js/highcharts/modules/export-data.js.gz
domoticz/www/js/highcharts/modules/exporting.js.gz
@@ -1873,6 +1035,7 @@ domoticz/www/js/ngload.min.js.gz
domoticz/www/js/noty/noty.css
domoticz/www/js/noty/noty.min.js.gz
domoticz/www/js/noty/relax.css
+domoticz/www/js/qrcode.js
domoticz/www/js/require.min.js.gz
domoticz/www/js/respond.min.js.gz
domoticz/www/js/sw-toolbox.js
@@ -1961,6 +1124,7 @@ domoticz/www/styles/simple-blue/custom.js
domoticz/www/styles/simple-gray/custom.css
domoticz/www/styles/simple-gray/custom.js
domoticz/www/switch_icons.txt
+domoticz/www/templates/angular.example
domoticz/www/templates/custom.example
domoticz/www/templates/readme.txt
domoticz/www/views/about.html
@@ -1973,6 +1137,7 @@ domoticz/www/views/dpfibaro.html
domoticz/www/views/dpgooglepubsub.html
domoticz/www/views/dphttp.html
domoticz/www/views/dpinflux.html
+domoticz/www/views/dpmqtt.html
domoticz/www/views/floorplanedit.html
domoticz/www/views/floorplans.html
domoticz/www/views/forecast.html
@@ -1985,11 +1150,11 @@ domoticz/www/views/log.html
domoticz/www/views/login.html
domoticz/www/views/logout.html
domoticz/www/views/mobile_notifications.html
+domoticz/www/views/myprofile.html
domoticz/www/views/notification.html
domoticz/www/views/notifications.html
domoticz/www/views/offline.html
domoticz/www/views/restoredatabase.html
-domoticz/www/views/rfxcomfirmware.html
domoticz/www/views/scenes.html
domoticz/www/views/setup.html
domoticz/www/views/temperature.html
diff --git a/www/dot-http/Makefile b/www/dot-http/Makefile
index a84d8623b19c..69cf85aaefb5 100644
--- a/www/dot-http/Makefile
+++ b/www/dot-http/Makefile
@@ -1,7 +1,7 @@
PORTNAME= dot-http
DISTVERSIONPREFIX= v
DISTVERSION= 0.2.0
-PORTREVISION= 12
+PORTREVISION= 13
CATEGORIES= www
MAINTAINER= yuri@FreeBSD.org
diff --git a/www/dpp/Makefile b/www/dpp/Makefile
index 6977b897516d..631f896b3843 100644
--- a/www/dpp/Makefile
+++ b/www/dpp/Makefile
@@ -1,5 +1,6 @@
PORTNAME= dpp
DISTVERSION= 10.0.29
+PORTREVISION= 1
CATEGORIES= www devel
MASTER_SITES= https://github.com/brainboxdotcc/DPP/releases/download/v${DISTVERSION}/
PKGNAMESUFFIX= -discord
diff --git a/www/drill/Makefile b/www/drill/Makefile
index 9e017f0517a4..59a82f196633 100644
--- a/www/drill/Makefile
+++ b/www/drill/Makefile
@@ -1,6 +1,6 @@
PORTNAME= drill
DISTVERSION= 0.8.3
-PORTREVISION= 7
+PORTREVISION= 8
CATEGORIES= www
MAINTAINER= yuri@FreeBSD.org
diff --git a/www/dufs/Makefile b/www/dufs/Makefile
index 778240b11b63..3a649458e843 100644
--- a/www/dufs/Makefile
+++ b/www/dufs/Makefile
@@ -1,7 +1,7 @@
PORTNAME= dufs
DISTVERSIONPREFIX= v
DISTVERSION= 0.40.0
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= www
MAINTAINER= ashish@FreeBSD.org
diff --git a/www/eden/Makefile b/www/eden/Makefile
index 190ce2397ff4..b9221fa6314c 100644
--- a/www/eden/Makefile
+++ b/www/eden/Makefile
@@ -1,7 +1,7 @@
PORTNAME= eden
PORTVERSION= 0.7.4
DISTVERSIONPREFIX= v
-PORTREVISION= 21
+PORTREVISION= 22
CATEGORIES= www
PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
diff --git a/www/element-web/Makefile b/www/element-web/Makefile
index 8a01e6124754..e358c175f98b 100644
--- a/www/element-web/Makefile
+++ b/www/element-web/Makefile
@@ -1,6 +1,6 @@
PORTNAME= element
DISTVERSIONPREFIX= v
-DISTVERSION= 1.11.65
+DISTVERSION= 1.11.66
CATEGORIES= www
MASTER_SITES= https://github.com/element-hq/element-web/releases/download/${DISTVERSIONFULL}/
PKGNAMESUFFIX= -web
@@ -18,7 +18,7 @@ CPE_VENDOR= matrix
NO_ARCH= yes
NO_BUILD= yes
SUB_FILES= pkg-message
-PLIST_SUB= COMMITID=ad882b5866028f8f562c
+PLIST_SUB= COMMITID=530cd900a69ee944f8ab
do-install:
@${MKDIR} ${STAGEDIR}${WWWDIR}
diff --git a/www/element-web/distinfo b/www/element-web/distinfo
index 3c540e4e22ce..9601bcb1c5cb 100644
--- a/www/element-web/distinfo
+++ b/www/element-web/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1713886057
-SHA256 (element-v1.11.65.tar.gz) = 069dd851afced0d82ecb815d408c618c42311a2b7671b8a6479d21edcb5e80e9
-SIZE (element-v1.11.65.tar.gz) = 23608337
+TIMESTAMP = 1715089358
+SHA256 (element-v1.11.66.tar.gz) = 4bab7bf011f650a94f2bc0a6e8f0f0cb7fe59975f3cced1cb270c47419169c37
+SIZE (element-v1.11.66.tar.gz) = 23614921
diff --git a/www/element-web/pkg-plist b/www/element-web/pkg-plist
index 440a0ca6ecee..4b91d07fb067 100644
--- a/www/element-web/pkg-plist
+++ b/www/element-web/pkg-plist
@@ -25,9 +25,6 @@
%%WWWDIR%%/bundles/%%COMMITID%%/344.js.map
%%WWWDIR%%/bundles/%%COMMITID%%/3746.js
%%WWWDIR%%/bundles/%%COMMITID%%/3746.js.map
-%%WWWDIR%%/bundles/%%COMMITID%%/3799.js
-%%WWWDIR%%/bundles/%%COMMITID%%/3799.js.LICENSE.txt
-%%WWWDIR%%/bundles/%%COMMITID%%/3799.js.map
%%WWWDIR%%/bundles/%%COMMITID%%/3998.js
%%WWWDIR%%/bundles/%%COMMITID%%/3998.js.map
%%WWWDIR%%/bundles/%%COMMITID%%/4311.js
@@ -37,6 +34,9 @@
%%WWWDIR%%/bundles/%%COMMITID%%/4670.js.map
%%WWWDIR%%/bundles/%%COMMITID%%/4813.js
%%WWWDIR%%/bundles/%%COMMITID%%/4813.js.map
+%%WWWDIR%%/bundles/%%COMMITID%%/4932.js
+%%WWWDIR%%/bundles/%%COMMITID%%/4932.js.LICENSE.txt
+%%WWWDIR%%/bundles/%%COMMITID%%/4932.js.map
%%WWWDIR%%/bundles/%%COMMITID%%/5484.js
%%WWWDIR%%/bundles/%%COMMITID%%/5484.js.map
%%WWWDIR%%/bundles/%%COMMITID%%/6202.js
@@ -220,38 +220,38 @@
%%WWWDIR%%/fonts/Nunito/Nunito-SemiBold.58f5995.ttf
%%WWWDIR%%/fonts/Twemoji_Mozilla/TwemojiMozilla-colr.78a2a9b.woff2
%%WWWDIR%%/fonts/Twemoji_Mozilla/TwemojiMozilla-sbix.e8e92b5.woff2
-%%WWWDIR%%/i18n/cs.fc65a23.json
-%%WWWDIR%%/i18n/de_DE.cd03041.json
+%%WWWDIR%%/i18n/cs.441fe2b.json
+%%WWWDIR%%/i18n/de_DE.e561b2a.json
%%WWWDIR%%/i18n/el.82e2eda.json
-%%WWWDIR%%/i18n/en_EN.553e6be.json
+%%WWWDIR%%/i18n/en_EN.423ca06.json
%%WWWDIR%%/i18n/eo.10e7271.json
-%%WWWDIR%%/i18n/es.e10abb9.json
-%%WWWDIR%%/i18n/et.7b58e17.json
+%%WWWDIR%%/i18n/es.8ca4a0f.json
+%%WWWDIR%%/i18n/et.0443516.json
%%WWWDIR%%/i18n/fa.3fdd52e.json
-%%WWWDIR%%/i18n/fi.d48058f.json
-%%WWWDIR%%/i18n/fr.2bcaabd.json
+%%WWWDIR%%/i18n/fi.aa7ed46.json
+%%WWWDIR%%/i18n/fr.790a405.json
%%WWWDIR%%/i18n/gl.02597d8.json
%%WWWDIR%%/i18n/he.7b8ff49.json
-%%WWWDIR%%/i18n/hu.da49ef6.json
-%%WWWDIR%%/i18n/id.8ec5e07.json
-%%WWWDIR%%/i18n/is.ab55545.json
-%%WWWDIR%%/i18n/it.6824477.json
-%%WWWDIR%%/i18n/ja.17a6d99.json
-%%WWWDIR%%/i18n/languages.fbce0b9.json
+%%WWWDIR%%/i18n/hu.0fa5e14.json
+%%WWWDIR%%/i18n/id.fce7498.json
+%%WWWDIR%%/i18n/is.2d275e0.json
+%%WWWDIR%%/i18n/it.bb32f97.json
+%%WWWDIR%%/i18n/ja.dfdafd0.json
+%%WWWDIR%%/i18n/languages.5025d82.json
%%WWWDIR%%/i18n/languages.json
%%WWWDIR%%/i18n/lo.05facf8.json
%%WWWDIR%%/i18n/lt.2abd76f.json
%%WWWDIR%%/i18n/nl.bd5e35a.json
-%%WWWDIR%%/i18n/pl.28390d9.json
+%%WWWDIR%%/i18n/pl.1dbfc90.json
%%WWWDIR%%/i18n/pt_BR.d2cabb6.json
-%%WWWDIR%%/i18n/ru.5129ec3.json
-%%WWWDIR%%/i18n/sk.f48d956.json
-%%WWWDIR%%/i18n/sq.0bc583b.json
-%%WWWDIR%%/i18n/sv.09f5300.json
-%%WWWDIR%%/i18n/uk.36a5794.json
-%%WWWDIR%%/i18n/vi.b035c5e.json
+%%WWWDIR%%/i18n/ru.645227c.json
+%%WWWDIR%%/i18n/sk.83af431.json
+%%WWWDIR%%/i18n/sq.408766d.json
+%%WWWDIR%%/i18n/sv.4528f59.json
+%%WWWDIR%%/i18n/uk.cc3f735.json
+%%WWWDIR%%/i18n/vi.3b8e518.json
%%WWWDIR%%/i18n/zh_Hans.c0483a7.json
-%%WWWDIR%%/i18n/zh_Hant.51d9018.json
+%%WWWDIR%%/i18n/zh_Hant.34700d7.json
%%WWWDIR%%/icons/chat-solid.550e415.svg
%%WWWDIR%%/icons/chevron-left.a9d372d.svg
%%WWWDIR%%/icons/close.dce71fd.svg
diff --git a/www/fabio/Makefile b/www/fabio/Makefile
index 8ae0cc07c4ea..3693ced3dad7 100644
--- a/www/fabio/Makefile
+++ b/www/fabio/Makefile
@@ -1,7 +1,7 @@
PORTNAME= fabio
PORTVERSION= 1.6.0
DISTVERSIONPREFIX= v
-PORTREVISION= 18
+PORTREVISION= 19
CATEGORIES= www
MAINTAINER= stl@ossuary.net
diff --git a/www/ffproxy/Makefile b/www/ffproxy/Makefile
index ffebd5b0927d..5adf60d4210c 100644
--- a/www/ffproxy/Makefile
+++ b/www/ffproxy/Makefile
@@ -3,9 +3,7 @@ PORTVERSION= 1.6
PORTREVISION= 1
CATEGORIES= www
MASTER_SITES= http://${PORTNAME}.sourceforge.net/${PORTNAME}/ \
- http://www.sourcefiles.org/System/Daemons/Proxy/ \
- http://www.nevm.de/${PORTNAME}/ \
- http://faith.eu.org/${PORTNAME}/
+ http://www.nevm.de/${PORTNAME}/
MAINTAINER= ports@FreeBSD.org
COMMENT= Filtering HTTP proxy server
@@ -14,6 +12,9 @@ WWW= https://ffproxy.sourceforge.net
LICENSE= GPLv2+
LICENSE_FILE= ${WRKSRC}/COPYING
+DEPRECATED= Abandoned upstream, last update in 2006. Consider using www/squid
+EXPIRATION_DATE=2024-06-30
+
GNU_CONFIGURE= yes
GNU_CONFIGURE_MANPREFIX=${PREFIX}/share
diff --git a/www/ffsend/Makefile b/www/ffsend/Makefile
index 74132e273a8d..43f15c70f2d2 100644
--- a/www/ffsend/Makefile
+++ b/www/ffsend/Makefile
@@ -1,7 +1,7 @@
PORTNAME= ffsend
DISTVERSIONPREFIX= v
DISTVERSION= 0.2.74
-PORTREVISION= 24
+PORTREVISION= 25
CATEGORIES= www
MAINTAINER= ports@FreeBSD.org
diff --git a/www/filtron/Makefile b/www/filtron/Makefile
index 074827b3b982..8316ef019f9c 100644
--- a/www/filtron/Makefile
+++ b/www/filtron/Makefile
@@ -1,6 +1,6 @@
PORTNAME= filtron
PORTVERSION= g20180218
-PORTREVISION= 19
+PORTREVISION= 20
CATEGORIES= www
MAINTAINER= yuri@FreeBSD.org
diff --git a/www/firefox-esr/Makefile b/www/firefox-esr/Makefile
index d846380ae544..64a23843adfb 100644
--- a/www/firefox-esr/Makefile
+++ b/www/firefox-esr/Makefile
@@ -1,5 +1,6 @@
PORTNAME= firefox
-DISTVERSION= 115.10.0
+DISTVERSION= 115.11.0
+PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= www wayland
MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}esr/source \
diff --git a/www/firefox-esr/distinfo b/www/firefox-esr/distinfo
index 4bf4e78079dc..08fddf921341 100644
--- a/www/firefox-esr/distinfo
+++ b/www/firefox-esr/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1712602749
-SHA256 (firefox-115.10.0esr.source.tar.xz) = 0afd3c733d95f7047f258d1a9768d06d856217fe736d85bfb370db9dd926eef2
-SIZE (firefox-115.10.0esr.source.tar.xz) = 507826764
+TIMESTAMP = 1715020977
+SHA256 (firefox-115.11.0esr.source.tar.xz) = 16be46f16a356a2b8bd3541805a24c8a2acf6f077cf8a65859689685c26025e0
+SIZE (firefox-115.11.0esr.source.tar.xz) = 506015444
diff --git a/www/firefox-esr/files/patch-llvm18 b/www/firefox-esr/files/patch-llvm18
new file mode 100644
index 000000000000..f88e1eb079a8
--- /dev/null
+++ b/www/firefox-esr/files/patch-llvm18
@@ -0,0 +1,199 @@
+From cd10f3ba0d83f34ca978cc4c7a552b72fdd068aa Mon Sep 17 00:00:00 2001
+From: David Tolnay <dtolnay@gmail.com>
+Date: Tue, 28 Nov 2023 11:18:39 -0800
+Subject: [PATCH 1/2] Flatten cursor.kind() matching in Item::parse down to one
+ match
+
+---
+ bindgen/ir/item.rs | 84 ++++++++++++++++++++++------------------------
+ 1 file changed, 41 insertions(+), 43 deletions(-)
+
+diff --git bindgen/ir/item.rs bindgen/ir/item.rs
+index 0556452bfa..4f2d361e51 100644
+--- third_party/rust/bindgen/ir/item.rs
++++ third_party/rust/bindgen/ir/item.rs
+@@ -1427,53 +1427,52 @@
+ }
+ }
+
+- // Guess how does clang treat extern "C" blocks?
+- if cursor.kind() == CXCursor_UnexposedDecl {
+- Err(ParseError::Recurse)
+- } else {
++ match cursor.kind() {
++ // Guess how does clang treat extern "C" blocks?
++ CXCursor_UnexposedDecl => Err(ParseError::Recurse),
++
+ // We allowlist cursors here known to be unhandled, to prevent being
+ // too noisy about this.
+- match cursor.kind() {
+- CXCursor_MacroDefinition |
+- CXCursor_MacroExpansion |
+- CXCursor_UsingDeclaration |
+- CXCursor_UsingDirective |
+- CXCursor_StaticAssert |
+- CXCursor_FunctionTemplate => {
+- debug!(
+- "Unhandled cursor kind {:?}: {:?}",
+- cursor.kind(),
+- cursor
+- );
+- }
+- CXCursor_InclusionDirective => {
+- let file = cursor.get_included_file_name();
+- match file {
+- None => {
+- warn!(
+- "Inclusion of a nameless file in {:?}",
+- cursor
+- );
+- }
+- Some(filename) => {
+- ctx.include_file(filename);
+- }
+- }
+- }
+- _ => {
+- // ignore toplevel operator overloads
+- let spelling = cursor.spelling();
+- if !spelling.starts_with("operator") {
++ CXCursor_MacroDefinition |
++ CXCursor_MacroExpansion |
++ CXCursor_UsingDeclaration |
++ CXCursor_UsingDirective |
++ CXCursor_StaticAssert |
++ CXCursor_FunctionTemplate => {
++ debug!(
++ "Unhandled cursor kind {:?}: {:?}",
++ cursor.kind(),
++ cursor
++ );
++ Err(ParseError::Continue)
++ }
++ CXCursor_InclusionDirective => {
++ let file = cursor.get_included_file_name();
++ match file {
++ None => {
+ warn!(
+- "Unhandled cursor kind {:?}: {:?}",
+- cursor.kind(),
++ "Inclusion of a nameless file in {:?}",
+ cursor
+ );
+ }
++ Some(filename) => {
++ ctx.include_file(filename);
++ }
+ }
++ Err(ParseError::Continue)
++ }
++ _ => {
++ // ignore toplevel operator overloads
++ let spelling = cursor.spelling();
++ if !spelling.starts_with("operator") {
++ warn!(
++ "Unhandled cursor kind {:?}: {:?}",
++ cursor.kind(),
++ cursor
++ );
++ }
++ Err(ParseError::Continue)
+ }
+-
+- Err(ParseError::Continue)
+ }
+ }
+
+
+From 2997017b5a3065b83e9d76f0080d6cb99c94c0c1 Mon Sep 17 00:00:00 2001
+From: David Tolnay <dtolnay@gmail.com>
+Date: Tue, 28 Nov 2023 11:21:18 -0800
+Subject: [PATCH 2/2] Handle CXCursor_LinkageSpec in Clang 18+
+
+---
+ bindgen/ir/item.rs | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git bindgen/ir/item.rs bindgen/ir/item.rs
+index 4f2d361e51..dd587b088b 100644
+--- third_party/rust/bindgen/ir/item.rs
++++ third_party/rust/bindgen/ir/item.rs
+@@ -1433,8 +1433,11 @@ impl Item {
+ }
+
+ match cursor.kind() {
+- // Guess how does clang treat extern "C" blocks?
+- CXCursor_UnexposedDecl => Err(ParseError::Recurse),
++ // On Clang 18+, extern "C" is reported accurately as a LinkageSpec.
++ // Older LLVM treat it as UnexposedDecl.
++ CXCursor_LinkageSpec | CXCursor_UnexposedDecl => {
++ Err(ParseError::Recurse)
++ }
+
+ // We allowlist cursors here known to be unhandled, to prevent being
+ // too noisy about this.
+diff --git dom/media/gmp-plugin-openh264/gmp-fake-openh264.cpp dom/media/gmp-plugin-openh264/gmp-fake-openh264.cpp
+--- dom/media/gmp-plugin-openh264/gmp-fake-openh264.cpp
++++ dom/media/gmp-plugin-openh264/gmp-fake-openh264.cpp
+@@ -97,11 +97,11 @@
+ uint32_t width_;
+ uint32_t height_;
+ uint8_t y_;
+ uint8_t u_;
+ uint8_t v_;
+- uint32_t timestamp_;
++ uint64_t timestamp_;
+ } idr_nalu;
+ };
+ #pragma pack(pop)
+
+ #define ENCODED_FRAME_MAGIC 0x004000b8
+diff --git dom/media/gtest/TestGMPRemoveAndDelete.cpp dom/media/gtest/TestGMPRemoveAndDelete.cpp
+--- dom/media/gtest/TestGMPRemoveAndDelete.cpp
++++ dom/media/gtest/TestGMPRemoveAndDelete.cpp
+@@ -359,11 +359,11 @@
+ uint32_t width_;
+ uint32_t height_;
+ uint8_t y_;
+ uint8_t u_;
+ uint8_t v_;
+- uint32_t timestamp_;
++ uint64_t timestamp_;
+ } idr_nalu;
+ };
+ #pragma pack(pop)
+
+ GMPVideoFrame* absFrame;
+diff --git dom/media/webrtc/libwebrtcglue/WebrtcGmpVideoCodec.h dom/media/webrtc/libwebrtcglue/WebrtcGmpVideoCodec.h
+--- dom/media/webrtc/libwebrtcglue/WebrtcGmpVideoCodec.h
++++ dom/media/webrtc/libwebrtcglue/WebrtcGmpVideoCodec.h
+@@ -300,11 +300,11 @@
+
+ struct InputImageData {
+ int64_t timestamp_us;
+ };
+ // Map rtp time -> input image data
+- DataMutex<std::map<uint32_t, InputImageData>> mInputImageMap;
++ DataMutex<std::map<uint64_t, InputImageData>> mInputImageMap;
+
+ MediaEventProducer<uint64_t> mInitPluginEvent;
+ MediaEventProducer<uint64_t> mReleasePluginEvent;
+ };
+
+diff --git dom/media/webrtc/libwebrtcglue/WebrtcGmpVideoCodec.cpp dom/media/webrtc/libwebrtcglue/WebrtcGmpVideoCodec.cpp
+--- dom/media/webrtc/libwebrtcglue/WebrtcGmpVideoCodec.cpp
++++ dom/media/webrtc/libwebrtcglue/WebrtcGmpVideoCodec.cpp
+@@ -538,11 +538,11 @@
+ return;
+ }
+
+ webrtc::VideoFrameType ft;
+ GmpFrameTypeToWebrtcFrameType(aEncodedFrame->FrameType(), &ft);
+- uint32_t timestamp = (aEncodedFrame->TimeStamp() * 90ll + 999) / 1000;
++ uint64_t timestamp = (aEncodedFrame->TimeStamp() * 90ll + 999) / 1000;
+
+ GMP_LOG_DEBUG("GMP Encoded: %" PRIu64 ", type %d, len %d",
+ aEncodedFrame->TimeStamp(), aEncodedFrame->BufferType(),
+ aEncodedFrame->Size());
+
+
diff --git a/www/firefox-esr/files/patch-rust-1.78.0 b/www/firefox-esr/files/patch-rust-1.78.0
new file mode 100644
index 000000000000..7e6685d5e8e7
--- /dev/null
+++ b/www/firefox-esr/files/patch-rust-1.78.0
@@ -0,0 +1,3582 @@
+Adapted from https://hg.mozilla.org/mozilla-central/rev/1db2ef126a6a
+--
+
+# HG changeset patch
+# User Henri Sivonen <hsivonen@hsivonen.fi>
+# Date 1714462184 0
+# Node ID 1db2ef126a6a8555dbf50345e16492c977b42e92
+# Parent a545e84b3674c4878f2e618b7bce23058f2ac690
+Bug 1882209 - Update encoding_rs to 0.8.34 to deal with rustc changes. r=glandium,supply-chain-reviewers
+
+Differential Revision: https://phabricator.services.mozilla.com/D207167
+
+diff --git a/.cargo/config.in b/.cargo/config.in
+--- .cargo/config.in
++++ .cargo/config.in
+@@ -35,31 +35,31 @@ git = "https://github.com/gfx-rs/wgpu"
+ rev = "f71a1bc736fde37509262ca03e91d8f56a13aeb5"
+ replace-with = "vendored-sources"
+
+ [source."git+https://github.com/glandium/warp?rev=4af45fae95bc98b0eba1ef0db17e1dac471bb23d"]
+ git = "https://github.com/glandium/warp"
+ rev = "4af45fae95bc98b0eba1ef0db17e1dac471bb23d"
+ replace-with = "vendored-sources"
+
++[source."git+https://github.com/hsivonen/any_all_workaround?rev=7fb1b7034c9f172aade21ee1c8554e8d8a48af80"]
++git = "https://github.com/hsivonen/any_all_workaround"
++rev = "7fb1b7034c9f172aade21ee1c8554e8d8a48af80"
++replace-with = "vendored-sources"
++
+ [source."git+https://github.com/hsivonen/chardetng?rev=3484d3e3ebdc8931493aa5df4d7ee9360a90e76b"]
+ git = "https://github.com/hsivonen/chardetng"
+ rev = "3484d3e3ebdc8931493aa5df4d7ee9360a90e76b"
+ replace-with = "vendored-sources"
+
+ [source."git+https://github.com/hsivonen/chardetng_c?rev=ed8a4c6f900a90d4dbc1d64b856e61490a1c3570"]
+ git = "https://github.com/hsivonen/chardetng_c"
+ rev = "ed8a4c6f900a90d4dbc1d64b856e61490a1c3570"
+ replace-with = "vendored-sources"
+
+-[source."git+https://github.com/hsivonen/packed_simd?rev=e588ceb568878e1a3156ea9ce551d5b63ef0cdc4"]
+-git = "https://github.com/hsivonen/packed_simd"
+-rev = "e588ceb568878e1a3156ea9ce551d5b63ef0cdc4"
+-replace-with = "vendored-sources"
+-
+ [source."git+https://github.com/jfkthame/mapped_hyph.git?rev=c7651a0cffff41996ad13c44f689bd9cd2192c01"]
+ git = "https://github.com/jfkthame/mapped_hyph.git"
+ rev = "c7651a0cffff41996ad13c44f689bd9cd2192c01"
+ replace-with = "vendored-sources"
+
+ [source."git+https://github.com/mozilla-spidermonkey/jsparagus?rev=64ba08e24749616de2344112f226d1ef4ba893ae"]
+ git = "https://github.com/mozilla-spidermonkey/jsparagus"
+ rev = "64ba08e24749616de2344112f226d1ef4ba893ae"
+diff --git a/Cargo.lock b/Cargo.lock
+--- Cargo.lock
++++ Cargo.lock
+@@ -80,16 +80,25 @@ dependencies = [
+ name = "android_system_properties"
+ version = "0.1.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+ dependencies = [
+ "libc",
+ ]
+
++[[package]]
++name = "any_all_workaround"
++version = "0.1.0"
++source = "git+https://github.com/hsivonen/any_all_workaround?rev=7fb1b7034c9f172aade21ee1c8554e8d8a48af80#7fb1b7034c9f172aade21ee1c8554e8d8a48af80"
++dependencies = [
++ "cfg-if 1.0.0",
++ "version_check",
++]
++
+ [[package]]
+ name = "anyhow"
+ version = "1.0.69"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800"
+
+ [[package]]
+ name = "app_services_logger"
+@@ -1431,22 +1440,22 @@ dependencies = [
+ "encoding_rs",
+ "nserror",
+ "nsstring",
+ "xmldecl",
+ ]
+
+ [[package]]
+ name = "encoding_rs"
+-version = "0.8.33"
++version = "0.8.34"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
++checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"
+ dependencies = [
++ "any_all_workaround",
+ "cfg-if 1.0.0",
+- "packed_simd",
+ ]
+
+ [[package]]
+ name = "enum-primitive-derive"
+ version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "c375b9c5eadb68d0a6efee2999fef292f45854c3444c86f09d8ab086ba942b0e"
+ dependencies = [
+@@ -3901,25 +3910,16 @@ checksum = "8d91edf4fbb970279443471345a4e8c491bf05bb283b3e6c88e4e606fd8c181b"
+ [[package]]
+ name = "oxilangtag-ffi"
+ version = "0.1.0"
+ dependencies = [
+ "nsstring",
+ "oxilangtag",
+ ]
+
+-[[package]]
+-name = "packed_simd"
+-version = "0.3.9"
+-source = "git+https://github.com/hsivonen/packed_simd?rev=e588ceb568878e1a3156ea9ce551d5b63ef0cdc4#e588ceb568878e1a3156ea9ce551d5b63ef0cdc4"
+-dependencies = [
+- "cfg-if 1.0.0",
+- "num-traits",
+-]
+-
+ [[package]]
+ name = "parking_lot"
+ version = "0.11.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
+ dependencies = [
+ "instant",
+ "lock_api",
+diff --git a/Cargo.toml b/Cargo.toml
+--- Cargo.toml
++++ Cargo.toml
+@@ -154,22 +154,22 @@ rure = { path = "third_party/rust/rure" }
+
+ # 0.31.1 but without rust-cssparser#342.
+ # TODO: Remove these, and just use v0.31.1 once bug 1836219 lands
+ # (which will get syn 2 into the tree).
+ cssparser = { path = "third_party/rust/cssparser" }
+ cssparser-macros = { path = "third_party/rust/cssparser-macros" }
+
+ # Other overrides
++any_all_workaround = { git = "https://github.com/hsivonen/any_all_workaround", rev = "7fb1b7034c9f172aade21ee1c8554e8d8a48af80" }
+ chardetng = { git = "https://github.com/hsivonen/chardetng", rev="3484d3e3ebdc8931493aa5df4d7ee9360a90e76b" }
+ chardetng_c = { git = "https://github.com/hsivonen/chardetng_c", rev="ed8a4c6f900a90d4dbc1d64b856e61490a1c3570" }
+ coremidi = { git = "https://github.com/chris-zen/coremidi.git", rev="fc68464b5445caf111e41f643a2e69ccce0b4f83" }
+ firefox-on-glean = { path = "toolkit/components/glean/api" }
+ libudev-sys = { path = "dom/webauthn/libudev-sys" }
+-packed_simd = { git = "https://github.com/hsivonen/packed_simd", rev = "e588ceb568878e1a3156ea9ce551d5b63ef0cdc4" }
+ midir = { git = "https://github.com/mozilla/midir.git", rev = "519e651241e867af3391db08f9ae6400bc023e18" }
+ # warp 0.3.3 + https://github.com/seanmonstar/warp/pull/1007
+ warp = { git = "https://github.com/glandium/warp", rev = "4af45fae95bc98b0eba1ef0db17e1dac471bb23d" }
+
+ # application-services overrides to make updating them all simpler.
+ interrupt-support = { git = "https://github.com/mozilla/application-services", rev = "86c84c217036c12283d19368867323a66bf35883" }
+ sql-support = { git = "https://github.com/mozilla/application-services", rev = "86c84c217036c12283d19368867323a66bf35883" }
+ sync15 = { git = "https://github.com/mozilla/application-services", rev = "86c84c217036c12283d19368867323a66bf35883" }
+diff --git a/config/makefiles/rust.mk b/config/makefiles/rust.mk
+--- config/makefiles/rust.mk
++++ config/makefiles/rust.mk
+@@ -260,17 +260,17 @@ export COREAUDIO_SDK_PATH=$(IPHONEOS_SDK
+ export IPHONEOS_SDK_DIR
+ PATH := $(topsrcdir)/build/macosx:$(PATH)
+ endif
+ endif
+
+ ifndef RUSTC_BOOTSTRAP
+ RUSTC_BOOTSTRAP := mozglue_static,qcms
+ ifdef MOZ_RUST_SIMD
+-RUSTC_BOOTSTRAP := $(RUSTC_BOOTSTRAP),encoding_rs,packed_simd
++RUSTC_BOOTSTRAP := $(RUSTC_BOOTSTRAP),encoding_rs,any_all_workaround
+ endif
+ export RUSTC_BOOTSTRAP
+ endif
+
+ target_rust_ltoable := force-cargo-library-build $(ADD_RUST_LTOABLE)
+ target_rust_nonltoable := force-cargo-test-run force-cargo-program-build
+
+ ifdef MOZ_PGO_RUST
+diff --git a/supply-chain/audits.toml b/supply-chain/audits.toml
+--- supply-chain/audits.toml
++++ supply-chain/audits.toml
+@@ -596,16 +596,29 @@ who = "Mike Hommey <mh+mozilla@glandium.
+ criteria = "safe-to-deploy"
+ delta = "0.1.2 -> 0.1.4"
+
+ [[audits.android_system_properties]]
+ who = "Mike Hommey <mh+mozilla@glandium.org>"
+ criteria = "safe-to-deploy"
+ delta = "0.1.4 -> 0.1.5"
+
++[[audits.any_all_workaround]]
++who = "Henri Sivonen <hsivonen@hsivonen.fi>"
++criteria = "safe-to-deploy"
++version = "0.1.0"
++notes = "The little code that is in this crate I reviewed and modified from packed_simd (which has previously been vendored in full instead of just this small part)."
++
++[[audits.any_all_workaround]]
++who = "Henri Sivonen <hsivonen@hsivonen.fi>"
++criteria = "safe-to-deploy"
++delta = "0.1.0 -> 0.1.0@git:7fb1b7034c9f172aade21ee1c8554e8d8a48af80"
++importable = false
++notes = "This is a trivial workaround copied from elsewhere in m-c, specifically qcms."
++
+ [[audits.anyhow]]
+ who = "Mike Hommey <mh+mozilla@glandium.org>"
+ criteria = "safe-to-deploy"
+ delta = "1.0.57 -> 1.0.61"
+
+ [[audits.anyhow]]
+ who = "Bobby Holley <bobbyholley@gmail.com>"
+ criteria = "safe-to-deploy"
+diff --git a/supply-chain/config.toml b/supply-chain/config.toml
+--- supply-chain/config.toml
++++ supply-chain/config.toml
+@@ -14,16 +14,20 @@ url = "https://raw.githubusercontent.com
+ url = "https://raw.githubusercontent.com/google/supply-chain/main/audits.toml"
+
+ [imports.isrg]
+ url = "https://raw.githubusercontent.com/divviup/libprio-rs/main/supply-chain/audits.toml"
+
+ [imports.mozilla]
+ url = "https://raw.githubusercontent.com/mozilla/supply-chain/main/audits.toml"
+
++[policy.any_all_workaround]
++audit-as-crates-io = true
++notes = "This is the upstream code plus the ARM intrinsics workaround from qcms, see bug 1882209."
++
+ [policy.autocfg]
+ audit-as-crates-io = true
+ notes = "This is the upstream code plus a few local fixes, see bug 1685697."
+
+ [policy.chardetng]
+ audit-as-crates-io = true
+ notes = "This is a crate Henri wrote which is also published. We should probably update Firefox to tip and certify that."
+
+diff --git a/supply-chain/imports.lock b/supply-chain/imports.lock
+--- supply-chain/imports.lock
++++ supply-chain/imports.lock
+@@ -115,16 +115,23 @@ user-name = "David Tolnay"
+
+ [[publisher.encoding_rs]]
+ version = "0.8.33"
+ when = "2023-08-23"
+ user-id = 4484
+ user-login = "hsivonen"
+ user-name = "Henri Sivonen"
+
++[[publisher.encoding_rs]]
++version = "0.8.34"
++when = "2024-04-10"
++user-id = 4484
++user-login = "hsivonen"
++user-name = "Henri Sivonen"
++
+ [[publisher.etagere]]
+ version = "0.2.7"
+ when = "2022-05-04"
+ user-id = 1281
+ user-login = "nical"
+ user-name = "Nicolas Silva"
+
+ [[publisher.euclid]]
+diff --git a/third_party/rust/any_all_workaround/.cargo-checksum.json b/third_party/rust/any_all_workaround/.cargo-checksum.json
+new file mode 100644
+--- /dev/null
++++ third_party/rust/any_all_workaround/.cargo-checksum.json
+@@ -0,0 +1,1 @@
++{"files":{"Cargo.toml":"f8c127449dc9432d404c21c99833e4617ab88a797445af249a7fe3c989985d6d","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb","LICENSE-MIT-QCMS":"36d847ae882f6574ebc72f56a4f354e4f104fde4a584373496482e97d52d31bc","README.md":"4c617b8ced3a27b7edecf0e5e41ed451c04e88dab529e7a35fccc4e1551efbd7","build.rs":"56b29ab6da3e49075bfd0a7b690267c8016298bf0d332e2e68bbaf19decbbf71","src/lib.rs":"7118106690b9d25c5d0a3e2079feb83d76f1d434d0da36b9d0351806d27c850d"},"package":null}
+\ No newline at end of file
+diff --git a/third_party/rust/any_all_workaround/Cargo.toml b/third_party/rust/any_all_workaround/Cargo.toml
+new file mode 100644
+--- /dev/null
++++ third_party/rust/any_all_workaround/Cargo.toml
+@@ -0,0 +1,28 @@
++# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
++#
++# When uploading crates to the registry Cargo will automatically
++# "normalize" Cargo.toml files for maximal compatibility
++# with all versions of Cargo and also rewrite `path` dependencies
++# to registry (e.g., crates.io) dependencies.
++#
++# If you are reading this file be aware that the original Cargo.toml
++# will likely look very different (and much more reasonable).
++# See Cargo.toml.orig for the original contents.
++
++[package]
++edition = "2021"
++name = "any_all_workaround"
++version = "0.1.0"
++authors = ["Henri Sivonen <hsivonen@hsivonen.fi>"]
++description = "Workaround for bad LLVM codegen for boolean reductions on 32-bit ARM"
++homepage = "https://docs.rs/any_all_workaround/"
++documentation = "https://docs.rs/any_all_workaround/"
++readme = "README.md"
++license = "MIT OR Apache-2.0"
++repository = "https://github.com/hsivonen/any_all_workaround"
++
++[dependencies]
++cfg-if = "1.0"
++
++[build-dependencies]
++version_check = "0.9"
+diff --git a/third_party/rust/packed_simd/LICENSE-APACHE b/third_party/rust/any_all_workaround/LICENSE-APACHE
+rename from third_party/rust/packed_simd/LICENSE-APACHE
+rename to third_party/rust/any_all_workaround/LICENSE-APACHE
+diff --git a/third_party/rust/packed_simd/LICENSE-MIT b/third_party/rust/any_all_workaround/LICENSE-MIT
+rename from third_party/rust/packed_simd/LICENSE-MIT
+rename to third_party/rust/any_all_workaround/LICENSE-MIT
+diff --git a/third_party/rust/any_all_workaround/LICENSE-MIT-QCMS b/third_party/rust/any_all_workaround/LICENSE-MIT-QCMS
+new file mode 100644
+--- /dev/null
++++ third_party/rust/any_all_workaround/LICENSE-MIT-QCMS
+@@ -0,0 +1,21 @@
++qcms
++Copyright (C) 2009-2024 Mozilla Corporation
++Copyright (C) 1998-2007 Marti Maria
++
++Permission is hereby granted, free of charge, to any person obtaining
++a copy of this software and associated documentation files (the "Software"),
++to deal in the Software without restriction, including without limitation
++the rights to use, copy, modify, merge, publish, distribute, sublicense,
++and/or sell copies of the Software, and to permit persons to whom the Software
++is furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included in
++all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
++THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+diff --git a/third_party/rust/any_all_workaround/README.md b/third_party/rust/any_all_workaround/README.md
+new file mode 100644
+--- /dev/null
++++ third_party/rust/any_all_workaround/README.md
+@@ -0,0 +1,13 @@
++# any_all_workaround
++
++This is a workaround for bad codegen ([Rust bug](https://github.com/rust-lang/portable-simd/issues/146), [LLVM bug](https://github.com/llvm/llvm-project/issues/50466)) for the `any()` and `all()` reductions for NEON-backed SIMD vectors on 32-bit ARM. On other platforms these delegate to `any()` and `all()` in `core::simd`.
++
++The plan is to abandon this crate once the LLVM bug is fixed or `core::simd` works around the LLVM bug.
++
++The code is forked from the [`packed_simd` crate](https://raw.githubusercontent.com/hsivonen/packed_simd/d938e39bee9bc5c222f5f2f2a0df9e53b5ce36ae/src/codegen/reductions/mask/arm.rs).
++
++This crate requires Nightly Rust as it depends on the `portable_simd` feature.
++
++# License
++
++`MIT OR Apache-2.0`, since that's how `packed_simd` is licensed. (The ARM intrinsics Rust version workaround is from qcms, see LICENSE-MIT-QCMS.)
+diff --git a/third_party/rust/any_all_workaround/build.rs b/third_party/rust/any_all_workaround/build.rs
+new file mode 100644
+--- /dev/null
++++ third_party/rust/any_all_workaround/build.rs
+@@ -0,0 +1,7 @@
++extern crate version_check as rustc;
++
++fn main() {
++ if rustc::is_min_version("1.78.0").unwrap_or(false) {
++ println!("cargo:rustc-cfg=stdsimd_split");
++ }
++}
+diff --git a/third_party/rust/any_all_workaround/src/lib.rs b/third_party/rust/any_all_workaround/src/lib.rs
+new file mode 100644
+--- /dev/null
++++ third_party/rust/any_all_workaround/src/lib.rs
+@@ -0,0 +1,110 @@
++// This code began as a fork of
++// https://raw.githubusercontent.com/rust-lang/packed_simd/d938e39bee9bc5c222f5f2f2a0df9e53b5ce36ae/src/codegen/reductions/mask/arm.rs
++// which didn't have a license header on the file, but Cargo.toml said "MIT OR Apache-2.0".
++// See LICENSE-MIT and LICENSE-APACHE.
++
++#![no_std]
++#![feature(portable_simd)]
++#![cfg_attr(
++ all(
++ stdsimd_split,
++ target_arch = "arm",
++ target_endian = "little",
++ target_feature = "neon",
++ target_feature = "v7"
++ ),
++ feature(stdarch_arm_neon_intrinsics)
++)]
++#![cfg_attr(
++ all(
++ not(stdsimd_split),
++ target_arch = "arm",
++ target_endian = "little",
++ target_feature = "neon",
++ target_feature = "v7"
++ ),
++ feature(stdsimd)
++)]
++
++use cfg_if::cfg_if;
++use core::simd::mask16x8;
++use core::simd::mask32x4;
++use core::simd::mask8x16;
++
++cfg_if! {
++ if #[cfg(all(target_arch = "arm", target_endian = "little", target_feature = "neon", target_feature = "v7"))] {
++ use core::simd::mask8x8;
++ use core::simd::mask16x4;
++ use core::simd::mask32x2;
++ macro_rules! arm_128_v7_neon_impl {
++ ($all:ident, $any:ident, $id:ident, $half:ident, $vpmin:ident, $vpmax:ident) => {
++ #[inline]
++ pub fn $all(s: $id) -> bool {
++ use core::arch::arm::$vpmin;
++ use core::mem::transmute;
++ unsafe {
++ union U {
++ halves: ($half, $half),
++ vec: $id,
++ }
++ let halves = U { vec: s }.halves;
++ let h: $half = transmute($vpmin(transmute(halves.0), transmute(halves.1)));
++ h.all()
++ }
++ }
++ #[inline]
++ pub fn $any(s: $id) -> bool {
++ use core::arch::arm::$vpmax;
++ use core::mem::transmute;
++ unsafe {
++ union U {
++ halves: ($half, $half),
++ vec: $id,
++ }
++ let halves = U { vec: s }.halves;
++ let h: $half = transmute($vpmax(transmute(halves.0), transmute(halves.1)));
++ h.any()
++ }
++ }
++ }
++ }
++ } else {
++ macro_rules! arm_128_v7_neon_impl {
++ ($all:ident, $any:ident, $id:ident, $half:ident, $vpmin:ident, $vpmax:ident) => {
++ #[inline(always)]
++ pub fn $all(s: $id) -> bool {
++ s.all()
++ }
++ #[inline(always)]
++ pub fn $any(s: $id) -> bool {
++ s.any()
++ }
++ }
++ }
++ }
++}
++
++arm_128_v7_neon_impl!(
++ all_mask8x16,
++ any_mask8x16,
++ mask8x16,
++ mask8x8,
++ vpmin_u8,
++ vpmax_u8
++);
++arm_128_v7_neon_impl!(
++ all_mask16x8,
++ any_mask16x8,
++ mask16x8,
++ mask16x4,
++ vpmin_u16,
++ vpmax_u16
++);
++arm_128_v7_neon_impl!(
++ all_mask32x4,
++ any_mask32x4,
++ mask32x4,
++ mask32x2,
++ vpmin_u32,
++ vpmax_u32
++);
+diff --git a/third_party/rust/encoding_rs/Cargo.toml b/third_party/rust/encoding_rs/Cargo.toml
+--- third_party/rust/encoding_rs/Cargo.toml
++++ third_party/rust/encoding_rs/Cargo.toml
+@@ -6,18 +6,19 @@
+ # to registry (e.g., crates.io) dependencies.
+ #
+ # If you are reading this file be aware that the original Cargo.toml
+ # will likely look very different (and much more reasonable).
+ # See Cargo.toml.orig for the original contents.
+
+ [package]
+ edition = "2018"
++rust-version = "1.36"
+ name = "encoding_rs"
+-version = "0.8.33"
++version = "0.8.34"
+ authors = ["Henri Sivonen <hsivonen@hsivonen.fi>"]
+ description = "A Gecko-oriented implementation of the Encoding Standard"
+ homepage = "https://docs.rs/encoding_rs/"
+ documentation = "https://docs.rs/encoding_rs/"
+ readme = "README.md"
+ keywords = [
+ "encoding",
+ "web",
+@@ -31,23 +32,23 @@ categories = [
+ "internationalization",
+ ]
+ license = "(Apache-2.0 OR MIT) AND BSD-3-Clause"
+ repository = "https://github.com/hsivonen/encoding_rs"
+
+ [profile.release]
+ lto = true
+
++[dependencies.any_all_workaround]
++version = "0.1.0"
++optional = true
++
+ [dependencies.cfg-if]
+ version = "1.0"
+
+-[dependencies.packed_simd]
+-version = "0.3.9"
+-optional = true
+-
+ [dependencies.serde]
+ version = "1.0"
+ optional = true
+
+ [dev-dependencies.bincode]
+ version = "1.0"
+
+ [dev-dependencies.serde_derive]
+@@ -69,15 +70,9 @@ fast-legacy-encode = [
+ "fast-hanja-encode",
+ "fast-kanji-encode",
+ "fast-gb-hanzi-encode",
+ "fast-big5-hanzi-encode",
+ ]
+ less-slow-big5-hanzi-encode = []
+ less-slow-gb-hanzi-encode = []
+ less-slow-kanji-encode = []
+-simd-accel = [
+- "packed_simd",
+- "packed_simd/into_bits",
+-]
+-
+-[badges.travis-ci]
+-repository = "hsivonen/encoding_rs"
++simd-accel = ["any_all_workaround"]
+diff --git a/third_party/rust/encoding_rs/README.md b/third_party/rust/encoding_rs/README.md
+--- third_party/rust/encoding_rs/README.md
++++ third_party/rust/encoding_rs/README.md
+@@ -162,50 +162,36 @@ wrappers.
+ * [C++](https://github.com/hsivonen/recode_cpp)
+
+ ## Optional features
+
+ There are currently these optional cargo features:
+
+ ### `simd-accel`
+
+-Enables SIMD acceleration using the nightly-dependent `packed_simd` crate.
++Enables SIMD acceleration using the nightly-dependent `portable_simd` standard
++library feature.
+
+ This is an opt-in feature, because enabling this feature _opts out_ of Rust's
+ guarantees of future compilers compiling old code (aka. "stability story").
+
+ Currently, this has not been tested to be an improvement except for these
+-targets:
++targets and enabling the `simd-accel` feature is expected to break the build
++on other targets:
+
+ * x86_64
+ * i686
+ * aarch64
+ * thumbv7neon
+
+ If you use nightly Rust, you use targets whose first component is one of the
+ above, and you are prepared _to have to revise your configuration when updating
+ Rust_, you should enable this feature. Otherwise, please _do not_ enable this
+ feature.
+
+-_Note!_ If you are compiling for a target that does not have 128-bit SIMD
+-enabled as part of the target definition and you are enabling 128-bit SIMD
+-using `-C target_feature`, you need to enable the `core_arch` Cargo feature
+-for `packed_simd` to compile a crates.io snapshot of `core_arch` instead of
+-using the standard-library copy of `core::arch`, because the `core::arch`
+-module of the pre-compiled standard library has been compiled with the
+-assumption that the CPU doesn't have 128-bit SIMD. At present this applies
+-mainly to 32-bit ARM targets whose first component does not include the
+-substring `neon`.
+-
+-The encoding_rs side of things has not been properly set up for POWER,
+-PowerPC, MIPS, etc., SIMD at this time, so even if you were to follow
+-the advice from the previous paragraph, you probably shouldn't use
+-the `simd-accel` option on the less mainstream architectures at this
+-time.
+-
+ Used by Firefox.
+
+ ### `serde`
+
+ Enables support for serializing and deserializing `&'static Encoding`-typed
+ struct fields using [Serde][1].
+
+ [1]: https://serde.rs/
+@@ -376,18 +362,19 @@ It is a goal to support the latest stabl
+ the version of Rust that's used for Firefox Nightly.
+
+ At this time, there is no firm commitment to support a version older than
+ what's required by Firefox, and there is no commitment to treat MSRV changes
+ as semver-breaking, because this crate depends on `cfg-if`, which doesn't
+ appear to treat MSRV changes as semver-breaking, so it would be useless for
+ this crate to treat MSRV changes as semver-breaking.
+
+-As of 2021-02-04, MSRV appears to be Rust 1.36.0 for using the crate and
++As of 2024-04-04, MSRV appears to be Rust 1.36.0 for using the crate and
+ 1.42.0 for doc tests to pass without errors about the global allocator.
++With the `simd-accel` feature, the MSRV is even higher.
+
+ ## Compatibility with rust-encoding
+
+ A compatibility layer that implements the rust-encoding API on top of
+ encoding_rs is
+ [provided as a separate crate](https://github.com/hsivonen/encoding_rs_compat)
+ (cannot be uploaded to crates.io). The compatibility layer was originally
+ written with the assuption that Firefox would need it, but it is not currently
+@@ -441,20 +428,27 @@ To regenerate the generated code:
+ - [x] Implement the rust-encoding API in terms of encoding_rs.
+ - [x] Add SIMD acceleration for Aarch64.
+ - [x] Investigate the use of NEON on 32-bit ARM.
+ - [ ] ~Investigate Bj旦rn H旦hrmann's lookup table acceleration for UTF-8 as
+ adapted to Rust in rust-encoding.~
+ - [x] Add actually fast CJK encode options.
+ - [ ] ~Investigate [Bob Steagall's lookup table acceleration for UTF-8](https://github.com/BobSteagall/CppNow2018/blob/master/FastConversionFromUTF-8/Fast%20Conversion%20From%20UTF-8%20with%20C%2B%2B%2C%20DFAs%2C%20and%20SSE%20Intrinsics%20-%20Bob%20Steagall%20-%20C%2B%2BNow%202018.pdf).~
+ - [x] Provide a build mode that works without `alloc` (with lesser API surface).
+-- [ ] Migrate to `std::simd` once it is stable and declare 1.0.
++- [x] Migrate to `std::simd` ~once it is stable and declare 1.0.~
++- [ ] Migrate `unsafe` slice access by larger types than `u8`/`u16` to `align_to`.
+
+ ## Release Notes
+
++### 0.8.34
++
++* Use the `portable_simd` nightly feature of the standard library instead of the `packed_simd` crate. Only affects the `simd-accel` optional nightly feature.
++* Internal documentation improvements and minor code improvements around `unsafe`.
++* Added `rust-version` to `Cargo.toml`.
++
+ ### 0.8.33
+
+ * Use `packed_simd` instead of `packed_simd_2` again now that updates are back under the `packed_simd` name. Only affects the `simd-accel` optional nightly feature.
+
+ ### 0.8.32
+
+ * Removed `build.rs`. (This removal should resolve false positives reported by some antivirus products. This may break some build configurations that have opted out of Rust's guarantees against future build breakage.)
+ * Internal change to what API is used for reinterpreting the lane configuration of SIMD vectors.
+diff --git a/third_party/rust/encoding_rs/src/ascii.rs b/third_party/rust/encoding_rs/src/ascii.rs
+--- third_party/rust/encoding_rs/src/ascii.rs
++++ third_party/rust/encoding_rs/src/ascii.rs
+@@ -46,71 +46,87 @@ cfg_if! {
+ #[allow(dead_code)]
+ #[inline(always)]
+ fn likely(b: bool) -> bool {
+ b
+ }
+ }
+ }
+
++// Safety invariants for masks: data & mask = 0 for valid ASCII or basic latin utf-16
++
+ // `as` truncates, so works on 32-bit, too.
+ #[allow(dead_code)]
+ pub const ASCII_MASK: usize = 0x8080_8080_8080_8080u64 as usize;
+
+ // `as` truncates, so works on 32-bit, too.
+ #[allow(dead_code)]
+ pub const BASIC_LATIN_MASK: usize = 0xFF80_FF80_FF80_FF80u64 as usize;
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_naive {
+ ($name:ident, $src_unit:ty, $dst_unit:ty) => {
++ /// Safety: src and dst must have len_unit elements and be aligned
++ /// Safety-usable invariant: will return Some() when it fails
++ /// to convert. The first value will be a u8 that is > 127.
+ #[inline(always)]
+ pub unsafe fn $name(
+ src: *const $src_unit,
+ dst: *mut $dst_unit,
+ len: usize,
+ ) -> Option<($src_unit, usize)> {
+ // Yes, manually omitting the bound check here matters
+ // a lot for perf.
+ for i in 0..len {
++ // Safety: len invariant used here
+ let code_unit = *(src.add(i));
++ // Safety: Upholds safety-usable invariant here
+ if code_unit > 127 {
+ return Some((code_unit, i));
+ }
++ // Safety: len invariant used here
+ *(dst.add(i)) = code_unit as $dst_unit;
+ }
+ return None;
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_alu {
+ ($name:ident,
++ // safety invariant: src/dst MUST be u8
+ $src_unit:ty,
+ $dst_unit:ty,
++ // Safety invariant: stride_fn must consume and produce two usizes, and return the index of the first non-ascii when it fails
+ $stride_fn:ident) => {
++ /// Safety: src and dst must have len elements, src is valid for read, dst is valid for
++ /// write
++ /// Safety-usable invariant: will return Some() when it fails
++ /// to convert. The first value will be a u8 that is > 127.
+ #[cfg_attr(feature = "cargo-clippy", allow(never_loop, cast_ptr_alignment))]
+ #[inline(always)]
+ pub unsafe fn $name(
+ src: *const $src_unit,
+ dst: *mut $dst_unit,
+ len: usize,
+ ) -> Option<($src_unit, usize)> {
+ let mut offset = 0usize;
+ // This loop is only broken out of as a `goto` forward
+ loop {
++ // Safety: until_alignment becomes the number of bytes we need to munch until we are aligned to usize
+ let mut until_alignment = {
+ // Check if the other unit aligns if we move the narrower unit
+ // to alignment.
+ // if ::core::mem::size_of::<$src_unit>() == ::core::mem::size_of::<$dst_unit>() {
+ // ascii_to_ascii
+ let src_alignment = (src as usize) & ALU_ALIGNMENT_MASK;
+ let dst_alignment = (dst as usize) & ALU_ALIGNMENT_MASK;
+ if src_alignment != dst_alignment {
++ // Safety: bails early and ends up in the na誰ve branch where usize-alignment doesn't matter
+ break;
+ }
+ (ALU_ALIGNMENT - src_alignment) & ALU_ALIGNMENT_MASK
+ // } else if ::core::mem::size_of::<$src_unit>() < ::core::mem::size_of::<$dst_unit>() {
+ // ascii_to_basic_latin
+ // let src_until_alignment = (ALIGNMENT - ((src as usize) & ALIGNMENT_MASK)) & ALIGNMENT_MASK;
+ // if (dst.add(src_until_alignment) as usize) & ALIGNMENT_MASK != 0 {
+ // break;
+@@ -129,74 +145,104 @@ macro_rules! ascii_alu {
+ // Moving pointers to alignment seems to be a pessimization on
+ // x86_64 for operations that have UTF-16 as the internal
+ // Unicode representation. However, since it seems to be a win
+ // on ARM (tested ARMv7 code running on ARMv8 [rpi3]), except
+ // mixed results when encoding from UTF-16 and since x86 and
+ // x86_64 should be using SSE2 in due course, keeping the move
+ // to alignment here. It would be good to test on more ARM CPUs
+ // and on real MIPS and POWER hardware.
++ //
++ // Safety: This is the na誰ve code once again, for `until_alignment` bytes
+ while until_alignment != 0 {
+ let code_unit = *(src.add(offset));
+ if code_unit > 127 {
++ // Safety: Upholds safety-usable invariant here
+ return Some((code_unit, offset));
+ }
+ *(dst.add(offset)) = code_unit as $dst_unit;
++ // Safety: offset is the number of bytes copied so far
+ offset += 1;
+ until_alignment -= 1;
+ }
+ let len_minus_stride = len - ALU_STRIDE_SIZE;
+ loop {
++ // Safety: num_ascii is known to be a byte index of a non-ascii byte due to stride_fn's invariant
+ if let Some(num_ascii) = $stride_fn(
++ // Safety: These are known to be valid and aligned since we have at
++ // least ALU_STRIDE_SIZE data in these buffers, and offset is the
++ // number of elements copied so far, which according to the
++ // until_alignment calculation above will cause both src and dst to be
++ // aligned to usize after this add
+ src.add(offset) as *const usize,
+ dst.add(offset) as *mut usize,
+ ) {
+ offset += num_ascii;
++ // Safety: Upholds safety-usable invariant here by indexing into non-ascii byte
+ return Some((*(src.add(offset)), offset));
+ }
++ // Safety: offset continues to be the number of bytes copied so far, and
++ // maintains usize alignment for the next loop iteration
+ offset += ALU_STRIDE_SIZE;
++ // Safety: This is `offset > len - stride. This loop will continue as long as
++ // `offset <= len - stride`, which means there are `stride` bytes to still be read.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ break;
+ }
++
++ // Safety: This is the na誰ve code, same as ascii_naive, and has no requirements
++ // other than src/dst being valid for the the right lens
+ while offset < len {
++ // Safety: len invariant used here
+ let code_unit = *(src.add(offset));
+ if code_unit > 127 {
++ // Safety: Upholds safety-usable invariant here
+ return Some((code_unit, offset));
+ }
++ // Safety: len invariant used here
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ None
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! basic_latin_alu {
+ ($name:ident,
++ // safety invariant: use u8 for src/dest for ascii, and u16 for basic_latin
+ $src_unit:ty,
+ $dst_unit:ty,
++ // safety invariant: stride function must munch ALU_STRIDE_SIZE*size(src_unit) bytes off of src and
++ // write ALU_STRIDE_SIZE*size(dst_unit) bytes to dst
+ $stride_fn:ident) => {
++ /// Safety: src and dst must have len elements, src is valid for read, dst is valid for
++ /// write
++ /// Safety-usable invariant: will return Some() when it fails
++ /// to convert. The first value will be a u8 that is > 127.
+ #[cfg_attr(
+ feature = "cargo-clippy",
+ allow(never_loop, cast_ptr_alignment, cast_lossless)
+ )]
+ #[inline(always)]
+ pub unsafe fn $name(
+ src: *const $src_unit,
+ dst: *mut $dst_unit,
+ len: usize,
+ ) -> Option<($src_unit, usize)> {
+ let mut offset = 0usize;
+ // This loop is only broken out of as a `goto` forward
+ loop {
++ // Safety: until_alignment becomes the number of bytes we need to munch from src/dest until we are aligned to usize
++ // We ensure basic-latin has the same alignment as ascii, starting with ascii since it is smaller.
+ let mut until_alignment = {
+ // Check if the other unit aligns if we move the narrower unit
+ // to alignment.
+ // if ::core::mem::size_of::<$src_unit>() == ::core::mem::size_of::<$dst_unit>() {
+ // ascii_to_ascii
+ // let src_alignment = (src as usize) & ALIGNMENT_MASK;
+ // let dst_alignment = (dst as usize) & ALIGNMENT_MASK;
+ // if src_alignment != dst_alignment {
+@@ -232,66 +278,89 @@ macro_rules! basic_latin_alu {
+ // Moving pointers to alignment seems to be a pessimization on
+ // x86_64 for operations that have UTF-16 as the internal
+ // Unicode representation. However, since it seems to be a win
+ // on ARM (tested ARMv7 code running on ARMv8 [rpi3]), except
+ // mixed results when encoding from UTF-16 and since x86 and
+ // x86_64 should be using SSE2 in due course, keeping the move
+ // to alignment here. It would be good to test on more ARM CPUs
+ // and on real MIPS and POWER hardware.
++ //
++ // Safety: This is the na誰ve code once again, for `until_alignment` bytes
+ while until_alignment != 0 {
+ let code_unit = *(src.add(offset));
+ if code_unit > 127 {
++ // Safety: Upholds safety-usable invariant here
+ return Some((code_unit, offset));
+ }
+ *(dst.add(offset)) = code_unit as $dst_unit;
++ // Safety: offset is the number of bytes copied so far
+ offset += 1;
+ until_alignment -= 1;
+ }
+ let len_minus_stride = len - ALU_STRIDE_SIZE;
+ loop {
+ if !$stride_fn(
++ // Safety: These are known to be valid and aligned since we have at
++ // least ALU_STRIDE_SIZE data in these buffers, and offset is the
++ // number of elements copied so far, which according to the
++ // until_alignment calculation above will cause both src and dst to be
++ // aligned to usize after this add
+ src.add(offset) as *const usize,
+ dst.add(offset) as *mut usize,
+ ) {
+ break;
+ }
++ // Safety: offset continues to be the number of bytes copied so far, and
++ // maintains usize alignment for the next loop iteration
+ offset += ALU_STRIDE_SIZE;
++ // Safety: This is `offset > len - stride. This loop will continue as long as
++ // `offset <= len - stride`, which means there are `stride` bytes to still be read.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ break;
+ }
++ // Safety: This is the na誰ve code once again, for leftover bytes
+ while offset < len {
++ // Safety: len invariant used here
+ let code_unit = *(src.add(offset));
+ if code_unit > 127 {
++ // Safety: Upholds safety-usable invariant here
+ return Some((code_unit, offset));
+ }
++ // Safety: len invariant used here
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ None
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! latin1_alu {
++ // safety invariant: stride function must munch ALU_STRIDE_SIZE*size(src_unit) bytes off of src and
++ // write ALU_STRIDE_SIZE*size(dst_unit) bytes to dst
+ ($name:ident, $src_unit:ty, $dst_unit:ty, $stride_fn:ident) => {
++ /// Safety: src and dst must have len elements, src is valid for read, dst is valid for
++ /// write
+ #[cfg_attr(
+ feature = "cargo-clippy",
+ allow(never_loop, cast_ptr_alignment, cast_lossless)
+ )]
+ #[inline(always)]
+ pub unsafe fn $name(src: *const $src_unit, dst: *mut $dst_unit, len: usize) {
+ let mut offset = 0usize;
+ // This loop is only broken out of as a `goto` forward
+ loop {
++ // Safety: until_alignment becomes the number of bytes we need to munch from src/dest until we are aligned to usize
++ // We ensure the UTF-16 side has the same alignment as the Latin-1 side, starting with Latin-1 since it is smaller.
+ let mut until_alignment = {
+ if ::core::mem::size_of::<$src_unit>() < ::core::mem::size_of::<$dst_unit>() {
+ // unpack
+ let src_until_alignment = (ALU_ALIGNMENT
+ - ((src as usize) & ALU_ALIGNMENT_MASK))
+ & ALU_ALIGNMENT_MASK;
+ if (dst.wrapping_add(src_until_alignment) as usize) & ALU_ALIGNMENT_MASK
+ != 0
+@@ -308,373 +377,485 @@ macro_rules! latin1_alu {
+ != 0
+ {
+ break;
+ }
+ dst_until_alignment
+ }
+ };
+ if until_alignment + ALU_STRIDE_SIZE <= len {
++ // Safety: This is the na誰ve code once again, for `until_alignment` bytes
+ while until_alignment != 0 {
+ let code_unit = *(src.add(offset));
+ *(dst.add(offset)) = code_unit as $dst_unit;
++ // Safety: offset is the number of bytes copied so far
+ offset += 1;
+ until_alignment -= 1;
+ }
+ let len_minus_stride = len - ALU_STRIDE_SIZE;
+ loop {
+ $stride_fn(
++ // Safety: These are known to be valid and aligned since we have at
++ // least ALU_STRIDE_SIZE data in these buffers, and offset is the
++ // number of elements copied so far, which according to the
++ // until_alignment calculation above will cause both src and dst to be
++ // aligned to usize after this add
+ src.add(offset) as *const usize,
+ dst.add(offset) as *mut usize,
+ );
++ // Safety: offset continues to be the number of bytes copied so far, and
++ // maintains usize alignment for the next loop iteration
+ offset += ALU_STRIDE_SIZE;
++ // Safety: This is `offset > len - stride. This loop will continue as long as
++ // `offset <= len - stride`, which means there are `stride` bytes to still be read.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ break;
+ }
++ // Safety: This is the na誰ve code once again, for leftover bytes
+ while offset < len {
++ // Safety: len invariant used here
+ let code_unit = *(src.add(offset));
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_simd_check_align {
+ (
+ $name:ident,
+ $src_unit:ty,
+ $dst_unit:ty,
++ // Safety: This function must require aligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_both_aligned:ident,
++ // Safety: This function must require aligned/unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_src_aligned:ident,
++ // Safety: This function must require unaligned/aligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_dst_aligned:ident,
++ // Safety: This function must require unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_neither_aligned:ident
+ ) => {
++ /// Safety: src/dst must be valid for reads/writes of `len` elements of their units.
++ ///
++ /// Safety-usable invariant: will return Some() when it encounters non-ASCII, with the first element in the Some being
++ /// guaranteed to be non-ASCII (> 127), and the second being the offset where it is found
+ #[inline(always)]
+ pub unsafe fn $name(
+ src: *const $src_unit,
+ dst: *mut $dst_unit,
+ len: usize,
+ ) -> Option<($src_unit, usize)> {
+ let mut offset = 0usize;
++ // Safety: if this check succeeds we're valid for reading/writing at least `SIMD_STRIDE_SIZE` elements.
+ if SIMD_STRIDE_SIZE <= len {
+ let len_minus_stride = len - SIMD_STRIDE_SIZE;
+ // XXX Should we first process one stride unconditionally as unaligned to
+ // avoid the cost of the branchiness below if the first stride fails anyway?
+ // XXX Should we just use unaligned SSE2 access unconditionally? It seems that
+ // on Haswell, it would make sense to just use unaligned and not bother
+ // checking. Need to benchmark older architectures before deciding.
+ let dst_masked = (dst as usize) & SIMD_ALIGNMENT_MASK;
++ // Safety: checking whether src is aligned
+ if ((src as usize) & SIMD_ALIGNMENT_MASK) == 0 {
++ // Safety: Checking whether dst is aligned
+ if dst_masked == 0 {
+ loop {
++ // Safety: We're valid to read/write SIMD_STRIDE_SIZE elements and have the appropriate alignments
+ if !$stride_both_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE` which means we always have at least `SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ } else {
+ loop {
++ // Safety: We're valid to read/write SIMD_STRIDE_SIZE elements and have the appropriate alignments
+ if !$stride_src_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE` which means we always have at least `SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ } else {
+ if dst_masked == 0 {
+ loop {
++ // Safety: We're valid to read/write SIMD_STRIDE_SIZE elements and have the appropriate alignments
+ if !$stride_dst_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE` which means we always have at least `SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ } else {
+ loop {
++ // Safety: We're valid to read/write SIMD_STRIDE_SIZE elements and have the appropriate alignments
+ if !$stride_neither_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE` which means we always have at least `SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ }
+ }
+ while offset < len {
++ // Safety: uses len invariant here and below
+ let code_unit = *(src.add(offset));
+ if code_unit > 127 {
++ // Safety: upholds safety-usable invariant
+ return Some((code_unit, offset));
+ }
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ None
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_simd_check_align_unrolled {
+ (
+ $name:ident,
+ $src_unit:ty,
+ $dst_unit:ty,
++ // Safety: This function must require aligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_both_aligned:ident,
++ // Safety: This function must require aligned/unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_src_aligned:ident,
++ // Safety: This function must require unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_neither_aligned:ident,
++ // Safety: This function must require aligned src/dest that are valid for reading/writing 2*SIMD_STRIDE_SIZE src_unit/dst_unit
+ $double_stride_both_aligned:ident,
++ // Safety: This function must require aligned/unaligned src/dest that are valid for reading/writing 2*SIMD_STRIDE_SIZE src_unit/dst_unit
+ $double_stride_src_aligned:ident
+ ) => {
+- #[inline(always)]
++ /// Safety: src/dst must be valid for reads/writes of `len` elements of their units.
++ ///
++ /// Safety-usable invariant: will return Some() when it encounters non-ASCII, with the first element in the Some being
++ /// guaranteed to be non-ASCII (> 127), and the second being the offset where it is found #[inline(always)]
+ pub unsafe fn $name(
+ src: *const $src_unit,
+ dst: *mut $dst_unit,
+ len: usize,
+ ) -> Option<($src_unit, usize)> {
+ let unit_size = ::core::mem::size_of::<$src_unit>();
+ let mut offset = 0usize;
+ // This loop is only broken out of as a goto forward without
+ // actually looping
+ 'outer: loop {
++ // Safety: if this check succeeds we're valid for reading/writing at least `SIMD_STRIDE_SIZE` elements.
+ if SIMD_STRIDE_SIZE <= len {
+ // First, process one unaligned
++ // Safety: this is safe to call since we're valid for this read/write
+ if !$stride_neither_aligned(src, dst) {
+ break 'outer;
+ }
+ offset = SIMD_STRIDE_SIZE;
+
+ // We have now seen 16 ASCII bytes. Let's guess that
+ // there will be enough more to justify more expense
+ // in the case of non-ASCII.
+ // Use aligned reads for the sake of old microachitectures.
++ //
++ // Safety: this correctly calculates the number of src_units that need to be read before the remaining list is aligned.
++ // This is less that SIMD_ALIGNMENT, which is also SIMD_STRIDE_SIZE (as documented)
+ let until_alignment = ((SIMD_ALIGNMENT
+ - ((src.add(offset) as usize) & SIMD_ALIGNMENT_MASK))
+ & SIMD_ALIGNMENT_MASK)
+ / unit_size;
+- // This addition won't overflow, because even in the 32-bit PAE case the
++ // Safety: This addition won't overflow, because even in the 32-bit PAE case the
+ // address space holds enough code that the slice length can't be that
+ // close to address space size.
+ // offset now equals SIMD_STRIDE_SIZE, hence times 3 below.
++ //
++ // Safety: if this check succeeds we're valid for reading/writing at least `2 * SIMD_STRIDE_SIZE` elements plus `until_alignment`.
++ // The extra SIMD_STRIDE_SIZE in the condition is because `offset` is already `SIMD_STRIDE_SIZE`.
+ if until_alignment + (SIMD_STRIDE_SIZE * 3) <= len {
+ if until_alignment != 0 {
++ // Safety: this is safe to call since we're valid for this read/write (and more), and don't care about alignment
++ // This will copy over bytes that get decoded twice since it's not incrementing `offset` by SIMD_STRIDE_SIZE. This is fine.
+ if !$stride_neither_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += until_alignment;
+ }
++ // Safety: At this point we're valid for reading/writing 2*SIMD_STRIDE_SIZE elements
++ // Safety: Now `offset` is aligned for `src`
+ let len_minus_stride_times_two = len - (SIMD_STRIDE_SIZE * 2);
++ // Safety: This is whether dst is aligned
+ let dst_masked = (dst.add(offset) as usize) & SIMD_ALIGNMENT_MASK;
+ if dst_masked == 0 {
+ loop {
++ // Safety: both are aligned, we can call the aligned function. We're valid for reading/writing double stride from the initial condition
++ // and the loop break condition below
+ if let Some(advance) =
+ $double_stride_both_aligned(src.add(offset), dst.add(offset))
+ {
+ offset += advance;
+ let code_unit = *(src.add(offset));
++ // Safety: uses safety-usable invariant on ascii_to_ascii_simd_double_stride to return
++ // guaranteed non-ascii
+ return Some((code_unit, offset));
+ }
+ offset += SIMD_STRIDE_SIZE * 2;
++ // Safety: This is `offset > len - 2 * SIMD_STRIDE_SIZE` which means we always have at least `2 * SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride_times_two {
+ break;
+ }
+ }
++ // Safety: We're valid for reading/writing one more, and can still assume alignment
+ if offset + SIMD_STRIDE_SIZE <= len {
+ if !$stride_both_aligned(src.add(offset), dst.add(offset)) {
+ break 'outer;
+ }
+ offset += SIMD_STRIDE_SIZE;
+ }
+ } else {
+ loop {
++ // Safety: only src is aligned here. We're valid for reading/writing double stride from the initial condition
++ // and the loop break condition below
+ if let Some(advance) =
+ $double_stride_src_aligned(src.add(offset), dst.add(offset))
+ {
+ offset += advance;
+ let code_unit = *(src.add(offset));
++ // Safety: uses safety-usable invariant on ascii_to_ascii_simd_double_stride to return
++ // guaranteed non-ascii
+ return Some((code_unit, offset));
+ }
+ offset += SIMD_STRIDE_SIZE * 2;
++ // Safety: This is `offset > len - 2 * SIMD_STRIDE_SIZE` which means we always have at least `2 * SIMD_STRIDE_SIZE` elements to munch next time.
++
+ if offset > len_minus_stride_times_two {
+ break;
+ }
+ }
++ // Safety: We're valid for reading/writing one more, and can still assume alignment
+ if offset + SIMD_STRIDE_SIZE <= len {
+ if !$stride_src_aligned(src.add(offset), dst.add(offset)) {
+ break 'outer;
+ }
+ offset += SIMD_STRIDE_SIZE;
+ }
+ }
+ } else {
+ // At most two iterations, so unroll
+ if offset + SIMD_STRIDE_SIZE <= len {
++ // Safety: The check above ensures we're allowed to read/write this, and we don't use alignment
+ if !$stride_neither_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
+ if offset + SIMD_STRIDE_SIZE <= len {
++ // Safety: The check above ensures we're allowed to read/write this, and we don't use alignment
+ if !$stride_neither_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
+ }
+ }
+ }
+ }
+ break 'outer;
+ }
+ while offset < len {
++ // Safety: relies straightforwardly on the `len` invariant
+ let code_unit = *(src.add(offset));
+ if code_unit > 127 {
++ // Safety-usable invariant upheld here
+ return Some((code_unit, offset));
+ }
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ None
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! latin1_simd_check_align {
+ (
+ $name:ident,
+ $src_unit:ty,
+ $dst_unit:ty,
++ // Safety: This function must require aligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_both_aligned:ident,
++ // Safety: This function must require aligned/unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_src_aligned:ident,
++ // Safety: This function must require unaligned/aligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_dst_aligned:ident,
++ // Safety: This function must require unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_neither_aligned:ident
++
+ ) => {
++ /// Safety: src/dst must be valid for reads/writes of `len` elements of their units.
+ #[inline(always)]
+ pub unsafe fn $name(src: *const $src_unit, dst: *mut $dst_unit, len: usize) {
+ let mut offset = 0usize;
++ // Safety: if this check succeeds we're valid for reading/writing at least `SIMD_STRIDE_SIZE` elements.
+ if SIMD_STRIDE_SIZE <= len {
+ let len_minus_stride = len - SIMD_STRIDE_SIZE;
++ // Whether dst is aligned
+ let dst_masked = (dst as usize) & SIMD_ALIGNMENT_MASK;
++ // Whether src is aligned
+ if ((src as usize) & SIMD_ALIGNMENT_MASK) == 0 {
+ if dst_masked == 0 {
+ loop {
++ // Safety: Both were aligned, we can use the aligned function
+ $stride_both_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE`, which means in the next iteration we're valid for
++ // reading/writing at least SIMD_STRIDE_SIZE elements.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ } else {
+ loop {
++ // Safety: src was aligned, dst was not
+ $stride_src_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE`, which means in the next iteration we're valid for
++ // reading/writing at least SIMD_STRIDE_SIZE elements.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ } else {
+ if dst_masked == 0 {
+ loop {
++ // Safety: src was aligned, dst was not
+ $stride_dst_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE`, which means in the next iteration we're valid for
++ // reading/writing at least SIMD_STRIDE_SIZE elements.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ } else {
+ loop {
++ // Safety: Neither were aligned
+ $stride_neither_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE`, which means in the next iteration we're valid for
++ // reading/writing at least SIMD_STRIDE_SIZE elements.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ }
+ }
+ while offset < len {
++ // Safety: relies straightforwardly on the `len` invariant
+ let code_unit = *(src.add(offset));
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! latin1_simd_check_align_unrolled {
+ (
+ $name:ident,
+ $src_unit:ty,
+ $dst_unit:ty,
++ // Safety: This function must require aligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_both_aligned:ident,
++ // Safety: This function must require aligned/unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_src_aligned:ident,
++ // Safety: This function must require unaligned/aligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_dst_aligned:ident,
++ // Safety: This function must require unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_neither_aligned:ident
+ ) => {
++ /// Safety: src/dst must be valid for reads/writes of `len` elements of their units.
+ #[inline(always)]
+ pub unsafe fn $name(src: *const $src_unit, dst: *mut $dst_unit, len: usize) {
+ let unit_size = ::core::mem::size_of::<$src_unit>();
+ let mut offset = 0usize;
++ // Safety: if this check succeeds we're valid for reading/writing at least `SIMD_STRIDE_SIZE` elements.
+ if SIMD_STRIDE_SIZE <= len {
++ // Safety: this correctly calculates the number of src_units that need to be read before the remaining list is aligned.
++ // This is by definition less than SIMD_STRIDE_SIZE.
+ let mut until_alignment = ((SIMD_STRIDE_SIZE
+ - ((src as usize) & SIMD_ALIGNMENT_MASK))
+ & SIMD_ALIGNMENT_MASK)
+ / unit_size;
+ while until_alignment != 0 {
++ // Safety: This is a straightforward copy, since until_alignment is < SIMD_STRIDE_SIZE < len, this is in-bounds
+ *(dst.add(offset)) = *(src.add(offset)) as $dst_unit;
+ offset += 1;
+ until_alignment -= 1;
+ }
++ // Safety: here offset will be `until_alignment`, i.e. enough to align `src`.
+ let len_minus_stride = len - SIMD_STRIDE_SIZE;
++ // Safety: if this check succeeds we're valid for reading/writing at least `2 * SIMD_STRIDE_SIZE` elements.
+ if offset + SIMD_STRIDE_SIZE * 2 <= len {
+ let len_minus_stride_times_two = len_minus_stride - SIMD_STRIDE_SIZE;
++ // Safety: at this point src is known to be aligned at offset, dst is not.
+ if (dst.add(offset) as usize) & SIMD_ALIGNMENT_MASK == 0 {
+ loop {
++ // Safety: We checked alignment of dst above, we can use the alignment functions. We're allowed to read/write 2*SIMD_STRIDE_SIZE elements, which we do.
+ $stride_both_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
+ $stride_both_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - 2 * SIMD_STRIDE_SIZE` which means we always have at least `2 * SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride_times_two {
+ break;
+ }
+ }
+ } else {
+ loop {
++ // Safety: we ensured alignment of src already.
+ $stride_src_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
+ $stride_src_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - 2 * SIMD_STRIDE_SIZE` which means we always have at least `2 * SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride_times_two {
+ break;
+ }
+ }
+ }
+ }
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE` which means we are valid to munch SIMD_STRIDE_SIZE more elements, which we do
+ if offset < len_minus_stride {
+ $stride_src_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
+ }
+ }
+ while offset < len {
++ // Safety: uses len invariant here and below
+ let code_unit = *(src.add(offset));
+ // On x86_64, this loop autovectorizes but in the pack
+ // case there are instructions whose purpose is to make sure
+ // each u16 in the vector is truncated before packing. However,
+ // since we don't care about saturating behavior of SSE2 packing
+ // when the input isn't Latin1, those instructions are useless.
+ // Unfortunately, using the `assume` intrinsic to lie to the
+ // optimizer doesn't make LLVM omit the trunctation that we
+@@ -688,138 +869,180 @@ macro_rules! latin1_simd_check_align_unr
+ offset += 1;
+ }
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_simd_unalign {
++ // Safety: stride_neither_aligned must be a function that requires src/dest be valid for unaligned reads/writes for SIMD_STRIDE_SIZE elements of type src_unit/dest_unit
+ ($name:ident, $src_unit:ty, $dst_unit:ty, $stride_neither_aligned:ident) => {
++ /// Safety: src and dst must be valid for reads/writes of len elements of type src_unit/dst_unit
++ ///
++ /// Safety-usable invariant: will return Some() when it encounters non-ASCII, with the first element in the Some being
++ /// guaranteed to be non-ASCII (> 127), and the second being the offset where it is found
+ #[inline(always)]
+ pub unsafe fn $name(
+ src: *const $src_unit,
+ dst: *mut $dst_unit,
+ len: usize,
+ ) -> Option<($src_unit, usize)> {
+ let mut offset = 0usize;
++ // Safety: if this check succeeds we're valid for reading/writing at least `stride` elements.
+ if SIMD_STRIDE_SIZE <= len {
+ let len_minus_stride = len - SIMD_STRIDE_SIZE;
+ loop {
++ // Safety: We know we're valid for `stride` reads/writes, so we can call this function. We don't need alignment.
+ if !$stride_neither_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // This is `offset > len - stride` which means we always have at least `stride` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ while offset < len {
++ // Safety: Uses len invariant here and below
+ let code_unit = *(src.add(offset));
+ if code_unit > 127 {
++ // Safety-usable invariant upheld here
+ return Some((code_unit, offset));
+ }
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ None
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! latin1_simd_unalign {
++ // Safety: stride_neither_aligned must be a function that requires src/dest be valid for unaligned reads/writes for SIMD_STRIDE_SIZE elements of type src_unit/dest_unit
+ ($name:ident, $src_unit:ty, $dst_unit:ty, $stride_neither_aligned:ident) => {
++ /// Safety: src and dst must be valid for unaligned reads/writes of len elements of type src_unit/dst_unit
+ #[inline(always)]
+ pub unsafe fn $name(src: *const $src_unit, dst: *mut $dst_unit, len: usize) {
+ let mut offset = 0usize;
++ // Safety: if this check succeeds we're valid for reading/writing at least `stride` elements.
+ if SIMD_STRIDE_SIZE <= len {
+ let len_minus_stride = len - SIMD_STRIDE_SIZE;
+ loop {
++ // Safety: We know we're valid for `stride` reads/writes, so we can call this function. We don't need alignment.
+ $stride_neither_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
++ // This is `offset > len - stride` which means we always have at least `stride` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ while offset < len {
++ // Safety: Uses len invariant here
+ let code_unit = *(src.add(offset));
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_to_ascii_simd_stride {
++ // Safety: load/store must be valid for 16 bytes of read/write, which may be unaligned. (candidates: `(load|store)(16|8)_(unaligned|aligned)` functions)
+ ($name:ident, $load:ident, $store:ident) => {
++ /// Safety: src and dst must be valid for 16 bytes of read/write according to
++ /// the $load/$store fn, which may allow for unaligned reads/writes or require
++ /// alignment to either 16x8 or u8x16.
+ #[inline(always)]
+ pub unsafe fn $name(src: *const u8, dst: *mut u8) -> bool {
+ let simd = $load(src);
+ if !simd_is_ascii(simd) {
+ return false;
+ }
+ $store(dst, simd);
+ true
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_to_ascii_simd_double_stride {
++ // Safety: store must be valid for 32 bytes of write, which may be unaligned (candidates: `store(8|16)_(aligned|unaligned)`)
+ ($name:ident, $store:ident) => {
++ /// Safety: src must be valid for 32 bytes of aligned u8x16 read
++ /// dst must be valid for 32 bytes of unaligned write according to
++ /// the $store fn, which may allow for unaligned writes or require
++ /// alignment to either 16x8 or u8x16.
++ ///
++ /// Safety-usable invariant: Returns Some(index) if the element at `index` is invalid ASCII
+ #[inline(always)]
+ pub unsafe fn $name(src: *const u8, dst: *mut u8) -> Option<usize> {
+ let first = load16_aligned(src);
+ let second = load16_aligned(src.add(SIMD_STRIDE_SIZE));
+ $store(dst, first);
+ if unlikely(!simd_is_ascii(first | second)) {
++ // Safety: mask_ascii produces a mask of all the high bits.
+ let mask_first = mask_ascii(first);
+ if mask_first != 0 {
++ // Safety: on little endian systems this will be the number of ascii bytes
++ // before the first non-ascii, i.e. valid for indexing src
++ // TODO SAFETY: What about big-endian systems?
+ return Some(mask_first.trailing_zeros() as usize);
+ }
+ $store(dst.add(SIMD_STRIDE_SIZE), second);
+ let mask_second = mask_ascii(second);
++ // Safety: on little endian systems this will be the number of ascii bytes
++ // before the first non-ascii, i.e. valid for indexing src
+ return Some(SIMD_STRIDE_SIZE + mask_second.trailing_zeros() as usize);
+ }
+ $store(dst.add(SIMD_STRIDE_SIZE), second);
+ None
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_to_basic_latin_simd_stride {
++ // Safety: load/store must be valid for 16 bytes of read/write, which may be unaligned. (candidates: `(load|store)(16|8)_(unaligned|aligned)` functions)
+ ($name:ident, $load:ident, $store:ident) => {
++ /// Safety: src and dst must be valid for 16/32 bytes of read/write according to
++ /// the $load/$store fn, which may allow for unaligned reads/writes or require
++ /// alignment to either 16x8 or u8x16.
+ #[inline(always)]
+ pub unsafe fn $name(src: *const u8, dst: *mut u16) -> bool {
+ let simd = $load(src);
+ if !simd_is_ascii(simd) {
+ return false;
+ }
+ let (first, second) = simd_unpack(simd);
+ $store(dst, first);
+ $store(dst.add(8), second);
+ true
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_to_basic_latin_simd_double_stride {
++ // Safety: store must be valid for 16 bytes of write, which may be unaligned
+ ($name:ident, $store:ident) => {
++ /// Safety: src must be valid for 2*SIMD_STRIDE_SIZE bytes of aligned reads,
++ /// aligned to either 16x8 or u8x16.
++ /// dst must be valid for 2*SIMD_STRIDE_SIZE bytes of aligned or unaligned reads
+ #[inline(always)]
+ pub unsafe fn $name(src: *const u8, dst: *mut u16) -> Option<usize> {
+ let first = load16_aligned(src);
+ let second = load16_aligned(src.add(SIMD_STRIDE_SIZE));
+ let (a, b) = simd_unpack(first);
+ $store(dst, a);
++ // Safety: divide by 2 since it's a u16 pointer
+ $store(dst.add(SIMD_STRIDE_SIZE / 2), b);
+ if unlikely(!simd_is_ascii(first | second)) {
+ let mask_first = mask_ascii(first);
+ if mask_first != 0 {
+ return Some(mask_first.trailing_zeros() as usize);
+ }
+ let (c, d) = simd_unpack(second);
+ $store(dst.add(SIMD_STRIDE_SIZE), c);
+@@ -832,47 +1055,59 @@ macro_rules! ascii_to_basic_latin_simd_d
+ $store(dst.add(SIMD_STRIDE_SIZE + (SIMD_STRIDE_SIZE / 2)), d);
+ None
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! unpack_simd_stride {
++ // Safety: load/store must be valid for 16 bytes of read/write, which may be unaligned. (candidates: `(load|store)(16|8)_(unaligned|aligned)` functions)
+ ($name:ident, $load:ident, $store:ident) => {
++ /// Safety: src and dst must be valid for 16 bytes of read/write according to
++ /// the $load/$store fn, which may allow for unaligned reads/writes or require
++ /// alignment to either 16x8 or u8x16.
+ #[inline(always)]
+ pub unsafe fn $name(src: *const u8, dst: *mut u16) {
+ let simd = $load(src);
+ let (first, second) = simd_unpack(simd);
+ $store(dst, first);
+ $store(dst.add(8), second);
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! basic_latin_to_ascii_simd_stride {
++ // Safety: load/store must be valid for 16 bytes of read/write, which may be unaligned. (candidates: `(load|store)(16|8)_(unaligned|aligned)` functions)
+ ($name:ident, $load:ident, $store:ident) => {
++ /// Safety: src and dst must be valid for 32/16 bytes of read/write according to
++ /// the $load/$store fn, which may allow for unaligned reads/writes or require
++ /// alignment to either 16x8 or u8x16.
+ #[inline(always)]
+ pub unsafe fn $name(src: *const u16, dst: *mut u8) -> bool {
+ let first = $load(src);
+ let second = $load(src.add(8));
+ if simd_is_basic_latin(first | second) {
+ $store(dst, simd_pack(first, second));
+ true
+ } else {
+ false
+ }
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! pack_simd_stride {
++ // Safety: load/store must be valid for 16 bytes of read/write, which may be unaligned. (candidates: `(load|store)(16|8)_(unaligned|aligned)` functions)
+ ($name:ident, $load:ident, $store:ident) => {
++ /// Safety: src and dst must be valid for 32/16 bytes of read/write according to
++ /// the $load/$store fn, which may allow for unaligned reads/writes or require
++ /// alignment to either 16x8 or u8x16.
+ #[inline(always)]
+ pub unsafe fn $name(src: *const u16, dst: *mut u8) {
+ let first = $load(src);
+ let second = $load(src.add(8));
+ $store(dst, simd_pack(first, second));
+ }
+ };
+ }
+@@ -888,24 +1123,28 @@ cfg_if! {
+ // pub const ALIGNMENT: usize = 8;
+
+ pub const ALU_STRIDE_SIZE: usize = 16;
+
+ pub const ALU_ALIGNMENT: usize = 8;
+
+ pub const ALU_ALIGNMENT_MASK: usize = 7;
+
++ // Safety for stride macros: We stick to the load8_aligned/etc family of functions. We consistently produce
++ // neither_unaligned variants using only unaligned inputs.
+ ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_neither_aligned, load16_unaligned, store16_unaligned);
+
+ ascii_to_basic_latin_simd_stride!(ascii_to_basic_latin_stride_neither_aligned, load16_unaligned, store8_unaligned);
+ unpack_simd_stride!(unpack_stride_neither_aligned, load16_unaligned, store8_unaligned);
+
+ basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_neither_aligned, load8_unaligned, store16_unaligned);
+ pack_simd_stride!(pack_stride_neither_aligned, load8_unaligned, store16_unaligned);
+
++ // Safety for conversion macros: We use the unalign macro with unalign functions above. All stride functions were produced
++ // by stride macros that universally munch a single SIMD_STRIDE_SIZE worth of elements.
+ ascii_simd_unalign!(ascii_to_ascii, u8, u8, ascii_to_ascii_stride_neither_aligned);
+ ascii_simd_unalign!(ascii_to_basic_latin, u8, u16, ascii_to_basic_latin_stride_neither_aligned);
+ ascii_simd_unalign!(basic_latin_to_ascii, u16, u8, basic_latin_to_ascii_stride_neither_aligned);
+ latin1_simd_unalign!(unpack_latin1, u8, u16, unpack_stride_neither_aligned);
+ latin1_simd_unalign!(pack_latin1, u16, u8, pack_stride_neither_aligned);
+ } else if #[cfg(all(feature = "simd-accel", target_endian = "little", target_feature = "neon"))] {
+ // SIMD with different instructions for aligned and unaligned loads and stores.
+ //
+@@ -914,16 +1153,19 @@ cfg_if! {
+ // but the benchmark results I see don't agree.
+
+ pub const SIMD_STRIDE_SIZE: usize = 16;
+
+ pub const MAX_STRIDE_SIZE: usize = 16;
+
+ pub const SIMD_ALIGNMENT_MASK: usize = 15;
+
++ // Safety for stride macros: We stick to the load8_aligned/etc family of functions. We consistently name
++ // aligned/unaligned functions according to src/dst being aligned/unaligned
++
+ ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_both_aligned, load16_aligned, store16_aligned);
+ ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_src_aligned, load16_aligned, store16_unaligned);
+ ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_dst_aligned, load16_unaligned, store16_aligned);
+ ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_neither_aligned, load16_unaligned, store16_unaligned);
+
+ ascii_to_basic_latin_simd_stride!(ascii_to_basic_latin_stride_both_aligned, load16_aligned, store8_aligned);
+ ascii_to_basic_latin_simd_stride!(ascii_to_basic_latin_stride_src_aligned, load16_aligned, store8_unaligned);
+ ascii_to_basic_latin_simd_stride!(ascii_to_basic_latin_stride_dst_aligned, load16_unaligned, store8_aligned);
+@@ -939,36 +1181,43 @@ cfg_if! {
+ basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_dst_aligned, load8_unaligned, store16_aligned);
+ basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_neither_aligned, load8_unaligned, store16_unaligned);
+
+ pack_simd_stride!(pack_stride_both_aligned, load8_aligned, store16_aligned);
+ pack_simd_stride!(pack_stride_src_aligned, load8_aligned, store16_unaligned);
+ pack_simd_stride!(pack_stride_dst_aligned, load8_unaligned, store16_aligned);
+ pack_simd_stride!(pack_stride_neither_aligned, load8_unaligned, store16_unaligned);
+
++ // Safety for conversion macros: We use the correct pattern of both/src/dst/neither here. All stride functions were produced
++ // by stride macros that universally munch a single SIMD_STRIDE_SIZE worth of elements.
++
+ ascii_simd_check_align!(ascii_to_ascii, u8, u8, ascii_to_ascii_stride_both_aligned, ascii_to_ascii_stride_src_aligned, ascii_to_ascii_stride_dst_aligned, ascii_to_ascii_stride_neither_aligned);
+ ascii_simd_check_align!(ascii_to_basic_latin, u8, u16, ascii_to_basic_latin_stride_both_aligned, ascii_to_basic_latin_stride_src_aligned, ascii_to_basic_latin_stride_dst_aligned, ascii_to_basic_latin_stride_neither_aligned);
+ ascii_simd_check_align!(basic_latin_to_ascii, u16, u8, basic_latin_to_ascii_stride_both_aligned, basic_latin_to_ascii_stride_src_aligned, basic_latin_to_ascii_stride_dst_aligned, basic_latin_to_ascii_stride_neither_aligned);
+ latin1_simd_check_align!(unpack_latin1, u8, u16, unpack_stride_both_aligned, unpack_stride_src_aligned, unpack_stride_dst_aligned, unpack_stride_neither_aligned);
+ latin1_simd_check_align!(pack_latin1, u16, u8, pack_stride_both_aligned, pack_stride_src_aligned, pack_stride_dst_aligned, pack_stride_neither_aligned);
+ } else if #[cfg(all(feature = "simd-accel", target_feature = "sse2"))] {
+ // SIMD with different instructions for aligned and unaligned loads and stores.
+ //
+ // Newer microarchitectures are not supposed to have a performance difference between
+ // aligned and unaligned SSE2 loads and stores when the address is actually aligned,
+ // but the benchmark results I see don't agree.
+
+ pub const SIMD_STRIDE_SIZE: usize = 16;
+
++ /// Safety-usable invariant: This should be identical to SIMD_STRIDE_SIZE (used by ascii_simd_check_align_unrolled)
+ pub const SIMD_ALIGNMENT: usize = 16;
+
+ pub const MAX_STRIDE_SIZE: usize = 16;
+
+ pub const SIMD_ALIGNMENT_MASK: usize = 15;
+
++ // Safety for stride macros: We stick to the load8_aligned/etc family of functions. We consistently name
++ // aligned/unaligned functions according to src/dst being aligned/unaligned
++
+ ascii_to_ascii_simd_double_stride!(ascii_to_ascii_simd_double_stride_both_aligned, store16_aligned);
+ ascii_to_ascii_simd_double_stride!(ascii_to_ascii_simd_double_stride_src_aligned, store16_unaligned);
+
+ ascii_to_basic_latin_simd_double_stride!(ascii_to_basic_latin_simd_double_stride_both_aligned, store8_aligned);
+ ascii_to_basic_latin_simd_double_stride!(ascii_to_basic_latin_simd_double_stride_src_aligned, store8_unaligned);
+
+ ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_both_aligned, load16_aligned, store16_aligned);
+ ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_src_aligned, load16_aligned, store16_unaligned);
+@@ -984,33 +1233,43 @@ cfg_if! {
+ basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_both_aligned, load8_aligned, store16_aligned);
+ basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_src_aligned, load8_aligned, store16_unaligned);
+ basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_dst_aligned, load8_unaligned, store16_aligned);
+ basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_neither_aligned, load8_unaligned, store16_unaligned);
+
+ pack_simd_stride!(pack_stride_both_aligned, load8_aligned, store16_aligned);
+ pack_simd_stride!(pack_stride_src_aligned, load8_aligned, store16_unaligned);
+
++ // Safety for conversion macros: We use the correct pattern of both/src/dst/neither/double_both/double_src here. All stride functions were produced
++ // by stride macros that universally munch a single SIMD_STRIDE_SIZE worth of elements.
++
+ ascii_simd_check_align_unrolled!(ascii_to_ascii, u8, u8, ascii_to_ascii_stride_both_aligned, ascii_to_ascii_stride_src_aligned, ascii_to_ascii_stride_neither_aligned, ascii_to_ascii_simd_double_stride_both_aligned, ascii_to_ascii_simd_double_stride_src_aligned);
+ ascii_simd_check_align_unrolled!(ascii_to_basic_latin, u8, u16, ascii_to_basic_latin_stride_both_aligned, ascii_to_basic_latin_stride_src_aligned, ascii_to_basic_latin_stride_neither_aligned, ascii_to_basic_latin_simd_double_stride_both_aligned, ascii_to_basic_latin_simd_double_stride_src_aligned);
+
+ ascii_simd_check_align!(basic_latin_to_ascii, u16, u8, basic_latin_to_ascii_stride_both_aligned, basic_latin_to_ascii_stride_src_aligned, basic_latin_to_ascii_stride_dst_aligned, basic_latin_to_ascii_stride_neither_aligned);
+ latin1_simd_check_align_unrolled!(unpack_latin1, u8, u16, unpack_stride_both_aligned, unpack_stride_src_aligned, unpack_stride_dst_aligned, unpack_stride_neither_aligned);
+ latin1_simd_check_align_unrolled!(pack_latin1, u16, u8, pack_stride_both_aligned, pack_stride_src_aligned, pack_stride_dst_aligned, pack_stride_neither_aligned);
+ } else if #[cfg(all(target_endian = "little", target_pointer_width = "64"))] {
+ // Aligned ALU word, little-endian, 64-bit
+
++ /// Safety invariant: this is the amount of bytes consumed by
++ /// unpack_alu. This will be twice the pointer width, as it consumes two usizes.
++ /// This is also the number of bytes produced by pack_alu.
++ /// This is also the number of u16 code units produced/consumed by unpack_alu/pack_alu respectively.
+ pub const ALU_STRIDE_SIZE: usize = 16;
+
+ pub const MAX_STRIDE_SIZE: usize = 16;
+
++ // Safety invariant: this is the pointer width in bytes
+ pub const ALU_ALIGNMENT: usize = 8;
+
++ // Safety invariant: this is a mask for getting the bits of a pointer not aligned to ALU_ALIGNMENT
+ pub const ALU_ALIGNMENT_MASK: usize = 7;
+
++ /// Safety: dst must point to valid space for writing four `usize`s
+ #[inline(always)]
+ unsafe fn unpack_alu(word: usize, second_word: usize, dst: *mut usize) {
+ let first = ((0x0000_0000_FF00_0000usize & word) << 24) |
+ ((0x0000_0000_00FF_0000usize & word) << 16) |
+ ((0x0000_0000_0000_FF00usize & word) << 8) |
+ (0x0000_0000_0000_00FFusize & word);
+ let second = ((0xFF00_0000_0000_0000usize & word) >> 8) |
+ ((0x00FF_0000_0000_0000usize & word) >> 16) |
+@@ -1019,22 +1278,24 @@ cfg_if! {
+ let third = ((0x0000_0000_FF00_0000usize & second_word) << 24) |
+ ((0x0000_0000_00FF_0000usize & second_word) << 16) |
+ ((0x0000_0000_0000_FF00usize & second_word) << 8) |
+ (0x0000_0000_0000_00FFusize & second_word);
+ let fourth = ((0xFF00_0000_0000_0000usize & second_word) >> 8) |
+ ((0x00FF_0000_0000_0000usize & second_word) >> 16) |
+ ((0x0000_FF00_0000_0000usize & second_word) >> 24) |
+ ((0x0000_00FF_0000_0000usize & second_word) >> 32);
++ // Safety: fn invariant used here
+ *dst = first;
+ *(dst.add(1)) = second;
+ *(dst.add(2)) = third;
+ *(dst.add(3)) = fourth;
+ }
+
++ /// Safety: dst must point to valid space for writing two `usize`s
+ #[inline(always)]
+ unsafe fn pack_alu(first: usize, second: usize, third: usize, fourth: usize, dst: *mut usize) {
+ let word = ((0x00FF_0000_0000_0000usize & second) << 8) |
+ ((0x0000_00FF_0000_0000usize & second) << 16) |
+ ((0x0000_0000_00FF_0000usize & second) << 24) |
+ ((0x0000_0000_0000_00FFusize & second) << 32) |
+ ((0x00FF_0000_0000_0000usize & first) >> 24) |
+ ((0x0000_00FF_0000_0000usize & first) >> 16) |
+@@ -1043,70 +1304,88 @@ cfg_if! {
+ let second_word = ((0x00FF_0000_0000_0000usize & fourth) << 8) |
+ ((0x0000_00FF_0000_0000usize & fourth) << 16) |
+ ((0x0000_0000_00FF_0000usize & fourth) << 24) |
+ ((0x0000_0000_0000_00FFusize & fourth) << 32) |
+ ((0x00FF_0000_0000_0000usize & third) >> 24) |
+ ((0x0000_00FF_0000_0000usize & third) >> 16) |
+ ((0x0000_0000_00FF_0000usize & third) >> 8) |
+ (0x0000_0000_0000_00FFusize & third);
++ // Safety: fn invariant used here
+ *dst = word;
+ *(dst.add(1)) = second_word;
+ }
+ } else if #[cfg(all(target_endian = "little", target_pointer_width = "32"))] {
+ // Aligned ALU word, little-endian, 32-bit
+
++ /// Safety invariant: this is the amount of bytes consumed by
++ /// unpack_alu. This will be twice the pointer width, as it consumes two usizes.
++ /// This is also the number of bytes produced by pack_alu.
++ /// This is also the number of u16 code units produced/consumed by unpack_alu/pack_alu respectively.
+ pub const ALU_STRIDE_SIZE: usize = 8;
+
+ pub const MAX_STRIDE_SIZE: usize = 8;
+
++ // Safety invariant: this is the pointer width in bytes
+ pub const ALU_ALIGNMENT: usize = 4;
+
++ // Safety invariant: this is a mask for getting the bits of a pointer not aligned to ALU_ALIGNMENT
+ pub const ALU_ALIGNMENT_MASK: usize = 3;
+
++ /// Safety: dst must point to valid space for writing four `usize`s
+ #[inline(always)]
+ unsafe fn unpack_alu(word: usize, second_word: usize, dst: *mut usize) {
+ let first = ((0x0000_FF00usize & word) << 8) |
+ (0x0000_00FFusize & word);
+ let second = ((0xFF00_0000usize & word) >> 8) |
+ ((0x00FF_0000usize & word) >> 16);
+ let third = ((0x0000_FF00usize & second_word) << 8) |
+ (0x0000_00FFusize & second_word);
+ let fourth = ((0xFF00_0000usize & second_word) >> 8) |
+ ((0x00FF_0000usize & second_word) >> 16);
++ // Safety: fn invariant used here
+ *dst = first;
+ *(dst.add(1)) = second;
+ *(dst.add(2)) = third;
+ *(dst.add(3)) = fourth;
+ }
+
++ /// Safety: dst must point to valid space for writing two `usize`s
+ #[inline(always)]
+ unsafe fn pack_alu(first: usize, second: usize, third: usize, fourth: usize, dst: *mut usize) {
+ let word = ((0x00FF_0000usize & second) << 8) |
+ ((0x0000_00FFusize & second) << 16) |
+ ((0x00FF_0000usize & first) >> 8) |
+ (0x0000_00FFusize & first);
+ let second_word = ((0x00FF_0000usize & fourth) << 8) |
+ ((0x0000_00FFusize & fourth) << 16) |
+ ((0x00FF_0000usize & third) >> 8) |
+ (0x0000_00FFusize & third);
++ // Safety: fn invariant used here
+ *dst = word;
+ *(dst.add(1)) = second_word;
+ }
+ } else if #[cfg(all(target_endian = "big", target_pointer_width = "64"))] {
+ // Aligned ALU word, big-endian, 64-bit
+
++ /// Safety invariant: this is the amount of bytes consumed by
++ /// unpack_alu. This will be twice the pointer width, as it consumes two usizes.
++ /// This is also the number of bytes produced by pack_alu.
++ /// This is also the number of u16 code units produced/consumed by unpack_alu/pack_alu respectively.
+ pub const ALU_STRIDE_SIZE: usize = 16;
+
+ pub const MAX_STRIDE_SIZE: usize = 16;
+
++ // Safety invariant: this is the pointer width in bytes
+ pub const ALU_ALIGNMENT: usize = 8;
+
++ // Safety invariant: this is a mask for getting the bits of a pointer not aligned to ALU_ALIGNMENT
+ pub const ALU_ALIGNMENT_MASK: usize = 7;
+
++ /// Safety: dst must point to valid space for writing four `usize`s
+ #[inline(always)]
+ unsafe fn unpack_alu(word: usize, second_word: usize, dst: *mut usize) {
+ let first = ((0xFF00_0000_0000_0000usize & word) >> 8) |
+ ((0x00FF_0000_0000_0000usize & word) >> 16) |
+ ((0x0000_FF00_0000_0000usize & word) >> 24) |
+ ((0x0000_00FF_0000_0000usize & word) >> 32);
+ let second = ((0x0000_0000_FF00_0000usize & word) << 24) |
+ ((0x0000_0000_00FF_0000usize & word) << 16) |
+@@ -1115,22 +1394,24 @@ cfg_if! {
+ let third = ((0xFF00_0000_0000_0000usize & second_word) >> 8) |
+ ((0x00FF_0000_0000_0000usize & second_word) >> 16) |
+ ((0x0000_FF00_0000_0000usize & second_word) >> 24) |
+ ((0x0000_00FF_0000_0000usize & second_word) >> 32);
+ let fourth = ((0x0000_0000_FF00_0000usize & second_word) << 24) |
+ ((0x0000_0000_00FF_0000usize & second_word) << 16) |
+ ((0x0000_0000_0000_FF00usize & second_word) << 8) |
+ (0x0000_0000_0000_00FFusize & second_word);
++ // Safety: fn invariant used here
+ *dst = first;
+ *(dst.add(1)) = second;
+ *(dst.add(2)) = third;
+ *(dst.add(3)) = fourth;
+ }
+
++ /// Safety: dst must point to valid space for writing two `usize`s
+ #[inline(always)]
+ unsafe fn pack_alu(first: usize, second: usize, third: usize, fourth: usize, dst: *mut usize) {
+ let word = ((0x00FF0000_00000000usize & first) << 8) |
+ ((0x000000FF_00000000usize & first) << 16) |
+ ((0x00000000_00FF0000usize & first) << 24) |
+ ((0x00000000_000000FFusize & first) << 32) |
+ ((0x00FF0000_00000000usize & second) >> 24) |
+ ((0x000000FF_00000000usize & second) >> 16) |
+@@ -1139,67 +1420,80 @@ cfg_if! {
+ let second_word = ((0x00FF0000_00000000usize & third) << 8) |
+ ((0x000000FF_00000000usize & third) << 16) |
+ ((0x00000000_00FF0000usize & third) << 24) |
+ ((0x00000000_000000FFusize & third) << 32) |
+ ((0x00FF0000_00000000usize & fourth) >> 24) |
+ ((0x000000FF_00000000usize & fourth) >> 16) |
+ ((0x00000000_00FF0000usize & fourth) >> 8) |
+ (0x00000000_000000FFusize & fourth);
++ // Safety: fn invariant used here
+ *dst = word;
+ *(dst.add(1)) = second_word;
+ }
+ } else if #[cfg(all(target_endian = "big", target_pointer_width = "32"))] {
+ // Aligned ALU word, big-endian, 32-bit
+
++ /// Safety invariant: this is the amount of bytes consumed by
++ /// unpack_alu. This will be twice the pointer width, as it consumes two usizes.
++ /// This is also the number of bytes produced by pack_alu.
++ /// This is also the number of u16 code units produced/consumed by unpack_alu/pack_alu respectively.
+ pub const ALU_STRIDE_SIZE: usize = 8;
+
+ pub const MAX_STRIDE_SIZE: usize = 8;
+
++ // Safety invariant: this is the pointer width in bytes
+ pub const ALU_ALIGNMENT: usize = 4;
+
++ // Safety invariant: this is a mask for getting the bits of a pointer not aligned to ALU_ALIGNMENT
+ pub const ALU_ALIGNMENT_MASK: usize = 3;
+
++ /// Safety: dst must point to valid space for writing four `usize`s
+ #[inline(always)]
+ unsafe fn unpack_alu(word: usize, second_word: usize, dst: *mut usize) {
+ let first = ((0xFF00_0000usize & word) >> 8) |
+ ((0x00FF_0000usize & word) >> 16);
+ let second = ((0x0000_FF00usize & word) << 8) |
+ (0x0000_00FFusize & word);
+ let third = ((0xFF00_0000usize & second_word) >> 8) |
+ ((0x00FF_0000usize & second_word) >> 16);
+ let fourth = ((0x0000_FF00usize & second_word) << 8) |
+ (0x0000_00FFusize & second_word);
++ // Safety: fn invariant used here
+ *dst = first;
+ *(dst.add(1)) = second;
+ *(dst.add(2)) = third;
+ *(dst.add(3)) = fourth;
+ }
+
++ /// Safety: dst must point to valid space for writing two `usize`s
+ #[inline(always)]
+ unsafe fn pack_alu(first: usize, second: usize, third: usize, fourth: usize, dst: *mut usize) {
+ let word = ((0x00FF_0000usize & first) << 8) |
+ ((0x0000_00FFusize & first) << 16) |
+ ((0x00FF_0000usize & second) >> 8) |
+ (0x0000_00FFusize & second);
+ let second_word = ((0x00FF_0000usize & third) << 8) |
+ ((0x0000_00FFusize & third) << 16) |
+ ((0x00FF_0000usize & fourth) >> 8) |
+ (0x0000_00FFusize & fourth);
++ // Safety: fn invariant used here
+ *dst = word;
+ *(dst.add(1)) = second_word;
+ }
+ } else {
+ ascii_naive!(ascii_to_ascii, u8, u8);
+ ascii_naive!(ascii_to_basic_latin, u8, u16);
+ ascii_naive!(basic_latin_to_ascii, u16, u8);
+ }
+ }
+
+ cfg_if! {
++ // Safety-usable invariant: this counts the zeroes from the "first byte" of utf-8 data packed into a usize
++ // with the target endianness
+ if #[cfg(target_endian = "little")] {
+ #[allow(dead_code)]
+ #[inline(always)]
+ fn count_zeros(word: usize) -> u32 {
+ word.trailing_zeros()
+ }
+ } else {
+ #[allow(dead_code)]
+@@ -1207,208 +1501,272 @@ cfg_if! {
+ fn count_zeros(word: usize) -> u32 {
+ word.leading_zeros()
+ }
+ }
+ }
+
+ cfg_if! {
+ if #[cfg(all(feature = "simd-accel", target_endian = "little", target_arch = "disabled"))] {
++ /// Safety-usable invariant: Will return the value and position of the first non-ASCII byte in the slice in a Some if found.
++ /// In other words, the first element of the Some is always `> 127`
+ #[inline(always)]
+ pub fn validate_ascii(slice: &[u8]) -> Option<(u8, usize)> {
+ let src = slice.as_ptr();
+ let len = slice.len();
+ let mut offset = 0usize;
++ // Safety: if this check succeeds we're valid for reading/writing at least `stride` elements.
+ if SIMD_STRIDE_SIZE <= len {
+ let len_minus_stride = len - SIMD_STRIDE_SIZE;
+ loop {
++ // Safety: src at offset is valid for a `SIMD_STRIDE_SIZE` read
+ let simd = unsafe { load16_unaligned(src.add(offset)) };
+ if !simd_is_ascii(simd) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // This is `offset > len - SIMD_STRIDE_SIZE` which means we always have at least `SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ while offset < len {
+ let code_unit = slice[offset];
+ if code_unit > 127 {
++ // Safety: Safety-usable invariant upheld here
+ return Some((code_unit, offset));
+ }
+ offset += 1;
+ }
+ None
+ }
+ } else if #[cfg(all(feature = "simd-accel", target_feature = "sse2"))] {
++ /// Safety-usable invariant: will return Some() when it encounters non-ASCII, with the first element in the Some being
++ /// guaranteed to be non-ASCII (> 127), and the second being the offset where it is found
+ #[inline(always)]
+ pub fn validate_ascii(slice: &[u8]) -> Option<(u8, usize)> {
+ let src = slice.as_ptr();
+ let len = slice.len();
+ let mut offset = 0usize;
++ // Safety: if this check succeeds we're valid for reading at least `stride` elements.
+ if SIMD_STRIDE_SIZE <= len {
+ // First, process one unaligned vector
++ // Safety: src is valid for a `SIMD_STRIDE_SIZE` read
+ let simd = unsafe { load16_unaligned(src) };
+ let mask = mask_ascii(simd);
+ if mask != 0 {
+ offset = mask.trailing_zeros() as usize;
+ let non_ascii = unsafe { *src.add(offset) };
+ return Some((non_ascii, offset));
+ }
+ offset = SIMD_STRIDE_SIZE;
++ // Safety: Now that offset has changed we don't yet know how much it is valid for
+
+ // We have now seen 16 ASCII bytes. Let's guess that
+ // there will be enough more to justify more expense
+ // in the case of non-ASCII.
+ // Use aligned reads for the sake of old microachitectures.
++ // Safety: this correctly calculates the number of src_units that need to be read before the remaining list is aligned.
++ // This is by definition less than SIMD_ALIGNMENT, which is defined to be equal to SIMD_STRIDE_SIZE.
+ let until_alignment = unsafe { (SIMD_ALIGNMENT - ((src.add(offset) as usize) & SIMD_ALIGNMENT_MASK)) & SIMD_ALIGNMENT_MASK };
+ // This addition won't overflow, because even in the 32-bit PAE case the
+ // address space holds enough code that the slice length can't be that
+ // close to address space size.
+ // offset now equals SIMD_STRIDE_SIZE, hence times 3 below.
++ //
++ // Safety: if this check succeeds we're valid for reading at least `2 * SIMD_STRIDE_SIZE` elements plus `until_alignment`.
++ // The extra SIMD_STRIDE_SIZE in the condition is because `offset` is already `SIMD_STRIDE_SIZE`.
+ if until_alignment + (SIMD_STRIDE_SIZE * 3) <= len {
+ if until_alignment != 0 {
++ // Safety: this is safe to call since we're valid for this read (and more), and don't care about alignment
++ // This will copy over bytes that get decoded twice since it's not incrementing `offset` by SIMD_STRIDE_SIZE. This is fine.
+ let simd = unsafe { load16_unaligned(src.add(offset)) };
+ let mask = mask_ascii(simd);
+ if mask != 0 {
+ offset += mask.trailing_zeros() as usize;
+ let non_ascii = unsafe { *src.add(offset) };
+ return Some((non_ascii, offset));
+ }
+ offset += until_alignment;
+ }
++ // Safety: At this point we're valid for reading 2*SIMD_STRIDE_SIZE elements
++ // Safety: Now `offset` is aligned for `src`
+ let len_minus_stride_times_two = len - (SIMD_STRIDE_SIZE * 2);
+ loop {
++ // Safety: We were valid for this read, and were aligned.
+ let first = unsafe { load16_aligned(src.add(offset)) };
+ let second = unsafe { load16_aligned(src.add(offset + SIMD_STRIDE_SIZE)) };
+ if !simd_is_ascii(first | second) {
++ // Safety: mask_ascii produces a mask of all the high bits.
+ let mask_first = mask_ascii(first);
+ if mask_first != 0 {
++ // Safety: on little endian systems this will be the number of ascii bytes
++ // before the first non-ascii, i.e. valid for indexing src
++ // TODO SAFETY: What about big-endian systems?
+ offset += mask_first.trailing_zeros() as usize;
+ } else {
+ let mask_second = mask_ascii(second);
++ // Safety: on little endian systems this will be the number of ascii bytes
++ // before the first non-ascii, i.e. valid for indexing src
+ offset += SIMD_STRIDE_SIZE + mask_second.trailing_zeros() as usize;
+ }
++ // Safety: We know this is non-ASCII, and can uphold the safety-usable invariant here
+ let non_ascii = unsafe { *src.add(offset) };
++
+ return Some((non_ascii, offset));
+ }
+ offset += SIMD_STRIDE_SIZE * 2;
++ // Safety: This is `offset > len - 2 * SIMD_STRIDE_SIZE` which means we always have at least `2 * SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride_times_two {
+ break;
+ }
+ }
++ // Safety: if this check succeeds we're valid for reading at least `SIMD_STRIDE_SIZE`
+ if offset + SIMD_STRIDE_SIZE <= len {
+- let simd = unsafe { load16_aligned(src.add(offset)) };
+- let mask = mask_ascii(simd);
++ // Safety: We were valid for this read, and were aligned.
++ let simd = unsafe { load16_aligned(src.add(offset)) };
++ // Safety: mask_ascii produces a mask of all the high bits.
++ let mask = mask_ascii(simd);
+ if mask != 0 {
++ // Safety: on little endian systems this will be the number of ascii bytes
++ // before the first non-ascii, i.e. valid for indexing src
+ offset += mask.trailing_zeros() as usize;
+ let non_ascii = unsafe { *src.add(offset) };
++ // Safety: We know this is non-ASCII, and can uphold the safety-usable invariant here
+ return Some((non_ascii, offset));
+ }
+ offset += SIMD_STRIDE_SIZE;
+ }
+ } else {
++ // Safety: this is the unaligned branch
+ // At most two iterations, so unroll
++ // Safety: if this check succeeds we're valid for reading at least `SIMD_STRIDE_SIZE`
+ if offset + SIMD_STRIDE_SIZE <= len {
++ // Safety: We're valid for this read but must use an unaligned read
+ let simd = unsafe { load16_unaligned(src.add(offset)) };
+ let mask = mask_ascii(simd);
+ if mask != 0 {
+ offset += mask.trailing_zeros() as usize;
+ let non_ascii = unsafe { *src.add(offset) };
++ // Safety-usable invariant upheld here (same as above)
+ return Some((non_ascii, offset));
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: if this check succeeds we're valid for reading at least `SIMD_STRIDE_SIZE`
+ if offset + SIMD_STRIDE_SIZE <= len {
++ // Safety: We're valid for this read but must use an unaligned read
+ let simd = unsafe { load16_unaligned(src.add(offset)) };
+ let mask = mask_ascii(simd);
+ if mask != 0 {
+ offset += mask.trailing_zeros() as usize;
+ let non_ascii = unsafe { *src.add(offset) };
++ // Safety-usable invariant upheld here (same as above)
+ return Some((non_ascii, offset));
+ }
+ offset += SIMD_STRIDE_SIZE;
+ }
+ }
+ }
+ }
+ while offset < len {
++ // Safety: relies straightforwardly on the `len` invariant
+ let code_unit = unsafe { *(src.add(offset)) };
+ if code_unit > 127 {
++ // Safety-usable invariant upheld here
+ return Some((code_unit, offset));
+ }
+ offset += 1;
+ }
+ None
+ }
+ } else {
++ // Safety-usable invariant: returns byte index of first non-ascii byte
+ #[inline(always)]
+ fn find_non_ascii(word: usize, second_word: usize) -> Option<usize> {
+ let word_masked = word & ASCII_MASK;
+ let second_masked = second_word & ASCII_MASK;
+ if (word_masked | second_masked) == 0 {
++ // Both are ascii, invariant upheld
+ return None;
+ }
+ if word_masked != 0 {
+ let zeros = count_zeros(word_masked);
+- // `zeros` now contains 7 (for the seven bits of non-ASCII)
++ // `zeros` now contains 0 to 7 (for the seven bits of masked ASCII in little endian,
++ // or up to 7 bits of non-ASCII in big endian if the first byte is non-ASCII)
+ // plus 8 times the number of ASCII in text order before the
+ // non-ASCII byte in the little-endian case or 8 times the number of ASCII in
+ // text order before the non-ASCII byte in the big-endian case.
+ let num_ascii = (zeros >> 3) as usize;
++ // Safety-usable invariant upheld here
+ return Some(num_ascii);
+ }
+ let zeros = count_zeros(second_masked);
+- // `zeros` now contains 7 (for the seven bits of non-ASCII)
++ // `zeros` now contains 0 to 7 (for the seven bits of masked ASCII in little endian,
++ // or up to 7 bits of non-ASCII in big endian if the first byte is non-ASCII)
+ // plus 8 times the number of ASCII in text order before the
+ // non-ASCII byte in the little-endian case or 8 times the number of ASCII in
+ // text order before the non-ASCII byte in the big-endian case.
+ let num_ascii = (zeros >> 3) as usize;
++ // Safety-usable invariant upheld here
+ Some(ALU_ALIGNMENT + num_ascii)
+ }
+
++ /// Safety: `src` must be valid for the reads of two `usize`s
++ ///
++ /// Safety-usable invariant: will return byte index of first non-ascii byte
+ #[inline(always)]
+ unsafe fn validate_ascii_stride(src: *const usize) -> Option<usize> {
+ let word = *src;
+ let second_word = *(src.add(1));
+ find_non_ascii(word, second_word)
+ }
+
++ /// Safety-usable invariant: will return Some() when it encounters non-ASCII, with the first element in the Some being
++ /// guaranteed to be non-ASCII (> 127), and the second being the offset where it is found
+ #[cfg_attr(feature = "cargo-clippy", allow(cast_ptr_alignment))]
+ #[inline(always)]
+ pub fn validate_ascii(slice: &[u8]) -> Option<(u8, usize)> {
+ let src = slice.as_ptr();
+ let len = slice.len();
+ let mut offset = 0usize;
+ let mut until_alignment = (ALU_ALIGNMENT - ((src as usize) & ALU_ALIGNMENT_MASK)) & ALU_ALIGNMENT_MASK;
++ // Safety: If this check fails we're valid to read `until_alignment + ALU_STRIDE_SIZE` elements
+ if until_alignment + ALU_STRIDE_SIZE <= len {
+ while until_alignment != 0 {
+ let code_unit = slice[offset];
+ if code_unit > 127 {
++ // Safety-usable invairant upheld here
+ return Some((code_unit, offset));
+ }
+ offset += 1;
+ until_alignment -= 1;
+ }
++ // Safety: At this point we have read until_alignment elements and
++ // are valid for `ALU_STRIDE_SIZE` more.
+ let len_minus_stride = len - ALU_STRIDE_SIZE;
+ loop {
++ // Safety: we were valid for this read
+ let ptr = unsafe { src.add(offset) as *const usize };
+ if let Some(num_ascii) = unsafe { validate_ascii_stride(ptr) } {
+ offset += num_ascii;
++ // Safety-usable invairant upheld here using the invariant from validate_ascii_stride()
+ return Some((unsafe { *(src.add(offset)) }, offset));
+ }
+ offset += ALU_STRIDE_SIZE;
++ // Safety: This is `offset > ALU_STRIDE_SIZE` which means we always have at least `2 * ALU_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ while offset < len {
+ let code_unit = slice[offset];
+ if code_unit > 127 {
++ // Safety-usable invairant upheld here
+ return Some((code_unit, offset));
+ }
+ offset += 1;
+ }
+ None
+ }
+
+ }
+@@ -1423,70 +1781,88 @@ cfg_if! {
+ // vector reads without vector writes.
+
+ pub const ALU_STRIDE_SIZE: usize = 8;
+
+ pub const ALU_ALIGNMENT: usize = 4;
+
+ pub const ALU_ALIGNMENT_MASK: usize = 3;
+ } else {
++ // Safety: src points to two valid `usize`s, dst points to four valid `usize`s
+ #[inline(always)]
+ unsafe fn unpack_latin1_stride_alu(src: *const usize, dst: *mut usize) {
++ // Safety: src safety invariant used here
+ let word = *src;
+ let second_word = *(src.add(1));
++ // Safety: dst safety invariant passed down
+ unpack_alu(word, second_word, dst);
+ }
+
++ // Safety: src points to four valid `usize`s, dst points to two valid `usize`s
+ #[inline(always)]
+ unsafe fn pack_latin1_stride_alu(src: *const usize, dst: *mut usize) {
++ // Safety: src safety invariant used here
+ let first = *src;
+ let second = *(src.add(1));
+ let third = *(src.add(2));
+ let fourth = *(src.add(3));
++ // Safety: dst safety invariant passed down
+ pack_alu(first, second, third, fourth, dst);
+ }
+
++ // Safety: src points to two valid `usize`s, dst points to four valid `usize`s
+ #[inline(always)]
+ unsafe fn ascii_to_basic_latin_stride_alu(src: *const usize, dst: *mut usize) -> bool {
++ // Safety: src safety invariant used here
+ let word = *src;
+ let second_word = *(src.add(1));
+ // Check if the words contains non-ASCII
+ if (word & ASCII_MASK) | (second_word & ASCII_MASK) != 0 {
+ return false;
+ }
++ // Safety: dst safety invariant passed down
+ unpack_alu(word, second_word, dst);
+ true
+ }
+
++ // Safety: src points four valid `usize`s, dst points to two valid `usize`s
+ #[inline(always)]
+ unsafe fn basic_latin_to_ascii_stride_alu(src: *const usize, dst: *mut usize) -> bool {
++ // Safety: src safety invariant used here
+ let first = *src;
+ let second = *(src.add(1));
+ let third = *(src.add(2));
+ let fourth = *(src.add(3));
+ if (first & BASIC_LATIN_MASK) | (second & BASIC_LATIN_MASK) | (third & BASIC_LATIN_MASK) | (fourth & BASIC_LATIN_MASK) != 0 {
+ return false;
+ }
++ // Safety: dst safety invariant passed down
+ pack_alu(first, second, third, fourth, dst);
+ true
+ }
+
++ // Safety: src, dst both point to two valid `usize`s each
++ // Safety-usable invariant: Will return byte index of first non-ascii byte.
+ #[inline(always)]
+ unsafe fn ascii_to_ascii_stride(src: *const usize, dst: *mut usize) -> Option<usize> {
++ // Safety: src safety invariant used here
+ let word = *src;
+ let second_word = *(src.add(1));
++ // Safety: src safety invariant used here
+ *dst = word;
+ *(dst.add(1)) = second_word;
++ // Relies on safety-usable invariant here
+ find_non_ascii(word, second_word)
+ }
+
+ basic_latin_alu!(ascii_to_basic_latin, u8, u16, ascii_to_basic_latin_stride_alu);
+ basic_latin_alu!(basic_latin_to_ascii, u16, u8, basic_latin_to_ascii_stride_alu);
+ latin1_alu!(unpack_latin1, u8, u16, unpack_latin1_stride_alu);
+ latin1_alu!(pack_latin1, u16, u8, pack_latin1_stride_alu);
++ // Safety invariant upheld: ascii_to_ascii_stride will return byte index of first non-ascii if found
+ ascii_alu!(ascii_to_ascii, u8, u8, ascii_to_ascii_stride);
+ }
+ }
+
+ pub fn ascii_valid_up_to(bytes: &[u8]) -> usize {
+ match validate_ascii(bytes) {
+ None => bytes.len(),
+ Some((_, num_valid)) => num_valid,
+diff --git a/third_party/rust/encoding_rs/src/handles.rs b/third_party/rust/encoding_rs/src/handles.rs
+--- third_party/rust/encoding_rs/src/handles.rs
++++ third_party/rust/encoding_rs/src/handles.rs
+@@ -29,17 +29,17 @@ use crate::simd_funcs::*;
+ #[cfg(all(
+ feature = "simd-accel",
+ any(
+ target_feature = "sse2",
+ all(target_endian = "little", target_arch = "aarch64"),
+ all(target_endian = "little", target_feature = "neon")
+ )
+ ))]
+-use packed_simd::u16x8;
++use core::simd::u16x8;
+
+ use super::DecoderResult;
+ use super::EncoderResult;
+ use crate::ascii::*;
+ use crate::utf_8::convert_utf8_to_utf16_up_to_invalid;
+ use crate::utf_8::utf8_valid_up_to;
+
+ pub enum Space<T> {
+@@ -85,84 +85,100 @@ impl Endian for LittleEndian {
+ const OPPOSITE_ENDIAN: bool = false;
+
+ #[cfg(target_endian = "big")]
+ const OPPOSITE_ENDIAN: bool = true;
+ }
+
+ #[derive(Debug, Copy, Clone)]
+ struct UnalignedU16Slice {
++ // Safety invariant: ptr must be valid for reading 2*len bytes
+ ptr: *const u8,
+ len: usize,
+ }
+
+ impl UnalignedU16Slice {
++ /// Safety: ptr must be valid for reading 2*len bytes
+ #[inline(always)]
+ pub unsafe fn new(ptr: *const u8, len: usize) -> UnalignedU16Slice {
++ // Safety: field invariant passed up to caller here
+ UnalignedU16Slice { ptr, len }
+ }
+
+ #[inline(always)]
+ pub fn trim_last(&mut self) {
+ assert!(self.len > 0);
++ // Safety: invariant upheld here: a slice is still valid with a shorter len
+ self.len -= 1;
+ }
+
+ #[inline(always)]
+ pub fn at(&self, i: usize) -> u16 {
+ use core::mem::MaybeUninit;
+
+ assert!(i < self.len);
+ unsafe {
+ let mut u: MaybeUninit<u16> = MaybeUninit::uninit();
++ // Safety: i is at most len - 1, which works here
+ ::core::ptr::copy_nonoverlapping(self.ptr.add(i * 2), u.as_mut_ptr() as *mut u8, 2);
++ // Safety: valid read above lets us do this
+ u.assume_init()
+ }
+ }
+
+ #[cfg(feature = "simd-accel")]
+ #[inline(always)]
+ pub fn simd_at(&self, i: usize) -> u16x8 {
++ // Safety: i/len are on the scale of u16s, each one corresponds to 2 u8s
+ assert!(i + SIMD_STRIDE_SIZE / 2 <= self.len);
+ let byte_index = i * 2;
++ // Safety: load16_unaligned needs SIMD_STRIDE_SIZE=16 u8 elements to read,
++ // or 16/2 = 8 u16 elements to read.
++ // We have checked that we have at least that many above.
++
+ unsafe { to_u16_lanes(load16_unaligned(self.ptr.add(byte_index))) }
+ }
+
+ #[inline(always)]
+ pub fn len(&self) -> usize {
+ self.len
+ }
+
+ #[inline(always)]
+ pub fn tail(&self, from: usize) -> UnalignedU16Slice {
+ // XXX the return value should be restricted not to
+ // outlive self.
+ assert!(from <= self.len);
++ // Safety: This upholds the same invariant: `from` is in bounds and we're returning a shorter slice
+ unsafe { UnalignedU16Slice::new(self.ptr.add(from * 2), self.len - from) }
+ }
+
+ #[cfg(feature = "simd-accel")]
+ #[inline(always)]
+ pub fn copy_bmp_to<E: Endian>(&self, other: &mut [u16]) -> Option<(u16, usize)> {
+ assert!(self.len <= other.len());
+ let mut offset = 0;
++ // Safety: SIMD_STRIDE_SIZE is measured in bytes, whereas len is in u16s. We check we can
++ // munch SIMD_STRIDE_SIZE / 2 u16s which means we can write SIMD_STRIDE_SIZE u8s
+ if SIMD_STRIDE_SIZE / 2 <= self.len {
+ let len_minus_stride = self.len - SIMD_STRIDE_SIZE / 2;
+ loop {
+ let mut simd = self.simd_at(offset);
+ if E::OPPOSITE_ENDIAN {
+ simd = simd_byte_swap(simd);
+ }
++ // Safety: we have enough space on the other side to write this
+ unsafe {
+ store8_unaligned(other.as_mut_ptr().add(offset), simd);
+ }
+ if contains_surrogates(simd) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE / 2;
++ // Safety: This ensures we still have space for writing SIMD_STRIDE_SIZE u8s
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ while offset < self.len {
+ let unit = swap_if_opposite_endian::<E>(self.at(offset));
+ other[offset] = unit;
+@@ -231,33 +247,37 @@ fn copy_unaligned_basic_latin_to_ascii<E
+ #[cfg(feature = "simd-accel")]
+ #[inline(always)]
+ fn copy_unaligned_basic_latin_to_ascii<E: Endian>(
+ src: UnalignedU16Slice,
+ dst: &mut [u8],
+ ) -> CopyAsciiResult<usize, (u16, usize)> {
+ let len = ::core::cmp::min(src.len(), dst.len());
+ let mut offset = 0;
++ // Safety: This check ensures we are able to read/write at least SIMD_STRIDE_SIZE elements
+ if SIMD_STRIDE_SIZE <= len {
+ let len_minus_stride = len - SIMD_STRIDE_SIZE;
+ loop {
+ let mut first = src.simd_at(offset);
+ let mut second = src.simd_at(offset + (SIMD_STRIDE_SIZE / 2));
+ if E::OPPOSITE_ENDIAN {
+ first = simd_byte_swap(first);
+ second = simd_byte_swap(second);
+ }
+ if !simd_is_basic_latin(first | second) {
+ break;
+ }
+ let packed = simd_pack(first, second);
++ // Safety: We are able to write SIMD_STRIDE_SIZE elements in this iteration
+ unsafe {
+ store16_unaligned(dst.as_mut_ptr().add(offset), packed);
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE`, which ensures that we can write at least SIMD_STRIDE_SIZE elements
++ // in the next iteration
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ copy_unaligned_basic_latin_to_ascii_alu::<E>(src.tail(offset), &mut dst[offset..], offset)
+ }
+
+@@ -632,94 +652,106 @@ impl<'a> Utf16Destination<'a> {
+ #[inline(always)]
+ fn write_astral(&mut self, astral: u32) {
+ debug_assert!(astral > 0xFFFF);
+ debug_assert!(astral <= 0x10_FFFF);
+ self.write_code_unit((0xD7C0 + (astral >> 10)) as u16);
+ self.write_code_unit((0xDC00 + (astral & 0x3FF)) as u16);
+ }
+ #[inline(always)]
+- pub fn write_surrogate_pair(&mut self, high: u16, low: u16) {
++ fn write_surrogate_pair(&mut self, high: u16, low: u16) {
+ self.write_code_unit(high);
+ self.write_code_unit(low);
+ }
+ #[inline(always)]
+ fn write_big5_combination(&mut self, combined: u16, combining: u16) {
+ self.write_bmp_excl_ascii(combined);
+ self.write_bmp_excl_ascii(combining);
+ }
++ // Safety-usable invariant: CopyAsciiResult::GoOn will only contain bytes >=0x80
+ #[inline(always)]
+ pub fn copy_ascii_from_check_space_bmp<'b>(
+ &'b mut self,
+ source: &mut ByteSource,
+ ) -> CopyAsciiResult<(DecoderResult, usize, usize), (u8, Utf16BmpHandle<'b, 'a>)> {
+ let non_ascii_ret = {
+ let src_remaining = &source.slice[source.pos..];
+ let dst_remaining = &mut self.slice[self.pos..];
+ let (pending, length) = if dst_remaining.len() < src_remaining.len() {
+ (DecoderResult::OutputFull, dst_remaining.len())
+ } else {
+ (DecoderResult::InputEmpty, src_remaining.len())
+ };
++ // Safety: This function is documented as needing valid pointers for src/dest and len, which
++ // is true since we've passed the minumum length of the two
+ match unsafe {
+ ascii_to_basic_latin(src_remaining.as_ptr(), dst_remaining.as_mut_ptr(), length)
+ } {
+ None => {
+ source.pos += length;
+ self.pos += length;
+ return CopyAsciiResult::Stop((pending, source.pos, self.pos));
+ }
++ // Safety: the function is documented as returning bytes >=0x80 in the Some
+ Some((non_ascii, consumed)) => {
+ source.pos += consumed;
+ self.pos += consumed;
+ source.pos += 1; // +1 for non_ascii
++ // Safety: non-ascii bubbled out here
+ non_ascii
+ }
+ }
+ };
++ // Safety: non-ascii returned here
+ CopyAsciiResult::GoOn((non_ascii_ret, Utf16BmpHandle::new(self)))
+ }
++ // Safety-usable invariant: CopyAsciiResult::GoOn will only contain bytes >=0x80
+ #[inline(always)]
+ pub fn copy_ascii_from_check_space_astral<'b>(
+ &'b mut self,
+ source: &mut ByteSource,
+ ) -> CopyAsciiResult<(DecoderResult, usize, usize), (u8, Utf16AstralHandle<'b, 'a>)> {
+ let non_ascii_ret = {
+ let dst_len = self.slice.len();
+ let src_remaining = &source.slice[source.pos..];
+ let dst_remaining = &mut self.slice[self.pos..];
+ let (pending, length) = if dst_remaining.len() < src_remaining.len() {
+ (DecoderResult::OutputFull, dst_remaining.len())
+ } else {
+ (DecoderResult::InputEmpty, src_remaining.len())
+ };
++ // Safety: This function is documented as needing valid pointers for src/dest and len, which
++ // is true since we've passed the minumum length of the two
+ match unsafe {
+ ascii_to_basic_latin(src_remaining.as_ptr(), dst_remaining.as_mut_ptr(), length)
+ } {
+ None => {
+ source.pos += length;
+ self.pos += length;
+ return CopyAsciiResult::Stop((pending, source.pos, self.pos));
+ }
++ // Safety: the function is documented as returning bytes >=0x80 in the Some
+ Some((non_ascii, consumed)) => {
+ source.pos += consumed;
+ self.pos += consumed;
+ if self.pos + 1 < dst_len {
+ source.pos += 1; // +1 for non_ascii
++ // Safety: non-ascii bubbled out here
+ non_ascii
+ } else {
+ return CopyAsciiResult::Stop((
+ DecoderResult::OutputFull,
+ source.pos,
+ self.pos,
+ ));
+ }
+ }
+ }
+ };
++ // Safety: non-ascii returned here
+ CopyAsciiResult::GoOn((non_ascii_ret, Utf16AstralHandle::new(self)))
+ }
+ #[inline(always)]
+ pub fn copy_utf8_up_to_invalid_from(&mut self, source: &mut ByteSource) {
+ let src_remaining = &source.slice[source.pos..];
+ let dst_remaining = &mut self.slice[self.pos..];
+ let (read, written) = convert_utf8_to_utf16_up_to_invalid(src_remaining, dst_remaining);
+ source.pos += read;
+diff --git a/third_party/rust/encoding_rs/src/lib.rs b/third_party/rust/encoding_rs/src/lib.rs
+--- third_party/rust/encoding_rs/src/lib.rs
++++ third_party/rust/encoding_rs/src/lib.rs
+@@ -684,37 +684,26 @@
+ //! <tr><td>TIS-620</td><td>windows-874</td></tr>
+ //! </tbody>
+ //! </table>
+ //!
+ //! See the section [_UTF-16LE, UTF-16BE and Unicode Encoding Schemes_](#utf-16le-utf-16be-and-unicode-encoding-schemes)
+ //! for discussion about the UTF-16 family.
+
+ #![no_std]
+-#![cfg_attr(feature = "simd-accel", feature(core_intrinsics))]
++#![cfg_attr(feature = "simd-accel", feature(core_intrinsics, portable_simd))]
+
+ #[cfg(feature = "alloc")]
+ #[cfg_attr(test, macro_use)]
+ extern crate alloc;
+
+ extern crate core;
+ #[macro_use]
+ extern crate cfg_if;
+
+-#[cfg(all(
+- feature = "simd-accel",
+- any(
+- target_feature = "sse2",
+- all(target_endian = "little", target_arch = "aarch64"),
+- all(target_endian = "little", target_feature = "neon")
+- )
+-))]
+-#[macro_use(shuffle)]
+-extern crate packed_simd;
+-
+ #[cfg(feature = "serde")]
+ extern crate serde;
+
+ #[cfg(all(test, feature = "serde"))]
+ extern crate bincode;
+ #[cfg(all(test, feature = "serde"))]
+ #[macro_use]
+ extern crate serde_derive;
+diff --git a/third_party/rust/encoding_rs/src/mem.rs b/third_party/rust/encoding_rs/src/mem.rs
+--- third_party/rust/encoding_rs/src/mem.rs
++++ third_party/rust/encoding_rs/src/mem.rs
+@@ -111,16 +111,21 @@ macro_rules! by_unit_check_alu {
+ until_alignment -= 1;
+ }
+ if accu >= $bound {
+ return false;
+ }
+ }
+ let len_minus_stride = len - ALU_ALIGNMENT / unit_size;
+ if offset + (4 * (ALU_ALIGNMENT / unit_size)) <= len {
++ // Safety: the above check lets us perform 4 consecutive reads of
++ // length ALU_ALIGNMENT / unit_size. ALU_ALIGNMENT is the size of usize, and unit_size
++ // is the size of the `src` pointer, so this is equal to performing four usize reads.
++ //
++ // This invariant is upheld on all loop iterations
+ let len_minus_unroll = len - (4 * (ALU_ALIGNMENT / unit_size));
+ loop {
+ let unroll_accu = unsafe { *(src.add(offset) as *const usize) }
+ | unsafe {
+ *(src.add(offset + (ALU_ALIGNMENT / unit_size)) as *const usize)
+ }
+ | unsafe {
+ *(src.add(offset + (2 * (ALU_ALIGNMENT / unit_size)))
+@@ -129,22 +134,24 @@ macro_rules! by_unit_check_alu {
+ | unsafe {
+ *(src.add(offset + (3 * (ALU_ALIGNMENT / unit_size)))
+ as *const usize)
+ };
+ if unroll_accu & $mask != 0 {
+ return false;
+ }
+ offset += 4 * (ALU_ALIGNMENT / unit_size);
++ // Safety: this check lets us continue to perform the 4 reads earlier
+ if offset > len_minus_unroll {
+ break;
+ }
+ }
+ }
+ while offset <= len_minus_stride {
++ // Safety: the above check lets us perform one usize read.
+ accu |= unsafe { *(src.add(offset) as *const usize) };
+ offset += ALU_ALIGNMENT / unit_size;
+ }
+ }
+ }
+ for &unit in &buffer[offset..] {
+ accu |= unit as usize;
+ }
+@@ -184,16 +191,21 @@ macro_rules! by_unit_check_simd {
+ until_alignment -= 1;
+ }
+ if accu >= $bound {
+ return false;
+ }
+ }
+ let len_minus_stride = len - SIMD_STRIDE_SIZE / unit_size;
+ if offset + (4 * (SIMD_STRIDE_SIZE / unit_size)) <= len {
++ // Safety: the above check lets us perform 4 consecutive reads of
++ // length SIMD_STRIDE_SIZE / unit_size. SIMD_STRIDE_SIZE is the size of $simd_ty, and unit_size
++ // is the size of the `src` pointer, so this is equal to performing four $simd_ty reads.
++ //
++ // This invariant is upheld on all loop iterations
+ let len_minus_unroll = len - (4 * (SIMD_STRIDE_SIZE / unit_size));
+ loop {
+ let unroll_accu = unsafe { *(src.add(offset) as *const $simd_ty) }
+ | unsafe {
+ *(src.add(offset + (SIMD_STRIDE_SIZE / unit_size))
+ as *const $simd_ty)
+ }
+ | unsafe {
+@@ -203,23 +215,25 @@ macro_rules! by_unit_check_simd {
+ | unsafe {
+ *(src.add(offset + (3 * (SIMD_STRIDE_SIZE / unit_size)))
+ as *const $simd_ty)
+ };
+ if !$func(unroll_accu) {
+ return false;
+ }
+ offset += 4 * (SIMD_STRIDE_SIZE / unit_size);
++ // Safety: this check lets us continue to perform the 4 reads earlier
+ if offset > len_minus_unroll {
+ break;
+ }
+ }
+ }
+ let mut simd_accu = $splat;
+ while offset <= len_minus_stride {
++ // Safety: the above check lets us perform one $simd_ty read.
+ simd_accu = simd_accu | unsafe { *(src.add(offset) as *const $simd_ty) };
+ offset += SIMD_STRIDE_SIZE / unit_size;
+ }
+ if !$func(simd_accu) {
+ return false;
+ }
+ }
+ }
+@@ -229,18 +243,18 @@ macro_rules! by_unit_check_simd {
+ accu < $bound
+ }
+ };
+ }
+
+ cfg_if! {
+ if #[cfg(all(feature = "simd-accel", any(target_feature = "sse2", all(target_endian = "little", target_arch = "aarch64"), all(target_endian = "little", target_feature = "neon"))))] {
+ use crate::simd_funcs::*;
+- use packed_simd::u8x16;
+- use packed_simd::u16x8;
++ use core::simd::u8x16;
++ use core::simd::u16x8;
+
+ const SIMD_ALIGNMENT: usize = 16;
+
+ const SIMD_ALIGNMENT_MASK: usize = 15;
+
+ by_unit_check_simd!(is_ascii_impl, u8, u8x16::splat(0), u8x16, 0x80, simd_is_ascii);
+ by_unit_check_simd!(is_basic_latin_impl, u16, u16x8::splat(0), u16x8, 0x80, simd_is_basic_latin);
+ by_unit_check_simd!(is_utf16_latin1_impl, u16, u16x8::splat(0), u16x8, 0x100, simd_is_latin1);
+diff --git a/third_party/rust/encoding_rs/src/simd_funcs.rs b/third_party/rust/encoding_rs/src/simd_funcs.rs
+--- third_party/rust/encoding_rs/src/simd_funcs.rs
++++ third_party/rust/encoding_rs/src/simd_funcs.rs
+@@ -2,65 +2,84 @@
+ // file at the top-level directory of this distribution.
+ //
+ // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+ // https://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+ // <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your
+ // option. This file may not be copied, modified, or distributed
+ // except according to those terms.
+
+-use packed_simd::u16x8;
+-use packed_simd::u8x16;
+-use packed_simd::IntoBits;
++use any_all_workaround::all_mask16x8;
++use any_all_workaround::all_mask8x16;
++use any_all_workaround::any_mask16x8;
++use any_all_workaround::any_mask8x16;
++use core::simd::cmp::SimdPartialEq;
++use core::simd::cmp::SimdPartialOrd;
++use core::simd::mask16x8;
++use core::simd::mask8x16;
++use core::simd::simd_swizzle;
++use core::simd::u16x8;
++use core::simd::u8x16;
++use core::simd::ToBytes;
+
+ // TODO: Migrate unaligned access to stdlib code if/when the RFC
+ // https://github.com/rust-lang/rfcs/pull/1725 is implemented.
+
++/// Safety invariant: ptr must be valid for an unaligned read of 16 bytes
+ #[inline(always)]
+ pub unsafe fn load16_unaligned(ptr: *const u8) -> u8x16 {
+- let mut simd = ::core::mem::uninitialized();
+- ::core::ptr::copy_nonoverlapping(ptr, &mut simd as *mut u8x16 as *mut u8, 16);
+- simd
++ let mut simd = ::core::mem::MaybeUninit::<u8x16>::uninit();
++ ::core::ptr::copy_nonoverlapping(ptr, simd.as_mut_ptr() as *mut u8, 16);
++ // Safety: copied 16 bytes of initialized memory into this, it is now initialized
++ simd.assume_init()
+ }
+
++/// Safety invariant: ptr must be valid for an aligned-for-u8x16 read of 16 bytes
+ #[allow(dead_code)]
+ #[inline(always)]
+ pub unsafe fn load16_aligned(ptr: *const u8) -> u8x16 {
+ *(ptr as *const u8x16)
+ }
+
++/// Safety invariant: ptr must be valid for an unaligned store of 16 bytes
+ #[inline(always)]
+ pub unsafe fn store16_unaligned(ptr: *mut u8, s: u8x16) {
+ ::core::ptr::copy_nonoverlapping(&s as *const u8x16 as *const u8, ptr, 16);
+ }
+
++/// Safety invariant: ptr must be valid for an aligned-for-u8x16 store of 16 bytes
+ #[allow(dead_code)]
+ #[inline(always)]
+ pub unsafe fn store16_aligned(ptr: *mut u8, s: u8x16) {
+ *(ptr as *mut u8x16) = s;
+ }
+
++/// Safety invariant: ptr must be valid for an unaligned read of 16 bytes
+ #[inline(always)]
+ pub unsafe fn load8_unaligned(ptr: *const u16) -> u16x8 {
+- let mut simd = ::core::mem::uninitialized();
+- ::core::ptr::copy_nonoverlapping(ptr as *const u8, &mut simd as *mut u16x8 as *mut u8, 16);
+- simd
++ let mut simd = ::core::mem::MaybeUninit::<u16x8>::uninit();
++ ::core::ptr::copy_nonoverlapping(ptr as *const u8, simd.as_mut_ptr() as *mut u8, 16);
++ // Safety: copied 16 bytes of initialized memory into this, it is now initialized
++ simd.assume_init()
+ }
+
++/// Safety invariant: ptr must be valid for an aligned-for-u16x8 read of 16 bytes
+ #[allow(dead_code)]
+ #[inline(always)]
+ pub unsafe fn load8_aligned(ptr: *const u16) -> u16x8 {
+ *(ptr as *const u16x8)
+ }
+
++/// Safety invariant: ptr must be valid for an unaligned store of 16 bytes
+ #[inline(always)]
+ pub unsafe fn store8_unaligned(ptr: *mut u16, s: u16x8) {
+ ::core::ptr::copy_nonoverlapping(&s as *const u16x8 as *const u8, ptr as *mut u8, 16);
+ }
+
++/// Safety invariant: ptr must be valid for an aligned-for-u16x8 store of 16 bytes
+ #[allow(dead_code)]
+ #[inline(always)]
+ pub unsafe fn store8_aligned(ptr: *mut u16, s: u16x8) {
+ *(ptr as *mut u16x8) = s;
+ }
+
+ cfg_if! {
+ if #[cfg(all(target_feature = "sse2", target_arch = "x86_64"))] {
+@@ -95,234 +114,241 @@ cfg_if! {
+ pub fn simd_byte_swap(s: u16x8) -> u16x8 {
+ let left = s << 8;
+ let right = s >> 8;
+ left | right
+ }
+
+ #[inline(always)]
+ pub fn to_u16_lanes(s: u8x16) -> u16x8 {
+- s.into_bits()
++ u16x8::from_ne_bytes(s)
+ }
+
+ cfg_if! {
+ if #[cfg(target_feature = "sse2")] {
+
+ // Expose low-level mask instead of higher-level conclusion,
+ // because the non-ASCII case would perform less well otherwise.
++ // Safety-usable invariant: This returned value is whether each high bit is set
+ #[inline(always)]
+ pub fn mask_ascii(s: u8x16) -> i32 {
+ unsafe {
+- _mm_movemask_epi8(s.into_bits())
++ _mm_movemask_epi8(s.into())
+ }
+ }
+
+ } else {
+
+ }
+ }
+
+ cfg_if! {
+ if #[cfg(target_feature = "sse2")] {
+ #[inline(always)]
+ pub fn simd_is_ascii(s: u8x16) -> bool {
+ unsafe {
+- _mm_movemask_epi8(s.into_bits()) == 0
++ // Safety: We have cfg()d the correct platform
++ _mm_movemask_epi8(s.into()) == 0
+ }
+ }
+ } else if #[cfg(target_arch = "aarch64")]{
+ #[inline(always)]
+ pub fn simd_is_ascii(s: u8x16) -> bool {
+ unsafe {
+- vmaxvq_u8(s.into_bits()) < 0x80
++ // Safety: We have cfg()d the correct platform
++ vmaxvq_u8(s.into()) < 0x80
+ }
+ }
+ } else {
+ #[inline(always)]
+ pub fn simd_is_ascii(s: u8x16) -> bool {
+ // This optimizes better on ARM than
+ // the lt formulation.
+ let highest_ascii = u8x16::splat(0x7F);
+- !s.gt(highest_ascii).any()
++ !any_mask8x16(s.simd_gt(highest_ascii))
+ }
+ }
+ }
+
+ cfg_if! {
+ if #[cfg(target_feature = "sse2")] {
+ #[inline(always)]
+ pub fn simd_is_str_latin1(s: u8x16) -> bool {
+ if simd_is_ascii(s) {
+ return true;
+ }
+ let above_str_latin1 = u8x16::splat(0xC4);
+- s.lt(above_str_latin1).all()
++ s.simd_lt(above_str_latin1).all()
+ }
+ } else if #[cfg(target_arch = "aarch64")]{
+ #[inline(always)]
+ pub fn simd_is_str_latin1(s: u8x16) -> bool {
+ unsafe {
+- vmaxvq_u8(s.into_bits()) < 0xC4
++ // Safety: We have cfg()d the correct platform
++ vmaxvq_u8(s.into()) < 0xC4
+ }
+ }
+ } else {
+ #[inline(always)]
+ pub fn simd_is_str_latin1(s: u8x16) -> bool {
+ let above_str_latin1 = u8x16::splat(0xC4);
+- s.lt(above_str_latin1).all()
++ all_mask8x16(s.simd_lt(above_str_latin1))
+ }
+ }
+ }
+
+ cfg_if! {
+ if #[cfg(target_arch = "aarch64")]{
+ #[inline(always)]
+ pub fn simd_is_basic_latin(s: u16x8) -> bool {
+ unsafe {
+- vmaxvq_u16(s.into_bits()) < 0x80
++ // Safety: We have cfg()d the correct platform
++ vmaxvq_u16(s.into()) < 0x80
+ }
+ }
+
+ #[inline(always)]
+ pub fn simd_is_latin1(s: u16x8) -> bool {
+ unsafe {
+- vmaxvq_u16(s.into_bits()) < 0x100
++ // Safety: We have cfg()d the correct platform
++ vmaxvq_u16(s.into()) < 0x100
+ }
+ }
+ } else {
+ #[inline(always)]
+ pub fn simd_is_basic_latin(s: u16x8) -> bool {
+ let above_ascii = u16x8::splat(0x80);
+- s.lt(above_ascii).all()
++ all_mask16x8(s.simd_lt(above_ascii))
+ }
+
+ #[inline(always)]
+ pub fn simd_is_latin1(s: u16x8) -> bool {
+ // For some reason, on SSE2 this formulation
+ // seems faster in this case while the above
+ // function is better the other way round...
+ let highest_latin1 = u16x8::splat(0xFF);
+- !s.gt(highest_latin1).any()
++ !any_mask16x8(s.simd_gt(highest_latin1))
+ }
+ }
+ }
+
+ #[inline(always)]
+ pub fn contains_surrogates(s: u16x8) -> bool {
+ let mask = u16x8::splat(0xF800);
+ let surrogate_bits = u16x8::splat(0xD800);
+- (s & mask).eq(surrogate_bits).any()
++ any_mask16x8((s & mask).simd_eq(surrogate_bits))
+ }
+
+ cfg_if! {
+ if #[cfg(target_arch = "aarch64")]{
+ macro_rules! aarch64_return_false_if_below_hebrew {
+ ($s:ident) => ({
+ unsafe {
+- if vmaxvq_u16($s.into_bits()) < 0x0590 {
++ // Safety: We have cfg()d the correct platform
++ if vmaxvq_u16($s.into()) < 0x0590 {
+ return false;
+ }
+ }
+ })
+ }
+
+ macro_rules! non_aarch64_return_false_if_all {
+ ($s:ident) => ()
+ }
+ } else {
+ macro_rules! aarch64_return_false_if_below_hebrew {
+ ($s:ident) => ()
+ }
+
+ macro_rules! non_aarch64_return_false_if_all {
+ ($s:ident) => ({
+- if $s.all() {
++ if all_mask16x8($s) {
+ return false;
+ }
+ })
+ }
+ }
+ }
+
+ macro_rules! in_range16x8 {
+ ($s:ident, $start:expr, $end:expr) => {{
+ // SIMD sub is wrapping
+- ($s - u16x8::splat($start)).lt(u16x8::splat($end - $start))
++ ($s - u16x8::splat($start)).simd_lt(u16x8::splat($end - $start))
+ }};
+ }
+
+ #[inline(always)]
+ pub fn is_u16x8_bidi(s: u16x8) -> bool {
+ // We try to first quickly refute the RTLness of the vector. If that
+ // fails, we do the real RTL check, so in that case we end up wasting
+ // the work for the up-front quick checks. Even the quick-check is
+ // two-fold in order to return `false` ASAP if everything is below
+ // Hebrew.
+
+ aarch64_return_false_if_below_hebrew!(s);
+
+- let below_hebrew = s.lt(u16x8::splat(0x0590));
++ let below_hebrew = s.simd_lt(u16x8::splat(0x0590));
+
+ non_aarch64_return_false_if_all!(below_hebrew);
+
+- if (below_hebrew | in_range16x8!(s, 0x0900, 0x200F) | in_range16x8!(s, 0x2068, 0xD802)).all() {
++ if all_mask16x8(
++ below_hebrew | in_range16x8!(s, 0x0900, 0x200F) | in_range16x8!(s, 0x2068, 0xD802),
++ ) {
+ return false;
+ }
+
+ // Quick refutation failed. Let's do the full check.
+
+- (in_range16x8!(s, 0x0590, 0x0900)
+- | in_range16x8!(s, 0xFB1D, 0xFE00)
+- | in_range16x8!(s, 0xFE70, 0xFEFF)
+- | in_range16x8!(s, 0xD802, 0xD804)
+- | in_range16x8!(s, 0xD83A, 0xD83C)
+- | s.eq(u16x8::splat(0x200F))
+- | s.eq(u16x8::splat(0x202B))
+- | s.eq(u16x8::splat(0x202E))
+- | s.eq(u16x8::splat(0x2067)))
+- .any()
++ any_mask16x8(
++ (in_range16x8!(s, 0x0590, 0x0900)
++ | in_range16x8!(s, 0xFB1D, 0xFE00)
++ | in_range16x8!(s, 0xFE70, 0xFEFF)
++ | in_range16x8!(s, 0xD802, 0xD804)
++ | in_range16x8!(s, 0xD83A, 0xD83C)
++ | s.simd_eq(u16x8::splat(0x200F))
++ | s.simd_eq(u16x8::splat(0x202B))
++ | s.simd_eq(u16x8::splat(0x202E))
++ | s.simd_eq(u16x8::splat(0x2067))),
++ )
+ }
+
+ #[inline(always)]
+ pub fn simd_unpack(s: u8x16) -> (u16x8, u16x8) {
+- unsafe {
+- let first: u8x16 = shuffle!(
+- s,
+- u8x16::splat(0),
+- [0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23]
+- );
+- let second: u8x16 = shuffle!(
+- s,
+- u8x16::splat(0),
+- [8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31]
+- );
+- (first.into_bits(), second.into_bits())
+- }
++ let first: u8x16 = simd_swizzle!(
++ s,
++ u8x16::splat(0),
++ [0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23]
++ );
++ let second: u8x16 = simd_swizzle!(
++ s,
++ u8x16::splat(0),
++ [8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31]
++ );
++ (u16x8::from_ne_bytes(first), u16x8::from_ne_bytes(second))
+ }
+
+ cfg_if! {
+ if #[cfg(target_feature = "sse2")] {
+ #[inline(always)]
+ pub fn simd_pack(a: u16x8, b: u16x8) -> u8x16 {
+ unsafe {
+- _mm_packus_epi16(a.into_bits(), b.into_bits()).into_bits()
++ // Safety: We have cfg()d the correct platform
++ _mm_packus_epi16(a.into(), b.into()).into()
+ }
+ }
+ } else {
+ #[inline(always)]
+ pub fn simd_pack(a: u16x8, b: u16x8) -> u8x16 {
+- unsafe {
+- let first: u8x16 = a.into_bits();
+- let second: u8x16 = b.into_bits();
+- shuffle!(
+- first,
+- second,
+- [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]
+- )
+- }
++ let first: u8x16 = a.to_ne_bytes();
++ let second: u8x16 = b.to_ne_bytes();
++ simd_swizzle!(
++ first,
++ second,
++ [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]
++ )
+ }
+ }
+ }
+
+ #[cfg(test)]
+ mod tests {
+ use super::*;
+ use alloc::vec::Vec;
+diff --git a/third_party/rust/encoding_rs/src/single_byte.rs b/third_party/rust/encoding_rs/src/single_byte.rs
+--- third_party/rust/encoding_rs/src/single_byte.rs
++++ third_party/rust/encoding_rs/src/single_byte.rs
+@@ -48,16 +48,19 @@ impl SingleByteDecoder {
+ CopyAsciiResult::GoOn((mut non_ascii, mut handle)) => 'middle: loop {
+ // Start non-boilerplate
+ //
+ // Since the non-ASCIIness of `non_ascii` is hidden from
+ // the optimizer, it can't figure out that it's OK to
+ // statically omit the bound check when accessing
+ // `[u16; 128]` with an index
+ // `non_ascii as usize - 0x80usize`.
++ //
++ // Safety: `non_ascii` is a u8 byte >=0x80, from the invariants
++ // on Utf8Destination::copy_ascii_from_check_space_bmp()
+ let mapped =
+ unsafe { *(self.table.get_unchecked(non_ascii as usize - 0x80usize)) };
+ // let mapped = self.table[non_ascii as usize - 0x80usize];
+ if mapped == 0u16 {
+ return (
+ DecoderResult::Malformed(1, 0),
+ source.consumed(),
+ handle.written(),
+@@ -146,82 +149,103 @@ impl SingleByteDecoder {
+ dst: &mut [u16],
+ _last: bool,
+ ) -> (DecoderResult, usize, usize) {
+ let (pending, length) = if dst.len() < src.len() {
+ (DecoderResult::OutputFull, dst.len())
+ } else {
+ (DecoderResult::InputEmpty, src.len())
+ };
++ // Safety invariant: converted <= length. Quite often we have `converted < length`
++ // which will be separately marked.
+ let mut converted = 0usize;
+ 'outermost: loop {
+ match unsafe {
++ // Safety: length is the minimum length, `src/dst + x` will always be valid for reads/writes of `len - x`
+ ascii_to_basic_latin(
+ src.as_ptr().add(converted),
+ dst.as_mut_ptr().add(converted),
+ length - converted,
+ )
+ } {
+ None => {
+ return (pending, length, length);
+ }
+ Some((mut non_ascii, consumed)) => {
++ // Safety invariant: `converted <= length` upheld, since this can only consume
++ // up to `length - converted` bytes.
++ //
++ // Furthermore, in this context,
++ // we can assume `converted < length` since this branch is only ever hit when
++ // ascii_to_basic_latin fails to consume the entire slice
+ converted += consumed;
+ 'middle: loop {
+ // `converted` doesn't count the reading of `non_ascii` yet.
+ // Since the non-ASCIIness of `non_ascii` is hidden from
+ // the optimizer, it can't figure out that it's OK to
+ // statically omit the bound check when accessing
+ // `[u16; 128]` with an index
+ // `non_ascii as usize - 0x80usize`.
++ //
++ // Safety: We can rely on `non_ascii` being between `0x80` and `0xFF` due to
++ // the invariants of `ascii_to_basic_latin()`, and our table has enough space for that.
+ let mapped =
+ unsafe { *(self.table.get_unchecked(non_ascii as usize - 0x80usize)) };
+ // let mapped = self.table[non_ascii as usize - 0x80usize];
+ if mapped == 0u16 {
+ return (
+ DecoderResult::Malformed(1, 0),
+ converted + 1, // +1 `for non_ascii`
+ converted,
+ );
+ }
+ unsafe {
+- // The bound check has already been performed
++ // Safety: As mentioned above, `converted < length`
+ *(dst.get_unchecked_mut(converted)) = mapped;
+ }
++ // Safety: `converted <= length` upheld, since `converted < length` before this
+ converted += 1;
+ // Next, handle ASCII punctuation and non-ASCII without
+ // going back to ASCII acceleration. Non-ASCII scripts
+ // use ASCII punctuation, so this avoid going to
+ // acceleration just for punctuation/space and then
+ // failing. This is a significant boost to non-ASCII
+ // scripts.
+ // TODO: Split out Latin converters without this part
+ // this stuff makes Latin script-conversion slower.
+ if converted == length {
+ return (pending, length, length);
+ }
++ // Safety: We are back to `converted < length` because of the == above
++ // and can perform this check.
+ let mut b = unsafe { *(src.get_unchecked(converted)) };
++ // Safety: `converted < length` is upheld for this loop
+ 'innermost: loop {
+ if b > 127 {
+ non_ascii = b;
+ continue 'middle;
+ }
+ // Testing on Haswell says that we should write the
+ // byte unconditionally instead of trying to unread it
+ // to make it part of the next SIMD stride.
+ unsafe {
++ // Safety: `converted < length` is true for this loop
+ *(dst.get_unchecked_mut(converted)) = u16::from(b);
+ }
++ // Safety: We are now at `converted <= length`. We should *not* `continue`
++ // the loop without reverifying
+ converted += 1;
+ if b < 60 {
+ // We've got punctuation
+ if converted == length {
+ return (pending, length, length);
+ }
++ // Safety: we're back to `converted <= length` because of the == above
+ b = unsafe { *(src.get_unchecked(converted)) };
++ // Safety: The loop continues as `converted < length`
+ continue 'innermost;
+ }
+ // We've got markup or ASCII text
+ continue 'outermost;
+ }
+ }
+ }
+ }
+@@ -229,16 +253,18 @@ impl SingleByteDecoder {
+ }
+
+ pub fn latin1_byte_compatible_up_to(&self, buffer: &[u8]) -> usize {
+ let mut bytes = buffer;
+ let mut total = 0;
+ loop {
+ if let Some((non_ascii, offset)) = validate_ascii(bytes) {
+ total += offset;
++ // Safety: We can rely on `non_ascii` being between `0x80` and `0xFF` due to
++ // the invariants of `ascii_to_basic_latin()`, and our table has enough space for that.
+ let mapped = unsafe { *(self.table.get_unchecked(non_ascii as usize - 0x80usize)) };
+ if mapped != u16::from(non_ascii) {
+ return total;
+ }
+ total += 1;
+ bytes = &bytes[offset + 1..];
+ } else {
+ return total;
+@@ -379,64 +405,89 @@ impl SingleByteEncoder {
+ dst: &mut [u8],
+ _last: bool,
+ ) -> (EncoderResult, usize, usize) {
+ let (pending, length) = if dst.len() < src.len() {
+ (EncoderResult::OutputFull, dst.len())
+ } else {
+ (EncoderResult::InputEmpty, src.len())
+ };
++ // Safety invariant: converted <= length. Quite often we have `converted < length`
++ // which will be separately marked.
+ let mut converted = 0usize;
+ 'outermost: loop {
+ match unsafe {
++ // Safety: length is the minimum length, `src/dst + x` will always be valid for reads/writes of `len - x`
+ basic_latin_to_ascii(
+ src.as_ptr().add(converted),
+ dst.as_mut_ptr().add(converted),
+ length - converted,
+ )
+ } {
+ None => {
+ return (pending, length, length);
+ }
+ Some((mut non_ascii, consumed)) => {
++ // Safety invariant: `converted <= length` upheld, since this can only consume
++ // up to `length - converted` bytes.
++ //
++ // Furthermore, in this context,
++ // we can assume `converted < length` since this branch is only ever hit when
++ // ascii_to_basic_latin fails to consume the entire slice
+ converted += consumed;
+ 'middle: loop {
+ // `converted` doesn't count the reading of `non_ascii` yet.
+ match self.encode_u16(non_ascii) {
+ Some(byte) => {
+ unsafe {
++ // Safety: we're allowed this access since `converted < length`
+ *(dst.get_unchecked_mut(converted)) = byte;
+ }
+ converted += 1;
++ // `converted <= length` now
+ }
+ None => {
+ // At this point, we need to know if we
+ // have a surrogate.
+ let high_bits = non_ascii & 0xFC00u16;
+ if high_bits == 0xD800u16 {
+ // high surrogate
+ if converted + 1 == length {
+ // End of buffer. This surrogate is unpaired.
+ return (
+ EncoderResult::Unmappable('\u{FFFD}'),
+ converted + 1, // +1 `for non_ascii`
+ converted,
+ );
+ }
++ // Safety: convered < length from outside the match, and `converted + 1 != length`,
++ // So `converted + 1 < length` as well. We're in bounds
+ let second =
+ u32::from(unsafe { *src.get_unchecked(converted + 1) });
+ if second & 0xFC00u32 != 0xDC00u32 {
+ return (
+ EncoderResult::Unmappable('\u{FFFD}'),
+ converted + 1, // +1 `for non_ascii`
+ converted,
+ );
+ }
+ // The next code unit is a low surrogate.
+ let astral: char = unsafe {
++ // Safety: We can rely on non_ascii being 0xD800-0xDBFF since the high bits are 0xD800
++ // Then, (non_ascii << 10 - 0xD800 << 10) becomes between (0 to 0x3FF) << 10, which is between
++ // 0x400 to 0xffc00. Adding the 0x10000 gives a range of 0x10400 to 0x10fc00. Subtracting the 0xDC00
++ // gives 0x2800 to 0x102000
++ // The second term is between 0xDC00 and 0xDFFF from the check above. This gives a maximum
++ // possible range of (0x10400 + 0xDC00) to (0x102000 + 0xDFFF) which is 0x1E000 to 0x10ffff.
++ // This is in range.
++ //
++ // From a Unicode principles perspective this can also be verified as we have checked that `non_ascii` is a high surrogate
++ // (0xD800..=0xDBFF), and that `second` is a low surrogate (`0xDC00..=0xDFFF`), and we are applying reverse of the UTC16 transformation
++ // algorithm <https://en.wikipedia.org/wiki/UTF-16#Code_points_from_U+010000_to_U+10FFFF>, by applying the high surrogate - 0xD800 to the
++ // high ten bits, and the low surrogate - 0xDc00 to the low ten bits, and then adding 0x10000
+ ::core::char::from_u32_unchecked(
+ (u32::from(non_ascii) << 10) + second
+ - (((0xD800u32 << 10) - 0x1_0000u32) + 0xDC00u32),
+ )
+ };
+ return (
+ EncoderResult::Unmappable(astral),
+ converted + 2, // +2 `for non_ascii` and `second`
+@@ -451,52 +502,63 @@ impl SingleByteEncoder {
+ converted,
+ );
+ }
+ return (
+ EncoderResult::unmappable_from_bmp(non_ascii),
+ converted + 1, // +1 `for non_ascii`
+ converted,
+ );
++ // Safety: This branch diverges, so no need to uphold invariants on `converted`
+ }
+ }
+ // Next, handle ASCII punctuation and non-ASCII without
+ // going back to ASCII acceleration. Non-ASCII scripts
+ // use ASCII punctuation, so this avoid going to
+ // acceleration just for punctuation/space and then
+ // failing. This is a significant boost to non-ASCII
+ // scripts.
+ // TODO: Split out Latin converters without this part
+ // this stuff makes Latin script-conversion slower.
+ if converted == length {
+ return (pending, length, length);
+ }
++ // Safety: we're back to `converted < length` due to the == above and can perform
++ // the unchecked read
+ let mut unit = unsafe { *(src.get_unchecked(converted)) };
+ 'innermost: loop {
++ // Safety: This loop always begins with `converted < length`, see
++ // the invariant outside and the comment on the continue below
+ if unit > 127 {
+ non_ascii = unit;
+ continue 'middle;
+ }
+ // Testing on Haswell says that we should write the
+ // byte unconditionally instead of trying to unread it
+ // to make it part of the next SIMD stride.
+ unsafe {
++ // Safety: Can rely on converted < length
+ *(dst.get_unchecked_mut(converted)) = unit as u8;
+ }
+ converted += 1;
++ // `converted <= length` here
+ if unit < 60 {
+ // We've got punctuation
+ if converted == length {
+ return (pending, length, length);
+ }
++ // Safety: `converted < length` due to the == above. The read is safe.
+ unit = unsafe { *(src.get_unchecked(converted)) };
++ // Safety: This only happens if `converted < length`, maintaining it
+ continue 'innermost;
+ }
+ // We've got markup or ASCII text
+ continue 'outermost;
++ // Safety: All other routes to here diverge so the continue is the only
++ // way to run the innermost loop.
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+diff --git a/third_party/rust/encoding_rs/src/x_user_defined.rs b/third_party/rust/encoding_rs/src/x_user_defined.rs
+--- third_party/rust/encoding_rs/src/x_user_defined.rs
++++ third_party/rust/encoding_rs/src/x_user_defined.rs
+@@ -9,22 +9,23 @@
+
+ use super::*;
+ use crate::handles::*;
+ use crate::variant::*;
+
+ cfg_if! {
+ if #[cfg(feature = "simd-accel")] {
+ use simd_funcs::*;
+- use packed_simd::u16x8;
++ use core::simd::u16x8;
++ use core::simd::cmp::SimdPartialOrd;
+
+ #[inline(always)]
+ fn shift_upper(unpacked: u16x8) -> u16x8 {
+ let highest_ascii = u16x8::splat(0x7F);
+- unpacked + unpacked.gt(highest_ascii).select(u16x8::splat(0xF700), u16x8::splat(0)) }
++ unpacked + unpacked.simd_gt(highest_ascii).select(u16x8::splat(0xF700), u16x8::splat(0)) }
+ } else {
+ }
+ }
+
+ pub struct UserDefinedDecoder;
+
+ impl UserDefinedDecoder {
+ pub fn new() -> VariantDecoder {
+@@ -111,20 +112,25 @@ impl UserDefinedDecoder {
+ } else {
+ (DecoderResult::InputEmpty, src.len())
+ };
+ // Not bothering with alignment
+ let tail_start = length & !0xF;
+ let simd_iterations = length >> 4;
+ let src_ptr = src.as_ptr();
+ let dst_ptr = dst.as_mut_ptr();
++ // Safety: This is `for i in 0..length / 16`
+ for i in 0..simd_iterations {
++ // Safety: This is in bounds: length is the minumum valid length for both src/dst
++ // and i ranges to length/16, so multiplying by 16 will always be `< length` and can do
++ // a 16 byte read
+ let input = unsafe { load16_unaligned(src_ptr.add(i * 16)) };
+ let (first, second) = simd_unpack(input);
+ unsafe {
++ // Safety: same as above, but this is two consecutive 8-byte reads
+ store8_unaligned(dst_ptr.add(i * 16), shift_upper(first));
+ store8_unaligned(dst_ptr.add((i * 16) + 8), shift_upper(second));
+ }
+ }
+ let src_tail = &src[tail_start..length];
+ let dst_tail = &mut dst[tail_start..length];
+ src_tail
+ .iter()
+
+diff --git a/third_party/rust/encoding_rs/.cargo-checksum.json b/third_party/rust/encoding_rs/.cargo-checksum.json
+--- third_party/rust/encoding_rs/.cargo-checksum.json
++++ third_party/rust/encoding_rs/.cargo-checksum.json
+@@ -1 +1 @@
+-{"files":{"CONTRIBUTING.md":"ca1901f3e8532fb4cec894fd3664f0eaa898c0c4b961d1b992d1ed54eacf362a","COPYRIGHT":"11789f45bb180841cd362a5eee6789c68ddb573a11105e30768c308a6add0190","Cargo.toml":"42fa83322aa9fd6723b77d35d0cacb92cbb6e7f573ce11c55f5225292866f8f4","Ideas.md":"b7452893f500163868d8de52c09addaf91e1632454ed02e892c467ed7ec39dbd","LICENSE-APACHE":"cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30","LICENSE-MIT":"3fa4ca83dcc9237839b1bdeb2e6d16bdfb5ec0c5ce42b24694d8bbf0dcbef72c","LICENSE-WHATWG":"838118388fe5c2e7f1dbbaeed13e1c7f3ebf88be91319c7c1d77c18e987d1a50","README.md":"d938e8ab0b9ab67e74a1a4f48f23fdce956d0ad3a3f6147ae7612a92763c88d5","ci/miri.sh":"43cb8d82f49e3bfe2d2274b6ccd6f0714a4188ccef0cecc040829883cfdbee25","doc/Big5.txt":"f73a2edc5cb6c2d140ba6e07f4542e1c4a234950378acde1df93480f0ca0be0b","doc/EUC-JP.txt":"ee2818b907d0137f40a9ab9fd525fc700a44dbdddb6cf0c157a656566bae4bf1","doc/EUC-KR.txt":"71d9e2ccf3b124e8bdfb433c8cf2773fd878077038d0cec3c7237a50f4a78a30","doc/GBK.txt":"c1b522b5a799884e5001da661f42c5a8f4d0acb9ef1d74b206f22b5f65365606","doc/IBM866.txt":"a5a433e804d0f83af785015179fbc1d9b0eaf1f7960efcd04093e136b51fbd0e","doc/ISO-2022-JP.txt":"af86684f5a8f0e2868d7b2c292860140c3d2e5527530ca091f1b28198e8e2fe6","doc/ISO-8859-10.txt":"6d3949ad7c81ca176895101ed81a1db7df1060d64e262880b94bd31bb344ab4d","doc/ISO-8859-13.txt":"3951dd89cf93f7729148091683cf8511f4529388b7dc8dcd0d62eaed55be93fa","doc/ISO-8859-14.txt":"3d330784a0374fd255a38b47949675cc7168c800530534b0a01cac6edc623adc","doc/ISO-8859-15.txt":"24b1084aab5127a85aab99153f86e24694d0a3615f53b5ce23683f97cf66c47a","doc/ISO-8859-16.txt":"ce0272559b92ba76d7a7e476f6424ae4a5cc72e75b183611b08392e44add4d25","doc/ISO-8859-2.txt":"18ceff88c13d1b5ba455a3919b1e3de489045c4c3d2dd7e8527c125c75d54aad","doc/ISO-8859-3.txt":"21798404c68f4f5db59223362f24999da96968c0628427321fccce7d2849a130","doc/ISO-8859-4.txt":"d27f6520c6c5bfbcc19176b71d081cdb3bccde1622bb3e420d5680e812632d53","doc/ISO-8859-5.txt":"a10ec8d6ea7a78ad15da7275f6cb1a3365118527e28f9af6d0d5830501303f3a","doc/ISO-8859-6.txt":"ccda8a2efc96115336bdd77776637b9712425e44fbcf745353b9057fbef144e7","doc/ISO-8859-7.txt":"17900fa1f27a445958f0a77d7d9056be375a6bd7ee4492aa680c7c1500bab85e","doc/ISO-8859-8-I.txt":"8357555646d54265a9b9ffa3e68b08d132312f1561c60108ff9b8b1167b6ecf2","doc/ISO-8859-8.txt":"72cd6f3afb7b4a9c16a66a362473315770b7755d72c86c870e52fc3eba86c8af","doc/KOI8-R.txt":"839cf19a38da994488004ed7814b1f6151640156a9a2af02bf2efca745fb5966","doc/KOI8-U.txt":"0cc76624ed1f024183e2298b7e019957da2c70c8ca06e0fc4e6f353f50a5054f","doc/Shift_JIS.txt":"34c49141818cb9ddbcf59cc858f78a79be8ad148d563f26415108ae1f148443f","doc/UTF-16BE.txt":"e2e280d8acbaa6d2a6b3569d60e17500a285f2baa0df3363dd85537cd5a1ef8f","doc/UTF-16LE.txt":"70bdc170e3fc5298ba68f10125fb5eeb8b077036cc96bb4416c4de396f6d76c1","doc/UTF-8.txt":"ea7bae742e613010ced002cf4b601a737d2203fad65e115611451bc4428f548a","doc/gb18030.txt":"dc71378a8f07a2d8659f69ee81fb8791fef56ba86f124b429978285237bb4a7b","doc/macintosh.txt":"57491e53866711b4672d9b9ff35380b9dac9e0d8e3d6c20bdd6140603687c023","doc/replacement.txt":"4b6c3bbd7999d9d4108a281594bd02d13607e334a95465afff8c2c08d395f0e4","doc/windows-1250.txt":"61296bb6a21cdab602300d32ecfba434cb82de5ac3bc88d58710d2f125e28d39","doc/windows-1251.txt":"7deea1c61dea1485c8ff02db2c7d578db7a9aab63ab1cfd02ec04b515864689e","doc/windows-1252.txt":"933ef3bdddfce5ee132b9f1a1aa8b47423d2587bbe475b19028d0a6d38e180b6","doc/windows-1253.txt":"1a38748b88e99071a5c7b3d5456ead4caedeabab50d50d658be105bc113714de","doc/windows-1254.txt":"f8372f86c6f8d642563cd6ddc025260553292a39423df1683a98670bd7bf2b47","doc/windows-1255.txt":"4e5852494730054e2da258a74e1b9d780abbcdd8ce22ebc218ca2efe9e90493d","doc/windows-1256.txt":"c0879c5172abedead302a406e8f60d9cd9598694a0ffa4fd288ffe4fef7b8ea1","doc/windows-1257.txt":"c28a0c9f964fcb2b46d21f537c402446501a2800670481d6abf9fd9e9018d523","doc/windows-1258.txt":"5019ae4d61805c79aacbf17c93793342dbb098d65a1837783bc3e2c6d6a23602","doc/windows-874.txt":"4ef0e4501c5feba8b17aee1818602ed44b36ca8475db771ce2fc16d392cabecc","doc/x-mac-cyrillic.txt":"58be154d8a888ca3d484b83b44f749823ef339ab27f14d90ca9a856f5050a8bd","doc/x-user-defined.txt":"f9cd07c4321bf5cfb0be4bdddd251072999b04a6cf7a6f5bc63709a84e2c1ffc","generate-encoding-data.py":"be989dd25c6b946e3e8745fdc8e8a80fcf24b3be99ad0b4b78153ba3f6ab6310","rustfmt.toml":"85c1a3b4382fd89e991cbb81b70fb52780472edc064c963943cdaaa56e0a2030","src/ascii.rs":"c44c002641adb5ebc4368707a8cc0a076d2f33e6a5c27b1b69988eb515f5653d","src/big5.rs":"ec6e2913011a38e9a3e825a1731f139a7ca1d5b264fefae51a3cc1a68a57cef9","src/data.rs":"8a617cc57032092d65850eb27e00de687c80aea3299e839a1f58b42d0b35abf3","src/euc_jp.rs":"32047f5b540188c4cb19c07165f846b9786a09f18e315ed3e9bda1293dae52aa","src/euc_kr.rs":"9b25afc72d9378700eecfac58d55ad1c5946d6cd0ccde2c29c08200ef2de6bb9","src/gb18030.rs":"808587168d73f0c80f8520f0ca9b161866ed2efeb17a05e85fdf3b8efe7ba28a","src/handles.rs":"cc83dc0754751d67f5688a65c5e0191cba02f6bacce81a0813a243cba55eef7a","src/iso_2022_jp.rs":"9bb485e82574f4b7d4b2364f0ff276acb6a0bc111758420a3b0ec5e04c196652","src/lib.rs":"1dc07b818e45846b16ddcaf0de46c8862dd7df8099123ec38b95c3f8ad9c91ec","src/macros.rs":"200997f8870de8bfd8cdc475e92115df42108c0df661e49d3d1cbc32056e1d99","src/mem.rs":"0bf34103e0ad1b842a13a082dee2b920b05cf4fb0f145c9ee7f608f4cb4a544f","src/replacement.rs":"7660b34a53f8c1ca2bdfa0e51e843ec28326950952ad8bc96569feb93ac62308","src/shift_jis.rs":"6951ae67e36b1a12fa3a30734957f444d8b1b4ae0e2bde52060b29bd0f16d9d9","src/simd_funcs.rs":"2612aba86e1d201096d7e47a859bc3444f85934cc82d8adc6d39a4304d9eecfc","src/single_byte.rs":"3c9e9c1f946ae622c725ba9421240c1faa9a05e95fa10dd4642a25cb276a1edc","src/test_data/big5_in.txt":"4c5a8691f8dc717311889c63894026d2fb62725a86c4208ca274a9cc8d42a503","src/test_data/big5_in_ref.txt":"99d399e17750cf9c7cf30bb253dbfe35b81c4fcbdead93cfa48b1429213473c7","src/test_data/big5_out.txt":"6193ca97c297aa20e09396038d18e938bb7ea331c26f0f2454097296723a0b13","src/test_data/big5_out_ref.txt":"36567691f557df144f6cc520015a87038dfa156f296fcf103b56ae9a718be1fc","src/test_data/euc_kr_in.txt":"c86a7224f3215fa0d04e685622a752fdc72763e8ae076230c7fd62de57ec4074","src/test_data/euc_kr_in_ref.txt":"1f419f4ca47d708b54c73c461545a022ae2e20498fdbf8005a483d752a204883","src/test_data/euc_kr_out.txt":"e7f32e026f70be1e1b58e0047baf7d3d2c520269c4f9b9992e158b4decb0a1a3","src/test_data/euc_kr_out_ref.txt":"c9907857980b20b8e9e3b584482ed6567a2be6185d72237b6322f0404944924e","src/test_data/gb18030_in.txt":"ab7231b2d3e9afacdbd7d7f3b9e5361a7ff9f7e1cfdb4f3bd905b9362b309e53","src/test_data/gb18030_in_ref.txt":"dc5069421adca2043c55f5012b55a76fdff651d22e6e699fd0978f8d5706815c","src/test_data/gb18030_out.txt":"f0208d527f5ca63de7d9a0323be8d5cf12d8a104b2943d92c2701f0c3364dac1","src/test_data/gb18030_out_ref.txt":"6819fe47627e4ea01027003fc514b9f21a1322e732d7f1fb92cc6c5455bc6c07","src/test_data/iso_2022_jp_in.txt":"cd24bbdcb1834e25db54646fbf4c41560a13dc7540f6be3dba4f5d97d44513af","src/test_data/iso_2022_jp_in_ref.txt":"3dc4e6a5e06471942d086b16c9440945e78415f6f3f47e43717e4bc2eac2cdf5","src/test_data/iso_2022_jp_out.txt":"9b6f015329dda6c3f9ee5ce6dbd6fa9c89acc21283e886836c78b8d833480c21","src/test_data/iso_2022_jp_out_ref.txt":"78cb260093a20116ad9a42f43b05d1848c5ab100b6b9a850749809e943884b35","src/test_data/jis0208_in.txt":"6df3030553ffb0a6615bb33dc8ea9dca6d9623a9028e2ffec754ce3c3da824cc","src/test_data/jis0208_in_ref.txt":"3dc4e6a5e06471942d086b16c9440945e78415f6f3f47e43717e4bc2eac2cdf5","src/test_data/jis0208_out.txt":"4ec24477e1675ce750733bdc3c5add1cd27b6bd4ce1f09289564646e9654e857","src/test_data/jis0208_out_ref.txt":"c3e1cef5032b2b1d93a406f31ff940c4e2dfe8859b8b17ca2761fee7a75a0e48","src/test_data/jis0212_in.txt":"c011f0dd72bd7c8cd922df9374ef8d2769a77190514c77f6c62b415852eeb9fe","src/test_data/jis0212_in_ref.txt":"7d9458b3d2f73e7092a7f505c08ce1d233dde18aa679fbcf9889256239cc9e06","src/test_data/shift_jis_in.txt":"02e389ccef0dd2122e63f503899402cb7f797912c2444cc80ab93131116c5524","src/test_data/shift_jis_in_ref.txt":"512f985950ca902e643c88682dba9708b7c38d3c5ec2925168ab00ac94ab19f9","src/test_data/shift_jis_out.txt":"5fbc44da7bf639bf6cfe0fa1fd3eba7102b88f81919c9ea991302712f69426fb","src/test_data/shift_jis_out_ref.txt":"466322c6fed8286c64582731755290c2296508efdd258826e6279686649b481f","src/test_labels_names.rs":"23a2e11b02b3b8d15fb5613a625e3edb2c61e70e3c581abfd638719a4088200d","src/testing.rs":"f59e671e95a98a56f6b573e8c6be4d71e670bf52f7e20eb1605d990aafa1894e","src/utf_16.rs":"c071a147fad38d750c2c247e141b76b929a48007b99f26b2922b9caecdaf2f25","src/utf_8.rs":"7b7d887b347f1aefa03246b028a36a72758a4ce76c28f3b45c19467851aa7839","src/variant.rs":"1fab5363588a1554a7169de8731ea9cded7ac63ea35caabdd1c27a8dde68c27b","src/x_user_defined.rs":"c9c010730dfb9f141d4fed19350c08a21af240913a54bb64f5ca89ff93b6b7d1"},"package":"7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"}
+\ No newline at end of file
++{"files":{"CONTRIBUTING.md":"ca1901f3e8532fb4cec894fd3664f0eaa898c0c4b961d1b992d1ed54eacf362a","COPYRIGHT":"11789f45bb180841cd362a5eee6789c68ddb573a11105e30768c308a6add0190","Cargo.toml":"22a4d210c92dae9f32c6944ef340ee8fdd027f99c081577e8907123e2a93383e","Ideas.md":"b7452893f500163868d8de52c09addaf91e1632454ed02e892c467ed7ec39dbd","LICENSE-APACHE":"cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30","LICENSE-MIT":"3fa4ca83dcc9237839b1bdeb2e6d16bdfb5ec0c5ce42b24694d8bbf0dcbef72c","LICENSE-WHATWG":"838118388fe5c2e7f1dbbaeed13e1c7f3ebf88be91319c7c1d77c18e987d1a50","README.md":"1d08aefcb92afa81b18154049c9abbcad4540a23f7172e9f9bbed5af33f1a087","ci/miri.sh":"43cb8d82f49e3bfe2d2274b6ccd6f0714a4188ccef0cecc040829883cfdbee25","doc/Big5.txt":"f73a2edc5cb6c2d140ba6e07f4542e1c4a234950378acde1df93480f0ca0be0b","doc/EUC-JP.txt":"ee2818b907d0137f40a9ab9fd525fc700a44dbdddb6cf0c157a656566bae4bf1","doc/EUC-KR.txt":"71d9e2ccf3b124e8bdfb433c8cf2773fd878077038d0cec3c7237a50f4a78a30","doc/GBK.txt":"c1b522b5a799884e5001da661f42c5a8f4d0acb9ef1d74b206f22b5f65365606","doc/IBM866.txt":"a5a433e804d0f83af785015179fbc1d9b0eaf1f7960efcd04093e136b51fbd0e","doc/ISO-2022-JP.txt":"af86684f5a8f0e2868d7b2c292860140c3d2e5527530ca091f1b28198e8e2fe6","doc/ISO-8859-10.txt":"6d3949ad7c81ca176895101ed81a1db7df1060d64e262880b94bd31bb344ab4d","doc/ISO-8859-13.txt":"3951dd89cf93f7729148091683cf8511f4529388b7dc8dcd0d62eaed55be93fa","doc/ISO-8859-14.txt":"3d330784a0374fd255a38b47949675cc7168c800530534b0a01cac6edc623adc","doc/ISO-8859-15.txt":"24b1084aab5127a85aab99153f86e24694d0a3615f53b5ce23683f97cf66c47a","doc/ISO-8859-16.txt":"ce0272559b92ba76d7a7e476f6424ae4a5cc72e75b183611b08392e44add4d25","doc/ISO-8859-2.txt":"18ceff88c13d1b5ba455a3919b1e3de489045c4c3d2dd7e8527c125c75d54aad","doc/ISO-8859-3.txt":"21798404c68f4f5db59223362f24999da96968c0628427321fccce7d2849a130","doc/ISO-8859-4.txt":"d27f6520c6c5bfbcc19176b71d081cdb3bccde1622bb3e420d5680e812632d53","doc/ISO-8859-5.txt":"a10ec8d6ea7a78ad15da7275f6cb1a3365118527e28f9af6d0d5830501303f3a","doc/ISO-8859-6.txt":"ccda8a2efc96115336bdd77776637b9712425e44fbcf745353b9057fbef144e7","doc/ISO-8859-7.txt":"17900fa1f27a445958f0a77d7d9056be375a6bd7ee4492aa680c7c1500bab85e","doc/ISO-8859-8-I.txt":"8357555646d54265a9b9ffa3e68b08d132312f1561c60108ff9b8b1167b6ecf2","doc/ISO-8859-8.txt":"72cd6f3afb7b4a9c16a66a362473315770b7755d72c86c870e52fc3eba86c8af","doc/KOI8-R.txt":"839cf19a38da994488004ed7814b1f6151640156a9a2af02bf2efca745fb5966","doc/KOI8-U.txt":"0cc76624ed1f024183e2298b7e019957da2c70c8ca06e0fc4e6f353f50a5054f","doc/Shift_JIS.txt":"34c49141818cb9ddbcf59cc858f78a79be8ad148d563f26415108ae1f148443f","doc/UTF-16BE.txt":"e2e280d8acbaa6d2a6b3569d60e17500a285f2baa0df3363dd85537cd5a1ef8f","doc/UTF-16LE.txt":"70bdc170e3fc5298ba68f10125fb5eeb8b077036cc96bb4416c4de396f6d76c1","doc/UTF-8.txt":"ea7bae742e613010ced002cf4b601a737d2203fad65e115611451bc4428f548a","doc/gb18030.txt":"dc71378a8f07a2d8659f69ee81fb8791fef56ba86f124b429978285237bb4a7b","doc/macintosh.txt":"57491e53866711b4672d9b9ff35380b9dac9e0d8e3d6c20bdd6140603687c023","doc/replacement.txt":"4b6c3bbd7999d9d4108a281594bd02d13607e334a95465afff8c2c08d395f0e4","doc/windows-1250.txt":"61296bb6a21cdab602300d32ecfba434cb82de5ac3bc88d58710d2f125e28d39","doc/windows-1251.txt":"7deea1c61dea1485c8ff02db2c7d578db7a9aab63ab1cfd02ec04b515864689e","doc/windows-1252.txt":"933ef3bdddfce5ee132b9f1a1aa8b47423d2587bbe475b19028d0a6d38e180b6","doc/windows-1253.txt":"1a38748b88e99071a5c7b3d5456ead4caedeabab50d50d658be105bc113714de","doc/windows-1254.txt":"f8372f86c6f8d642563cd6ddc025260553292a39423df1683a98670bd7bf2b47","doc/windows-1255.txt":"4e5852494730054e2da258a74e1b9d780abbcdd8ce22ebc218ca2efe9e90493d","doc/windows-1256.txt":"c0879c5172abedead302a406e8f60d9cd9598694a0ffa4fd288ffe4fef7b8ea1","doc/windows-1257.txt":"c28a0c9f964fcb2b46d21f537c402446501a2800670481d6abf9fd9e9018d523","doc/windows-1258.txt":"5019ae4d61805c79aacbf17c93793342dbb098d65a1837783bc3e2c6d6a23602","doc/windows-874.txt":"4ef0e4501c5feba8b17aee1818602ed44b36ca8475db771ce2fc16d392cabecc","doc/x-mac-cyrillic.txt":"58be154d8a888ca3d484b83b44f749823ef339ab27f14d90ca9a856f5050a8bd","doc/x-user-defined.txt":"f9cd07c4321bf5cfb0be4bdddd251072999b04a6cf7a6f5bc63709a84e2c1ffc","generate-encoding-data.py":"be989dd25c6b946e3e8745fdc8e8a80fcf24b3be99ad0b4b78153ba3f6ab6310","rustfmt.toml":"85c1a3b4382fd89e991cbb81b70fb52780472edc064c963943cdaaa56e0a2030","src/ascii.rs":"588e38b01e666d5e7462617ea7e90a108d608dec9e016f3d273ac0744af2e05d","src/big5.rs":"ec6e2913011a38e9a3e825a1731f139a7ca1d5b264fefae51a3cc1a68a57cef9","src/data.rs":"8a617cc57032092d65850eb27e00de687c80aea3299e839a1f58b42d0b35abf3","src/euc_jp.rs":"32047f5b540188c4cb19c07165f846b9786a09f18e315ed3e9bda1293dae52aa","src/euc_kr.rs":"9b25afc72d9378700eecfac58d55ad1c5946d6cd0ccde2c29c08200ef2de6bb9","src/gb18030.rs":"808587168d73f0c80f8520f0ca9b161866ed2efeb17a05e85fdf3b8efe7ba28a","src/handles.rs":"b08cef1f5785bb6a4822f2e844c6df1b046b737b7a075e4593eaa8c4208e9fe2","src/iso_2022_jp.rs":"9bb485e82574f4b7d4b2364f0ff276acb6a0bc111758420a3b0ec5e04c196652","src/lib.rs":"834f44b670ec48ee82c0e12223d1567313fdd9f88bca5f4b117c82c1828f559f","src/macros.rs":"200997f8870de8bfd8cdc475e92115df42108c0df661e49d3d1cbc32056e1d99","src/mem.rs":"948571137d3b151df8db4fb2c733e74ae595d055cdf0ad83abcab9341d6adabe","src/replacement.rs":"7660b34a53f8c1ca2bdfa0e51e843ec28326950952ad8bc96569feb93ac62308","src/shift_jis.rs":"6951ae67e36b1a12fa3a30734957f444d8b1b4ae0e2bde52060b29bd0f16d9d9","src/simd_funcs.rs":"05c6e77af74bfe73cd39a752067c11425d6b46e5da419910f54bf75a5c02a984","src/single_byte.rs":"3ad87116fb339434a4b58e8f2b15485f2b66b9f7814d708f16194ed08f6d6ccf","src/test_data/big5_in.txt":"4c5a8691f8dc717311889c63894026d2fb62725a86c4208ca274a9cc8d42a503","src/test_data/big5_in_ref.txt":"99d399e17750cf9c7cf30bb253dbfe35b81c4fcbdead93cfa48b1429213473c7","src/test_data/big5_out.txt":"6193ca97c297aa20e09396038d18e938bb7ea331c26f0f2454097296723a0b13","src/test_data/big5_out_ref.txt":"36567691f557df144f6cc520015a87038dfa156f296fcf103b56ae9a718be1fc","src/test_data/euc_kr_in.txt":"c86a7224f3215fa0d04e685622a752fdc72763e8ae076230c7fd62de57ec4074","src/test_data/euc_kr_in_ref.txt":"1f419f4ca47d708b54c73c461545a022ae2e20498fdbf8005a483d752a204883","src/test_data/euc_kr_out.txt":"e7f32e026f70be1e1b58e0047baf7d3d2c520269c4f9b9992e158b4decb0a1a3","src/test_data/euc_kr_out_ref.txt":"c9907857980b20b8e9e3b584482ed6567a2be6185d72237b6322f0404944924e","src/test_data/gb18030_in.txt":"ab7231b2d3e9afacdbd7d7f3b9e5361a7ff9f7e1cfdb4f3bd905b9362b309e53","src/test_data/gb18030_in_ref.txt":"dc5069421adca2043c55f5012b55a76fdff651d22e6e699fd0978f8d5706815c","src/test_data/gb18030_out.txt":"f0208d527f5ca63de7d9a0323be8d5cf12d8a104b2943d92c2701f0c3364dac1","src/test_data/gb18030_out_ref.txt":"6819fe47627e4ea01027003fc514b9f21a1322e732d7f1fb92cc6c5455bc6c07","src/test_data/iso_2022_jp_in.txt":"cd24bbdcb1834e25db54646fbf4c41560a13dc7540f6be3dba4f5d97d44513af","src/test_data/iso_2022_jp_in_ref.txt":"3dc4e6a5e06471942d086b16c9440945e78415f6f3f47e43717e4bc2eac2cdf5","src/test_data/iso_2022_jp_out.txt":"9b6f015329dda6c3f9ee5ce6dbd6fa9c89acc21283e886836c78b8d833480c21","src/test_data/iso_2022_jp_out_ref.txt":"78cb260093a20116ad9a42f43b05d1848c5ab100b6b9a850749809e943884b35","src/test_data/jis0208_in.txt":"6df3030553ffb0a6615bb33dc8ea9dca6d9623a9028e2ffec754ce3c3da824cc","src/test_data/jis0208_in_ref.txt":"3dc4e6a5e06471942d086b16c9440945e78415f6f3f47e43717e4bc2eac2cdf5","src/test_data/jis0208_out.txt":"4ec24477e1675ce750733bdc3c5add1cd27b6bd4ce1f09289564646e9654e857","src/test_data/jis0208_out_ref.txt":"c3e1cef5032b2b1d93a406f31ff940c4e2dfe8859b8b17ca2761fee7a75a0e48","src/test_data/jis0212_in.txt":"c011f0dd72bd7c8cd922df9374ef8d2769a77190514c77f6c62b415852eeb9fe","src/test_data/jis0212_in_ref.txt":"7d9458b3d2f73e7092a7f505c08ce1d233dde18aa679fbcf9889256239cc9e06","src/test_data/shift_jis_in.txt":"02e389ccef0dd2122e63f503899402cb7f797912c2444cc80ab93131116c5524","src/test_data/shift_jis_in_ref.txt":"512f985950ca902e643c88682dba9708b7c38d3c5ec2925168ab00ac94ab19f9","src/test_data/shift_jis_out.txt":"5fbc44da7bf639bf6cfe0fa1fd3eba7102b88f81919c9ea991302712f69426fb","src/test_data/shift_jis_out_ref.txt":"466322c6fed8286c64582731755290c2296508efdd258826e6279686649b481f","src/test_labels_names.rs":"23a2e11b02b3b8d15fb5613a625e3edb2c61e70e3c581abfd638719a4088200d","src/testing.rs":"f59e671e95a98a56f6b573e8c6be4d71e670bf52f7e20eb1605d990aafa1894e","src/utf_16.rs":"c071a147fad38d750c2c247e141b76b929a48007b99f26b2922b9caecdaf2f25","src/utf_8.rs":"7b7d887b347f1aefa03246b028a36a72758a4ce76c28f3b45c19467851aa7839","src/variant.rs":"1fab5363588a1554a7169de8731ea9cded7ac63ea35caabdd1c27a8dde68c27b","src/x_user_defined.rs":"9456ca46168ef86c98399a2536f577ef7be3cdde90c0c51392d8ac48519d3fae"},"package":"b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"}
diff --git a/www/firefox-esr/files/patch-rust-1.78.0-arm b/www/firefox-esr/files/patch-rust-1.78.0-arm
new file mode 100644
index 000000000000..7db8038cfaeb
--- /dev/null
+++ b/www/firefox-esr/files/patch-rust-1.78.0-arm
@@ -0,0 +1,64 @@
+Relevant bug report: https://bugzilla.mozilla.org/show_bug.cgi?id=1882291
+
+
+diff --git a/Cargo.lock b/Cargo.lock
+--- Cargo.lock
++++ Cargo.lock
+@@ -4274,10 +4274,11 @@
+ [[package]]
+ name = "qcms"
+ version = "0.2.0"
+ dependencies = [
+ "libc",
++ "version_check",
+ ]
+
+ [[package]]
+ name = "qlog"
+ version = "0.4.0"
+diff --git a/gfx/qcms/Cargo.toml b/gfx/qcms/Cargo.toml
+--- gfx/qcms/Cargo.toml
++++ gfx/qcms/Cargo.toml
+@@ -18,5 +18,8 @@
+ iccv4-enabled = []
+ cmyk = []
+
+ [dependencies]
+ libc = {version = "0.2", optional = true }
++
++[build-dependencies]
++version_check = "0.9"
+diff --git a/gfx/qcms/build.rs b/gfx/qcms/build.rs
+new file mode 100644
+--- /dev/null
++++ gfx/qcms/build.rs
+@@ -0,0 +1,7 @@
++extern crate version_check as rustc;
++
++fn main() {
++ if rustc::is_min_version("1.78.0").unwrap_or(false) {
++ println!("cargo:rustc-cfg=stdsimd_split");
++ }
++}
+diff --git a/gfx/qcms/src/lib.rs b/gfx/qcms/src/lib.rs
+--- gfx/qcms/src/lib.rs
++++ gfx/qcms/src/lib.rs
+@@ -5,13 +5,15 @@
+ #![allow(non_camel_case_types)]
+ #![allow(non_snake_case)]
+ #![allow(non_upper_case_globals)]
+ // These are needed for the neon SIMD code and can be removed once the MSRV supports the
+ // instrinsics we use
+-#![cfg_attr(feature = "neon", feature(stdsimd))]
++#![cfg_attr(all(stdsimd_split, target_arch = "arm", feature = "neon"), feature(stdarch_arm_neon_intrinsics))]
++#![cfg_attr(all(stdsimd_split, target_arch = "arm", feature = "neon"), feature(stdarch_arm_feature_detection))]
++#![cfg_attr(all(not(stdsimd_split), target_arch = "arm", feature = "neon"), feature(stdsimd))]
+ #![cfg_attr(
+- feature = "neon",
++ all(target_arch = "arm", feature = "neon"),
+ feature(arm_target_feature, raw_ref_op)
+
+ )]
+
+ /// These values match the Rendering Intent values from the ICC spec
+
diff --git a/www/firefox/Makefile b/www/firefox/Makefile
index 8f4bea3f1acd..c071b340a668 100644
--- a/www/firefox/Makefile
+++ b/www/firefox/Makefile
@@ -1,9 +1,10 @@
PORTNAME= firefox
-DISTVERSION= 125.0.2
+DISTVERSION= 126.0
+PORTREVISION= 2
PORTEPOCH= 2
CATEGORIES= www wayland
MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}${DISTVERSIONSUFFIX}/source \
- MOZILLA/${PORTNAME}/candidates/${DISTVERSION}${DISTVERSIONSUFFIX}-candidates/build1/source
+ MOZILLA/${PORTNAME}/candidates/${DISTVERSION}${DISTVERSIONSUFFIX}-candidates/build2/source
DISTFILES= ${DISTNAME}.source${EXTRACT_SUFX}
MAINTAINER= gecko@FreeBSD.org
@@ -14,7 +15,7 @@ BUILD_DEPENDS= nspr>=4.32:devel/nspr \
nss>=3.99:security/nss \
icu>=73.1:devel/icu \
libevent>=2.1.8:devel/libevent \
- harfbuzz>=8.3.0:print/harfbuzz \
+ harfbuzz>=8.3.1:print/harfbuzz \
graphite2>=1.3.14:graphics/graphite2 \
png>=1.6.43:graphics/png \
dav1d>=1.0.0:multimedia/dav1d \
diff --git a/www/firefox/distinfo b/www/firefox/distinfo
index 0786efbadaea..0a82262a4352 100644
--- a/www/firefox/distinfo
+++ b/www/firefox/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1713558615
-SHA256 (firefox-125.0.2.source.tar.xz) = 69d0563361bab375407b25430c782346bec7623f3f1005e7dc505351ac69f799
-SIZE (firefox-125.0.2.source.tar.xz) = 544666944
+TIMESTAMP = 1715328113
+SHA256 (firefox-126.0.source.tar.xz) = 910e82a1999ec229e5bc5090a39cec9c575e8bafcac2c54f9bb5c699bd868526
+SIZE (firefox-126.0.source.tar.xz) = 552065476
diff --git a/www/firefox/files/patch-bug1890593 b/www/firefox/files/patch-bug1890593
deleted file mode 100644
index 75a4da270e1a..000000000000
--- a/www/firefox/files/patch-bug1890593
+++ /dev/null
@@ -1,28 +0,0 @@
-commit 9ef1582be54a8ff301336b397130e4d313fa3371
-Author: Christoph Moench-Tegeder <cmt@burggraben.net>
-Date: Tue Apr 9 21:27:21 2024 +0200
-
- bug 1890593 - GetSystemWPADSetting for libproxy-enabled builds
-
- In #621429 a call to nsUnixSystemProxySettings::GetSystemWPADSetting()
- was added, but that function is not available for builds with
- MOZ_ENABLE_LIBPROXY. The funtion is trivial enough to just
- copy it across - else there'd more boilerplate than actual code.
-
-diff --git toolkit/system/unixproxy/nsLibProxySettings.cpp toolkit/system/unixproxy/nsLibProxySettings.cpp
-index 4f6f43fb76e9..f2c782455426 100644
---- toolkit/system/unixproxy/nsLibProxySettings.cpp
-+++ toolkit/system/unixproxy/nsLibProxySettings.cpp
-@@ -99,6 +99,12 @@ nsresult nsUnixSystemProxySettings::GetProxyForURI(const nsACString& aSpec,
- return NS_OK;
- }
-
-+NS_IMETHODIMP
-+nsUnixSystemProxySettings::GetSystemWPADSetting(bool* aSystemWPADSetting) {
-+ *aSystemWPADSetting = false;
-+ return NS_OK;
-+}
-+
- NS_IMPL_COMPONENT_FACTORY(nsUnixSystemProxySettings) {
- return do_AddRef(new nsUnixSystemProxySettings()).downcast<nsISupports>();
- }
diff --git a/www/firefox/files/patch-libwebrtc-generated b/www/firefox/files/patch-libwebrtc-generated
index caec639c4c69..a56d291ae041 100644
--- a/www/firefox/files/patch-libwebrtc-generated
+++ b/www/firefox/files/patch-libwebrtc-generated
@@ -1,7 +1,7 @@
-commit 01127134cdeb090ebf87ffdf452c586ca3a3d838
+commit e0f8f58bed7cc4cd65c82ef0ea0e795ac6eeda65
Author: Christoph Moench-Tegeder <cmt@FreeBSD.org>
- regenerate FreeBSD libwebrtc patch for Firefox 125
+ regenerate FreeBSD libwebrtc patch for Firefox 126
diff --git third_party/libwebrtc/api/adaptation/resource_adaptation_api_gn/moz.build third_party/libwebrtc/api/adaptation/resource_adaptation_api_gn/moz.build
index b0671b5d4adb..642f867db664 100644
@@ -6510,10 +6510,10 @@ index 5656999ecb9a..93c7cd55cf2e 100644
- DEFINES["_GNU_SOURCE"] = True
-
Library("call_api_gn")
-diff --git third_party/libwebrtc/api/callfactory_api_gn/moz.build third_party/libwebrtc/api/callfactory_api_gn/moz.build
-index 157a34ec8e62..d9e58de1c43a 100644
---- third_party/libwebrtc/api/callfactory_api_gn/moz.build
-+++ third_party/libwebrtc/api/callfactory_api_gn/moz.build
+diff --git third_party/libwebrtc/api/crypto/frame_decryptor_interface_gn/moz.build third_party/libwebrtc/api/crypto/frame_decryptor_interface_gn/moz.build
+index 4147b3868be0..1f0c3440b172 100644
+--- third_party/libwebrtc/api/crypto/frame_decryptor_interface_gn/moz.build
++++ third_party/libwebrtc/api/crypto/frame_decryptor_interface_gn/moz.build
@@ -12,11 +12,21 @@ AllowCompilerWarnings()
DEFINES["ABSL_ALLOCATOR_NOTHROW"] = "1"
DEFINES["RTC_DAV1D_IN_INTERNAL_DECODER_FACTORY"] = True
@@ -6536,7 +6536,7 @@ index 157a34ec8e62..d9e58de1c43a 100644
FINAL_LIBRARY = "webrtc"
-@@ -39,122 +49,17 @@ if not CONFIG["MOZ_DEBUG"]:
+@@ -39,111 +49,17 @@ if not CONFIG["MOZ_DEBUG"]:
if CONFIG["MOZ_DEBUG"] == "1":
DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "1"
@@ -6584,10 +6584,6 @@ index 157a34ec8e62..d9e58de1c43a 100644
- DEFINES["__STDC_CONSTANT_MACROS"] = True
- DEFINES["__STDC_FORMAT_MACROS"] = True
-
-- OS_LIBS += [
-- "rt"
-- ]
--
-if CONFIG["OS_TARGET"] == "OpenBSD":
-
- DEFINES["USE_GLIB"] = "1"
@@ -6628,13 +6624,6 @@ index 157a34ec8e62..d9e58de1c43a 100644
- DEFINES["_WIN32_WINNT"] = "0x0A00"
- DEFINES["_WINDOWS"] = True
- DEFINES["__STD_C"] = True
--
-- OS_LIBS += [
-- "crypt32",
-- "iphlpapi",
-- "secur32",
-- "winmm"
-- ]
+ DEFINES["_DEBUG"] = True
if CONFIG["TARGET_CPU"] == "aarch64":
@@ -6660,7 +6649,7 @@ index 157a34ec8e62..d9e58de1c43a 100644
if CONFIG["TARGET_CPU"] == "x86":
-@@ -164,50 +69,8 @@ if CONFIG["TARGET_CPU"] == "x86_64":
+@@ -153,50 +69,8 @@ if CONFIG["TARGET_CPU"] == "x86_64":
DEFINES["WEBRTC_ENABLE_AVX2"] = True
@@ -6711,11 +6700,11 @@ index 157a34ec8e62..d9e58de1c43a 100644
-
- DEFINES["_GNU_SOURCE"] = True
-
- Library("callfactory_api_gn")
-diff --git third_party/libwebrtc/api/crypto/frame_decryptor_interface_gn/moz.build third_party/libwebrtc/api/crypto/frame_decryptor_interface_gn/moz.build
-index 4147b3868be0..1f0c3440b172 100644
---- third_party/libwebrtc/api/crypto/frame_decryptor_interface_gn/moz.build
-+++ third_party/libwebrtc/api/crypto/frame_decryptor_interface_gn/moz.build
+ Library("frame_decryptor_interface_gn")
+diff --git third_party/libwebrtc/api/crypto/frame_encryptor_interface_gn/moz.build third_party/libwebrtc/api/crypto/frame_encryptor_interface_gn/moz.build
+index 93034ef6e23e..2f5ff0067bee 100644
+--- third_party/libwebrtc/api/crypto/frame_encryptor_interface_gn/moz.build
++++ third_party/libwebrtc/api/crypto/frame_encryptor_interface_gn/moz.build
@@ -12,11 +12,21 @@ AllowCompilerWarnings()
DEFINES["ABSL_ALLOCATOR_NOTHROW"] = "1"
DEFINES["RTC_DAV1D_IN_INTERNAL_DECODER_FACTORY"] = True
@@ -6902,11 +6891,11 @@ index 4147b3868be0..1f0c3440b172 100644
-
- DEFINES["_GNU_SOURCE"] = True
-
- Library("frame_decryptor_interface_gn")
-diff --git third_party/libwebrtc/api/crypto/frame_encryptor_interface_gn/moz.build third_party/libwebrtc/api/crypto/frame_encryptor_interface_gn/moz.build
-index 93034ef6e23e..2f5ff0067bee 100644
---- third_party/libwebrtc/api/crypto/frame_encryptor_interface_gn/moz.build
-+++ third_party/libwebrtc/api/crypto/frame_encryptor_interface_gn/moz.build
+ Library("frame_encryptor_interface_gn")
+diff --git third_party/libwebrtc/api/crypto/options_gn/moz.build third_party/libwebrtc/api/crypto/options_gn/moz.build
+index 9b5cca4f8b98..33542ced4242 100644
+--- third_party/libwebrtc/api/crypto/options_gn/moz.build
++++ third_party/libwebrtc/api/crypto/options_gn/moz.build
@@ -12,11 +12,21 @@ AllowCompilerWarnings()
DEFINES["ABSL_ALLOCATOR_NOTHROW"] = "1"
DEFINES["RTC_DAV1D_IN_INTERNAL_DECODER_FACTORY"] = True
@@ -6929,7 +6918,7 @@ index 93034ef6e23e..2f5ff0067bee 100644
FINAL_LIBRARY = "webrtc"
-@@ -39,111 +49,17 @@ if not CONFIG["MOZ_DEBUG"]:
+@@ -43,174 +53,32 @@ if not CONFIG["MOZ_DEBUG"]:
if CONFIG["MOZ_DEBUG"] == "1":
DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "1"
@@ -6948,10 +6937,6 @@ index 93034ef6e23e..2f5ff0067bee 100644
- DEFINES["__STDC_CONSTANT_MACROS"] = True
- DEFINES["__STDC_FORMAT_MACROS"] = True
-
-- OS_LIBS += [
-- "log"
-- ]
--
-if CONFIG["OS_TARGET"] == "Darwin":
-
- DEFINES["WEBRTC_MAC"] = True
@@ -7026,6 +7011,10 @@ index 93034ef6e23e..2f5ff0067bee 100644
-if CONFIG["TARGET_CPU"] == "arm":
-
+- CXXFLAGS += [
+- "-mfpu=neon"
+- ]
+-
- DEFINES["WEBRTC_ARCH_ARM"] = True
- DEFINES["WEBRTC_ARCH_ARM_V7"] = True
- DEFINES["WEBRTC_HAS_NEON"] = True
@@ -7042,10 +7031,12 @@ index 93034ef6e23e..2f5ff0067bee 100644
if CONFIG["TARGET_CPU"] == "x86":
-@@ -153,50 +69,8 @@ if CONFIG["TARGET_CPU"] == "x86_64":
-
- DEFINES["WEBRTC_ENABLE_AVX2"] = True
-
+- DEFINES["WEBRTC_ENABLE_AVX2"] = True
+-
+-if CONFIG["TARGET_CPU"] == "x86_64":
+-
+- DEFINES["WEBRTC_ENABLE_AVX2"] = True
+-
-if CONFIG["MOZ_DEBUG"] == "1" and CONFIG["OS_TARGET"] == "Android":
-
- DEFINES["_DEBUG"] = True
@@ -7067,16 +7058,21 @@ index 93034ef6e23e..2f5ff0067bee 100644
- DEFINES["_HAS_ITERATOR_DEBUGGING"] = "0"
-
-if CONFIG["MOZ_X11"] == "1" and CONFIG["OS_TARGET"] == "Linux":
-+if CONFIG["MOZ_X11"] == "1" and CONFIG["OS_TARGET"] == "FreeBSD":
-
- DEFINES["USE_X11"] = "1"
-
+-
+- DEFINES["USE_X11"] = "1"
+-
-if CONFIG["OS_TARGET"] == "Android" and CONFIG["TARGET_CPU"] == "arm":
-
- OS_LIBS += [
- "unwind"
- ]
-
+-if CONFIG["OS_TARGET"] == "Android" and CONFIG["TARGET_CPU"] == "x86":
+-
+ CXXFLAGS += [
+ "-msse2"
+ ]
+
-if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "aarch64":
-
- DEFINES["_GNU_SOURCE"] = True
@@ -7086,18 +7082,27 @@ index 93034ef6e23e..2f5ff0067bee 100644
- DEFINES["_GNU_SOURCE"] = True
-
-if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "x86":
--
++ DEFINES["WEBRTC_ENABLE_AVX2"] = True
+
+- CXXFLAGS += [
+- "-msse2"
+- ]
++if CONFIG["TARGET_CPU"] == "x86_64":
+
- DEFINES["_GNU_SOURCE"] = True
--
++ DEFINES["WEBRTC_ENABLE_AVX2"] = True
+
-if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "x86_64":
--
++if CONFIG["MOZ_X11"] == "1" and CONFIG["OS_TARGET"] == "FreeBSD":
+
- DEFINES["_GNU_SOURCE"] = True
--
- Library("frame_encryptor_interface_gn")
-diff --git third_party/libwebrtc/api/crypto/options_gn/moz.build third_party/libwebrtc/api/crypto/options_gn/moz.build
-index 9b5cca4f8b98..33542ced4242 100644
---- third_party/libwebrtc/api/crypto/options_gn/moz.build
-+++ third_party/libwebrtc/api/crypto/options_gn/moz.build
++ DEFINES["USE_X11"] = "1"
+
+ Library("options_gn")
+diff --git third_party/libwebrtc/api/environment/environment_factory_gn/moz.build third_party/libwebrtc/api/environment/environment_factory_gn/moz.build
+index 77a2224baf94..5c7930031464 100644
+--- third_party/libwebrtc/api/environment/environment_factory_gn/moz.build
++++ third_party/libwebrtc/api/environment/environment_factory_gn/moz.build
@@ -12,11 +12,21 @@ AllowCompilerWarnings()
DEFINES["ABSL_ALLOCATOR_NOTHROW"] = "1"
DEFINES["RTC_DAV1D_IN_INTERNAL_DECODER_FACTORY"] = True
@@ -7120,7 +7125,7 @@ index 9b5cca4f8b98..33542ced4242 100644
FINAL_LIBRARY = "webrtc"
-@@ -43,174 +53,32 @@ if not CONFIG["MOZ_DEBUG"]:
+@@ -43,189 +53,32 @@ if not CONFIG["MOZ_DEBUG"]:
if CONFIG["MOZ_DEBUG"] == "1":
DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "1"
@@ -7139,6 +7144,10 @@ index 9b5cca4f8b98..33542ced4242 100644
- DEFINES["__STDC_CONSTANT_MACROS"] = True
- DEFINES["__STDC_FORMAT_MACROS"] = True
-
+- OS_LIBS += [
+- "log"
+- ]
+-
-if CONFIG["OS_TARGET"] == "Darwin":
-
- DEFINES["WEBRTC_MAC"] = True
@@ -7164,6 +7173,10 @@ index 9b5cca4f8b98..33542ced4242 100644
- DEFINES["__STDC_CONSTANT_MACROS"] = True
- DEFINES["__STDC_FORMAT_MACROS"] = True
-
+- OS_LIBS += [
+- "rt"
+- ]
+-
-if CONFIG["OS_TARGET"] == "OpenBSD":
-
- DEFINES["USE_GLIB"] = "1"
@@ -7204,6 +7217,13 @@ index 9b5cca4f8b98..33542ced4242 100644
- DEFINES["_WIN32_WINNT"] = "0x0A00"
- DEFINES["_WINDOWS"] = True
- DEFINES["__STD_C"] = True
+-
+- OS_LIBS += [
+- "crypt32",
+- "iphlpapi",
+- "secur32",
+- "winmm"
+- ]
+ DEFINES["_DEBUG"] = True
if CONFIG["TARGET_CPU"] == "aarch64":
@@ -7300,7 +7320,7 @@ index 9b5cca4f8b98..33542ced4242 100644
- DEFINES["_GNU_SOURCE"] = True
+ DEFINES["USE_X11"] = "1"
- Library("options_gn")
+ Library("environment_factory_gn")
diff --git third_party/libwebrtc/api/environment/environment_gn/moz.build third_party/libwebrtc/api/environment/environment_gn/moz.build
index e7105ff57383..b7d434e7f0e5 100644
--- third_party/libwebrtc/api/environment/environment_gn/moz.build
@@ -13479,6 +13499,193 @@ index 1f52ba37d7d4..26728a141487 100644
- DEFINES["_GNU_SOURCE"] = True
-
Library("simulated_network_api_gn")
+diff --git third_party/libwebrtc/api/task_queue/default_task_queue_factory_gn/moz.build third_party/libwebrtc/api/task_queue/default_task_queue_factory_gn/moz.build
+index 0911b84473f5..2525ec25c7b0 100644
+--- third_party/libwebrtc/api/task_queue/default_task_queue_factory_gn/moz.build
++++ third_party/libwebrtc/api/task_queue/default_task_queue_factory_gn/moz.build
+@@ -12,11 +12,21 @@ AllowCompilerWarnings()
+ DEFINES["ABSL_ALLOCATOR_NOTHROW"] = "1"
+ DEFINES["RTC_DAV1D_IN_INTERNAL_DECODER_FACTORY"] = True
+ DEFINES["RTC_ENABLE_VP9"] = True
++DEFINES["USE_GLIB"] = "1"
++DEFINES["USE_OZONE"] = "1"
++DEFINES["WEBRTC_BSD"] = True
++DEFINES["WEBRTC_ENABLE_LIBEVENT"] = True
+ DEFINES["WEBRTC_ENABLE_PROTOBUF"] = "0"
+ DEFINES["WEBRTC_LIBRARY_IMPL"] = True
+ DEFINES["WEBRTC_MOZILLA_BUILD"] = True
+ DEFINES["WEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS"] = "0"
++DEFINES["WEBRTC_POSIX"] = True
+ DEFINES["WEBRTC_STRICT_FIELD_TRIALS"] = "0"
++DEFINES["_FILE_OFFSET_BITS"] = "64"
++DEFINES["_LARGEFILE64_SOURCE"] = True
++DEFINES["_LARGEFILE_SOURCE"] = True
++DEFINES["__STDC_CONSTANT_MACROS"] = True
++DEFINES["__STDC_FORMAT_MACROS"] = True
+
+ FINAL_LIBRARY = "webrtc"
+
+@@ -39,107 +49,17 @@ if not CONFIG["MOZ_DEBUG"]:
+ if CONFIG["MOZ_DEBUG"] == "1":
+
+ DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "1"
+-
+-if CONFIG["OS_TARGET"] == "Android":
+-
+- DEFINES["ANDROID"] = True
+- DEFINES["ANDROID_NDK_VERSION_ROLL"] = "r22_1"
+- DEFINES["HAVE_SYS_UIO_H"] = True
+- DEFINES["WEBRTC_ANDROID"] = True
+- DEFINES["WEBRTC_ANDROID_OPENSLES"] = True
+- DEFINES["WEBRTC_ENABLE_LIBEVENT"] = True
+- DEFINES["WEBRTC_LINUX"] = True
+- DEFINES["WEBRTC_POSIX"] = True
+- DEFINES["_GNU_SOURCE"] = True
+- DEFINES["__STDC_CONSTANT_MACROS"] = True
+- DEFINES["__STDC_FORMAT_MACROS"] = True
+-
+-if CONFIG["OS_TARGET"] == "Darwin":
+-
+- DEFINES["WEBRTC_MAC"] = True
+- DEFINES["WEBRTC_POSIX"] = True
+- DEFINES["_LIBCPP_HAS_NO_ALIGNED_ALLOCATION"] = True
+- DEFINES["__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES"] = "0"
+- DEFINES["__STDC_CONSTANT_MACROS"] = True
+- DEFINES["__STDC_FORMAT_MACROS"] = True
+-
+-if CONFIG["OS_TARGET"] == "Linux":
+-
+- DEFINES["USE_AURA"] = "1"
+- DEFINES["USE_GLIB"] = "1"
+- DEFINES["USE_NSS_CERTS"] = "1"
+- DEFINES["USE_OZONE"] = "1"
+- DEFINES["USE_UDEV"] = True
+- DEFINES["WEBRTC_ENABLE_LIBEVENT"] = True
+- DEFINES["WEBRTC_LINUX"] = True
+- DEFINES["WEBRTC_POSIX"] = True
+- DEFINES["_FILE_OFFSET_BITS"] = "64"
+- DEFINES["_LARGEFILE64_SOURCE"] = True
+- DEFINES["_LARGEFILE_SOURCE"] = True
+- DEFINES["__STDC_CONSTANT_MACROS"] = True
+- DEFINES["__STDC_FORMAT_MACROS"] = True
+-
+-if CONFIG["OS_TARGET"] == "OpenBSD":
+-
+- DEFINES["USE_GLIB"] = "1"
+- DEFINES["USE_OZONE"] = "1"
+- DEFINES["USE_X11"] = "1"
+- DEFINES["WEBRTC_BSD"] = True
+- DEFINES["WEBRTC_ENABLE_LIBEVENT"] = True
+- DEFINES["WEBRTC_POSIX"] = True
+- DEFINES["_FILE_OFFSET_BITS"] = "64"
+- DEFINES["_LARGEFILE64_SOURCE"] = True
+- DEFINES["_LARGEFILE_SOURCE"] = True
+- DEFINES["__STDC_CONSTANT_MACROS"] = True
+- DEFINES["__STDC_FORMAT_MACROS"] = True
+-
+-if CONFIG["OS_TARGET"] == "WINNT":
+-
+- DEFINES["CERT_CHAIN_PARA_HAS_EXTRA_FIELDS"] = True
+- DEFINES["NOMINMAX"] = True
+- DEFINES["NTDDI_VERSION"] = "0x0A000000"
+- DEFINES["PSAPI_VERSION"] = "2"
+- DEFINES["RTC_ENABLE_WIN_WGC"] = True
+- DEFINES["UNICODE"] = True
+- DEFINES["USE_AURA"] = "1"
+- DEFINES["WEBRTC_WIN"] = True
+- DEFINES["WIN32"] = True
+- DEFINES["WIN32_LEAN_AND_MEAN"] = True
+- DEFINES["WINAPI_FAMILY"] = "WINAPI_FAMILY_DESKTOP_APP"
+- DEFINES["WINVER"] = "0x0A00"
+- DEFINES["_ATL_NO_OPENGL"] = True
+- DEFINES["_CRT_RAND_S"] = True
+- DEFINES["_CRT_SECURE_NO_DEPRECATE"] = True
+- DEFINES["_ENABLE_EXTENDED_ALIGNED_STORAGE"] = True
+- DEFINES["_HAS_EXCEPTIONS"] = "0"
+- DEFINES["_HAS_NODISCARD"] = True
+- DEFINES["_SCL_SECURE_NO_DEPRECATE"] = True
+- DEFINES["_SECURE_ATL"] = True
+- DEFINES["_UNICODE"] = True
+- DEFINES["_WIN32_WINNT"] = "0x0A00"
+- DEFINES["_WINDOWS"] = True
+- DEFINES["__STD_C"] = True
++ DEFINES["_DEBUG"] = True
+
+ if CONFIG["TARGET_CPU"] == "aarch64":
+
+ DEFINES["WEBRTC_ARCH_ARM64"] = True
+ DEFINES["WEBRTC_HAS_NEON"] = True
+
+-if CONFIG["TARGET_CPU"] == "arm":
+-
+- DEFINES["WEBRTC_ARCH_ARM"] = True
+- DEFINES["WEBRTC_ARCH_ARM_V7"] = True
+- DEFINES["WEBRTC_HAS_NEON"] = True
+-
+ if CONFIG["TARGET_CPU"] == "mips32":
+
+ DEFINES["MIPS32_LE"] = True
+ DEFINES["MIPS_FPU_LE"] = True
+- DEFINES["_GNU_SOURCE"] = True
+-
+-if CONFIG["TARGET_CPU"] == "mips64":
+-
+- DEFINES["_GNU_SOURCE"] = True
+
+ if CONFIG["TARGET_CPU"] == "x86":
+
+@@ -149,50 +69,8 @@ if CONFIG["TARGET_CPU"] == "x86_64":
+
+ DEFINES["WEBRTC_ENABLE_AVX2"] = True
+
+-if CONFIG["MOZ_DEBUG"] == "1" and CONFIG["OS_TARGET"] == "Android":
+-
+- DEFINES["_DEBUG"] = True
+-
+-if CONFIG["MOZ_DEBUG"] == "1" and CONFIG["OS_TARGET"] == "Darwin":
+-
+- DEFINES["_DEBUG"] = True
+-
+-if CONFIG["MOZ_DEBUG"] == "1" and CONFIG["OS_TARGET"] == "Linux":
+-
+- DEFINES["_DEBUG"] = True
+-
+-if CONFIG["MOZ_DEBUG"] == "1" and CONFIG["OS_TARGET"] == "OpenBSD":
+-
+- DEFINES["_DEBUG"] = True
+-
+-if CONFIG["MOZ_DEBUG"] == "1" and CONFIG["OS_TARGET"] == "WINNT":
+-
+- DEFINES["_HAS_ITERATOR_DEBUGGING"] = "0"
+-
+-if CONFIG["MOZ_X11"] == "1" and CONFIG["OS_TARGET"] == "Linux":
++if CONFIG["MOZ_X11"] == "1" and CONFIG["OS_TARGET"] == "FreeBSD":
+
+ DEFINES["USE_X11"] = "1"
+
+-if CONFIG["OS_TARGET"] == "Android" and CONFIG["TARGET_CPU"] == "arm":
+-
+- OS_LIBS += [
+- "unwind"
+- ]
+-
+-if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "aarch64":
+-
+- DEFINES["_GNU_SOURCE"] = True
+-
+-if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "arm":
+-
+- DEFINES["_GNU_SOURCE"] = True
+-
+-if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "x86":
+-
+- DEFINES["_GNU_SOURCE"] = True
+-
+-if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "x86_64":
+-
+- DEFINES["_GNU_SOURCE"] = True
+-
+ Library("default_task_queue_factory_gn")
diff --git third_party/libwebrtc/api/task_queue/pending_task_safety_flag_gn/moz.build third_party/libwebrtc/api/task_queue/pending_task_safety_flag_gn/moz.build
index 43229b22ed5c..e8094ed7f16d 100644
--- third_party/libwebrtc/api/task_queue/pending_task_safety_flag_gn/moz.build
@@ -65853,10 +66060,10 @@ index 883e5c70b24b..caec155ca861 100644
Library("webrtc_vp9_helpers_gn")
diff --git third_party/libwebrtc/moz.build third_party/libwebrtc/moz.build
-index ad1adce75739..55860774ec2c 100644
+index 59472bdc9b56..45b99de39516 100644
--- third_party/libwebrtc/moz.build
+++ third_party/libwebrtc/moz.build
-@@ -265,6 +265,8 @@ DIRS += [
+@@ -266,6 +266,8 @@ DIRS += [
"/third_party/libwebrtc/modules/congestion_controller/goog_cc/send_side_bwe_gn",
"/third_party/libwebrtc/modules/congestion_controller/rtp/control_handler_gn",
"/third_party/libwebrtc/modules/congestion_controller/rtp/transport_feedback_gn",
@@ -65865,7 +66072,7 @@ index ad1adce75739..55860774ec2c 100644
"/third_party/libwebrtc/modules/module_api_gn",
"/third_party/libwebrtc/modules/module_api_public_gn",
"/third_party/libwebrtc/modules/module_fec_api_gn",
-@@ -464,102 +466,11 @@ DIRS += [
+@@ -465,102 +467,11 @@ DIRS += [
"/third_party/libwebrtc/webrtc_gn"
]
@@ -65969,7 +66176,7 @@ index ad1adce75739..55860774ec2c 100644
"/third_party/libwebrtc/modules/portal/portal_gn",
"/third_party/libwebrtc/third_party/drm/drm_gn",
"/third_party/libwebrtc/third_party/gbm/gbm_gn",
-@@ -567,26 +478,9 @@ if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "aarch64":
+@@ -568,26 +479,9 @@ if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "aarch64":
"/third_party/libwebrtc/third_party/pipewire/pipewire_gn"
]
@@ -65997,7 +66204,7 @@ index ad1adce75739..55860774ec2c 100644
"/third_party/libwebrtc/modules/portal/portal_gn",
"/third_party/libwebrtc/third_party/drm/drm_gn",
"/third_party/libwebrtc/third_party/gbm/gbm_gn",
-@@ -594,11 +488,9 @@ if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "mips32":
+@@ -595,11 +489,9 @@ if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "mips32":
"/third_party/libwebrtc/third_party/pipewire/pipewire_gn"
]
@@ -66010,7 +66217,7 @@ index ad1adce75739..55860774ec2c 100644
"/third_party/libwebrtc/modules/portal/portal_gn",
"/third_party/libwebrtc/third_party/drm/drm_gn",
"/third_party/libwebrtc/third_party/gbm/gbm_gn",
-@@ -606,7 +498,7 @@ if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "mips64":
+@@ -607,7 +499,7 @@ if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "mips64":
"/third_party/libwebrtc/third_party/pipewire/pipewire_gn"
]
@@ -66019,7 +66226,7 @@ index ad1adce75739..55860774ec2c 100644
DIRS += [
"/third_party/libwebrtc/common_audio/common_audio_avx2_gn",
-@@ -614,8 +506,6 @@ if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "x86":
+@@ -615,8 +507,6 @@ if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "x86":
"/third_party/libwebrtc/modules/audio_processing/aec3/aec3_avx2_gn",
"/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/vector_math_avx2_gn",
"/third_party/libwebrtc/modules/desktop_capture/desktop_capture_differ_sse2_gn",
@@ -66028,7 +66235,7 @@ index ad1adce75739..55860774ec2c 100644
"/third_party/libwebrtc/modules/portal/portal_gn",
"/third_party/libwebrtc/third_party/drm/drm_gn",
"/third_party/libwebrtc/third_party/gbm/gbm_gn",
-@@ -623,7 +513,7 @@ if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "x86":
+@@ -624,7 +514,7 @@ if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "x86":
"/third_party/libwebrtc/third_party/pipewire/pipewire_gn"
]
@@ -66037,7 +66244,7 @@ index ad1adce75739..55860774ec2c 100644
DIRS += [
"/third_party/libwebrtc/common_audio/common_audio_avx2_gn",
-@@ -631,69 +521,9 @@ if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "x86_64":
+@@ -632,69 +522,9 @@ if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "x86_64":
"/third_party/libwebrtc/modules/audio_processing/aec3/aec3_avx2_gn",
"/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/vector_math_avx2_gn",
"/third_party/libwebrtc/modules/desktop_capture/desktop_capture_differ_sse2_gn",
@@ -95839,7 +96046,7 @@ index e38fabc4cc62..0d30b9bd4787 100644
Library("unique_timestamp_counter_gn")
diff --git third_party/libwebrtc/video/video_gn/moz.build third_party/libwebrtc/video/video_gn/moz.build
-index 5e3d75d621df..a7091e452af6 100644
+index 1106f274c25d..fb1f9c3097d2 100644
--- third_party/libwebrtc/video/video_gn/moz.build
+++ third_party/libwebrtc/video/video_gn/moz.build
@@ -12,11 +12,21 @@ AllowCompilerWarnings()
@@ -95864,7 +96071,7 @@ index 5e3d75d621df..a7091e452af6 100644
FINAL_LIBRARY = "webrtc"
-@@ -63,190 +73,32 @@ if not CONFIG["MOZ_DEBUG"]:
+@@ -62,190 +72,32 @@ if not CONFIG["MOZ_DEBUG"]:
if CONFIG["MOZ_DEBUG"] == "1":
DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "1"
diff --git a/www/firefox/files/patch-rust-1.78.0 b/www/firefox/files/patch-rust-1.78.0
new file mode 100644
index 000000000000..ebad1becefa5
--- /dev/null
+++ b/www/firefox/files/patch-rust-1.78.0
@@ -0,0 +1,3562 @@
+
+# HG changeset patch
+# User Henri Sivonen <hsivonen@hsivonen.fi>
+# Date 1714462184 0
+# Node ID 1db2ef126a6a8555dbf50345e16492c977b42e92
+# Parent a545e84b3674c4878f2e618b7bce23058f2ac690
+Bug 1882209 - Update encoding_rs to 0.8.34 to deal with rustc changes. r=glandium,supply-chain-reviewers
+
+Differential Revision: https://phabricator.services.mozilla.com/D207167
+
+diff --git a/.cargo/config.toml.in b/.cargo/config.toml.in
+--- .cargo/config.toml.in
++++ .cargo/config.toml.in
+@@ -35,16 +35,21 @@ git = "https://github.com/gfx-rs/wgpu"
+ rev = "2b0e3ed01cfcc4bcccc7fd63b2581b260c00b089"
+ replace-with = "vendored-sources"
+
+ [source."git+https://github.com/glandium/mio?rev=9a2ef335c366044ffe73b1c4acabe50a1daefe05"]
+ git = "https://github.com/glandium/mio"
+ rev = "9a2ef335c366044ffe73b1c4acabe50a1daefe05"
+ replace-with = "vendored-sources"
+
++[source."git+https://github.com/hsivonen/any_all_workaround?rev=7fb1b7034c9f172aade21ee1c8554e8d8a48af80"]
++git = "https://github.com/hsivonen/any_all_workaround"
++rev = "7fb1b7034c9f172aade21ee1c8554e8d8a48af80"
++replace-with = "vendored-sources"
++
+ [source."git+https://github.com/hsivonen/chardetng?rev=3484d3e3ebdc8931493aa5df4d7ee9360a90e76b"]
+ git = "https://github.com/hsivonen/chardetng"
+ rev = "3484d3e3ebdc8931493aa5df4d7ee9360a90e76b"
+ replace-with = "vendored-sources"
+
+ [source."git+https://github.com/hsivonen/chardetng_c?rev=ed8a4c6f900a90d4dbc1d64b856e61490a1c3570"]
+ git = "https://github.com/hsivonen/chardetng_c"
+ rev = "ed8a4c6f900a90d4dbc1d64b856e61490a1c3570"
+diff --git a/Cargo.lock b/Cargo.lock
+--- Cargo.lock
++++ Cargo.lock
+@@ -87,16 +87,25 @@ dependencies = [
+
+ [[package]]
+ name = "anstyle"
+ version = "1.0.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "b84bf0a05bbb2a83e5eb6fa36bb6e87baa08193c35ff52bbf6b38d8af2890e46"
+
+ [[package]]
++name = "any_all_workaround"
++version = "0.1.0"
++source = "git+https://github.com/hsivonen/any_all_workaround?rev=7fb1b7034c9f172aade21ee1c8554e8d8a48af80#7fb1b7034c9f172aade21ee1c8554e8d8a48af80"
++dependencies = [
++ "cfg-if 1.0.0",
++ "version_check",
++]
++
++[[package]]
+ name = "anyhow"
+ version = "1.0.69"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800"
+
+ [[package]]
+ name = "app_services_logger"
+ version = "0.1.0"
+@@ -1571,22 +1580,22 @@ dependencies = [
+ "encoding_rs",
+ "nserror",
+ "nsstring",
+ "xmldecl",
+ ]
+
+ [[package]]
+ name = "encoding_rs"
+-version = "0.8.33"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+-dependencies = [
++version = "0.8.34"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"
++dependencies = [
++ "any_all_workaround",
+ "cfg-if 1.0.0",
+- "packed_simd",
+ ]
+
+ [[package]]
+ name = "enum-map"
+ version = "2.7.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "6866f3bfdf8207509a033af1a75a7b08abda06bbaaeae6669323fd5a097df2e9"
+ dependencies = [
+@@ -4321,26 +4330,16 @@ checksum = "8d91edf4fbb970279443471345a4
+ name = "oxilangtag-ffi"
+ version = "0.1.0"
+ dependencies = [
+ "nsstring",
+ "oxilangtag",
+ ]
+
+ [[package]]
+-name = "packed_simd"
+-version = "0.3.9"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1f9f08af0c877571712e2e3e686ad79efad9657dbf0f7c3c8ba943ff6c38932d"
+-dependencies = [
+- "cfg-if 1.0.0",
+- "num-traits",
+-]
+-
+-[[package]]
+ name = "parking_lot"
+ version = "0.12.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+ dependencies = [
+ "lock_api",
+ "parking_lot_core",
+ ]
+diff --git a/Cargo.toml b/Cargo.toml
+--- Cargo.toml
++++ Cargo.toml
+@@ -188,16 +188,17 @@ moz_asserts = { path = "mozglue/static/r
+ rure = { path = "third_party/rust/rure" }
+
+ # To-be-published changes.
+ cssparser = { git = "https://github.com/servo/rust-cssparser", rev = "aaa966d9d6ae70c4b8a62bb5e3a14c068bb7dff0" }
+ cssparser-macros = { git = "https://github.com/servo/rust-cssparser", rev = "aaa966d9d6ae70c4b8a62bb5e3a14c068bb7dff0" }
+ unicode-bidi = { git = "https://github.com/servo/unicode-bidi", rev = "ca612daf1c08c53abe07327cb3e6ef6e0a760f0c" }
+
+ # Other overrides
++any_all_workaround = { git = "https://github.com/hsivonen/any_all_workaround", rev = "7fb1b7034c9f172aade21ee1c8554e8d8a48af80" }
+ chardetng = { git = "https://github.com/hsivonen/chardetng", rev = "3484d3e3ebdc8931493aa5df4d7ee9360a90e76b" }
+ chardetng_c = { git = "https://github.com/hsivonen/chardetng_c", rev = "ed8a4c6f900a90d4dbc1d64b856e61490a1c3570" }
+ coremidi = { git = "https://github.com/chris-zen/coremidi.git", rev = "fc68464b5445caf111e41f643a2e69ccce0b4f83" }
+ cose = { git = "https://github.com/franziskuskiefer/cose-rust", rev = "43c22248d136c8b38fe42ea709d08da6355cf04b" }
+ firefox-on-glean = { path = "toolkit/components/glean/api" }
+ icu_capi = { path = "intl/icu_capi" }
+ icu_segmenter_data = { path = "intl/icu_segmenter_data" }
+ libudev-sys = { path = "dom/webauthn/libudev-sys" }
+diff --git a/config/makefiles/rust.mk b/config/makefiles/rust.mk
+--- config/makefiles/rust.mk
++++ config/makefiles/rust.mk
+@@ -260,17 +260,17 @@ export COREAUDIO_SDK_PATH=$(IPHONEOS_SDK
+ export IPHONEOS_SDK_DIR
+ PATH := $(topsrcdir)/build/macosx:$(PATH)
+ endif
+ endif
+
+ ifndef RUSTC_BOOTSTRAP
+ RUSTC_BOOTSTRAP := mozglue_static,qcms
+ ifdef MOZ_RUST_SIMD
+-RUSTC_BOOTSTRAP := $(RUSTC_BOOTSTRAP),encoding_rs,packed_simd
++RUSTC_BOOTSTRAP := $(RUSTC_BOOTSTRAP),encoding_rs,any_all_workaround
+ endif
+ export RUSTC_BOOTSTRAP
+ endif
+
+ target_rust_ltoable := force-cargo-library-build $(ADD_RUST_LTOABLE)
+ target_rust_nonltoable := force-cargo-test-run force-cargo-program-build
+
+ ifdef MOZ_PGO_RUST
+diff --git a/supply-chain/audits.toml b/supply-chain/audits.toml
+--- supply-chain/audits.toml
++++ supply-chain/audits.toml
+@@ -596,16 +596,29 @@ who = "Mike Hommey <mh+mozilla@glandium.
+ criteria = "safe-to-deploy"
+ delta = "0.1.2 -> 0.1.4"
+
+ [[audits.android_system_properties]]
+ who = "Mike Hommey <mh+mozilla@glandium.org>"
+ criteria = "safe-to-deploy"
+ delta = "0.1.4 -> 0.1.5"
+
++[[audits.any_all_workaround]]
++who = "Henri Sivonen <hsivonen@hsivonen.fi>"
++criteria = "safe-to-deploy"
++version = "0.1.0"
++notes = "The little code that is in this crate I reviewed and modified from packed_simd (which has previously been vendored in full instead of just this small part)."
++
++[[audits.any_all_workaround]]
++who = "Henri Sivonen <hsivonen@hsivonen.fi>"
++criteria = "safe-to-deploy"
++delta = "0.1.0 -> 0.1.0@git:7fb1b7034c9f172aade21ee1c8554e8d8a48af80"
++importable = false
++notes = "This is a trivial workaround copied from elsewhere in m-c, specifically qcms."
++
+ [[audits.anyhow]]
+ who = "Mike Hommey <mh+mozilla@glandium.org>"
+ criteria = "safe-to-deploy"
+ delta = "1.0.57 -> 1.0.61"
+
+ [[audits.anyhow]]
+ who = "Bobby Holley <bobbyholley@gmail.com>"
+ criteria = "safe-to-deploy"
+diff --git a/supply-chain/config.toml b/supply-chain/config.toml
+--- supply-chain/config.toml
++++ supply-chain/config.toml
+@@ -14,16 +14,20 @@ url = "https://raw.githubusercontent.com
+ url = "https://raw.githubusercontent.com/google/supply-chain/main/audits.toml"
+
+ [imports.isrg]
+ url = "https://raw.githubusercontent.com/divviup/libprio-rs/main/supply-chain/audits.toml"
+
+ [imports.mozilla]
+ url = "https://raw.githubusercontent.com/mozilla/supply-chain/main/audits.toml"
+
++[policy.any_all_workaround]
++audit-as-crates-io = true
++notes = "This is the upstream code plus the ARM intrinsics workaround from qcms, see bug 1882209."
++
+ [policy.autocfg]
+ audit-as-crates-io = true
+ notes = "This is the upstream code plus a few local fixes, see bug 1685697."
+
+ [policy.chardetng]
+ audit-as-crates-io = true
+ notes = "This is a crate Henri wrote which is also published. We should probably update Firefox to tip and certify that."
+
+diff --git a/supply-chain/imports.lock b/supply-chain/imports.lock
+--- supply-chain/imports.lock
++++ supply-chain/imports.lock
+@@ -192,16 +192,23 @@ user-name = "David Tolnay"
+
+ [[publisher.encoding_rs]]
+ version = "0.8.33"
+ when = "2023-08-23"
+ user-id = 4484
+ user-login = "hsivonen"
+ user-name = "Henri Sivonen"
+
++[[publisher.encoding_rs]]
++version = "0.8.34"
++when = "2024-04-10"
++user-id = 4484
++user-login = "hsivonen"
++user-name = "Henri Sivonen"
++
+ [[publisher.errno]]
+ version = "0.3.8"
+ when = "2023-11-28"
+ user-id = 6825
+ user-login = "sunfishcode"
+ user-name = "Dan Gohman"
+
+ [[publisher.etagere]]
+diff --git a/third_party/rust/any_all_workaround/.cargo-checksum.json b/third_party/rust/any_all_workaround/.cargo-checksum.json
+new file mode 100644
+--- /dev/null
++++ third_party/rust/any_all_workaround/.cargo-checksum.json
+@@ -0,0 +1,1 @@
++{"files":{"Cargo.toml":"f8c127449dc9432d404c21c99833e4617ab88a797445af249a7fe3c989985d6d","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb","LICENSE-MIT-QCMS":"36d847ae882f6574ebc72f56a4f354e4f104fde4a584373496482e97d52d31bc","README.md":"4c617b8ced3a27b7edecf0e5e41ed451c04e88dab529e7a35fccc4e1551efbd7","build.rs":"56b29ab6da3e49075bfd0a7b690267c8016298bf0d332e2e68bbaf19decbbf71","src/lib.rs":"7118106690b9d25c5d0a3e2079feb83d76f1d434d0da36b9d0351806d27c850d"},"package":null}
+\ No newline at end of file
+diff --git a/third_party/rust/any_all_workaround/Cargo.toml b/third_party/rust/any_all_workaround/Cargo.toml
+new file mode 100644
+--- /dev/null
++++ third_party/rust/any_all_workaround/Cargo.toml
+@@ -0,0 +1,28 @@
++# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
++#
++# When uploading crates to the registry Cargo will automatically
++# "normalize" Cargo.toml files for maximal compatibility
++# with all versions of Cargo and also rewrite `path` dependencies
++# to registry (e.g., crates.io) dependencies.
++#
++# If you are reading this file be aware that the original Cargo.toml
++# will likely look very different (and much more reasonable).
++# See Cargo.toml.orig for the original contents.
++
++[package]
++edition = "2021"
++name = "any_all_workaround"
++version = "0.1.0"
++authors = ["Henri Sivonen <hsivonen@hsivonen.fi>"]
++description = "Workaround for bad LLVM codegen for boolean reductions on 32-bit ARM"
++homepage = "https://docs.rs/any_all_workaround/"
++documentation = "https://docs.rs/any_all_workaround/"
++readme = "README.md"
++license = "MIT OR Apache-2.0"
++repository = "https://github.com/hsivonen/any_all_workaround"
++
++[dependencies]
++cfg-if = "1.0"
++
++[build-dependencies]
++version_check = "0.9"
+diff --git a/third_party/rust/packed_simd/LICENSE-APACHE b/third_party/rust/any_all_workaround/LICENSE-APACHE
+rename from third_party/rust/packed_simd/LICENSE-APACHE
+rename to third_party/rust/any_all_workaround/LICENSE-APACHE
+diff --git a/third_party/rust/packed_simd/LICENSE-MIT b/third_party/rust/any_all_workaround/LICENSE-MIT
+rename from third_party/rust/packed_simd/LICENSE-MIT
+rename to third_party/rust/any_all_workaround/LICENSE-MIT
+diff --git a/third_party/rust/any_all_workaround/LICENSE-MIT-QCMS b/third_party/rust/any_all_workaround/LICENSE-MIT-QCMS
+new file mode 100644
+--- /dev/null
++++ third_party/rust/any_all_workaround/LICENSE-MIT-QCMS
+@@ -0,0 +1,21 @@
++qcms
++Copyright (C) 2009-2024 Mozilla Corporation
++Copyright (C) 1998-2007 Marti Maria
++
++Permission is hereby granted, free of charge, to any person obtaining
++a copy of this software and associated documentation files (the "Software"),
++to deal in the Software without restriction, including without limitation
++the rights to use, copy, modify, merge, publish, distribute, sublicense,
++and/or sell copies of the Software, and to permit persons to whom the Software
++is furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included in
++all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
++THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+diff --git a/third_party/rust/any_all_workaround/README.md b/third_party/rust/any_all_workaround/README.md
+new file mode 100644
+--- /dev/null
++++ third_party/rust/any_all_workaround/README.md
+@@ -0,0 +1,13 @@
++# any_all_workaround
++
++This is a workaround for bad codegen ([Rust bug](https://github.com/rust-lang/portable-simd/issues/146), [LLVM bug](https://github.com/llvm/llvm-project/issues/50466)) for the `any()` and `all()` reductions for NEON-backed SIMD vectors on 32-bit ARM. On other platforms these delegate to `any()` and `all()` in `core::simd`.
++
++The plan is to abandon this crate once the LLVM bug is fixed or `core::simd` works around the LLVM bug.
++
++The code is forked from the [`packed_simd` crate](https://raw.githubusercontent.com/hsivonen/packed_simd/d938e39bee9bc5c222f5f2f2a0df9e53b5ce36ae/src/codegen/reductions/mask/arm.rs).
++
++This crate requires Nightly Rust as it depends on the `portable_simd` feature.
++
++# License
++
++`MIT OR Apache-2.0`, since that's how `packed_simd` is licensed. (The ARM intrinsics Rust version workaround is from qcms, see LICENSE-MIT-QCMS.)
+diff --git a/third_party/rust/any_all_workaround/build.rs b/third_party/rust/any_all_workaround/build.rs
+new file mode 100644
+--- /dev/null
++++ third_party/rust/any_all_workaround/build.rs
+@@ -0,0 +1,7 @@
++extern crate version_check as rustc;
++
++fn main() {
++ if rustc::is_min_version("1.78.0").unwrap_or(false) {
++ println!("cargo:rustc-cfg=stdsimd_split");
++ }
++}
+diff --git a/third_party/rust/any_all_workaround/src/lib.rs b/third_party/rust/any_all_workaround/src/lib.rs
+new file mode 100644
+--- /dev/null
++++ third_party/rust/any_all_workaround/src/lib.rs
+@@ -0,0 +1,110 @@
++// This code began as a fork of
++// https://raw.githubusercontent.com/rust-lang/packed_simd/d938e39bee9bc5c222f5f2f2a0df9e53b5ce36ae/src/codegen/reductions/mask/arm.rs
++// which didn't have a license header on the file, but Cargo.toml said "MIT OR Apache-2.0".
++// See LICENSE-MIT and LICENSE-APACHE.
++
++#![no_std]
++#![feature(portable_simd)]
++#![cfg_attr(
++ all(
++ stdsimd_split,
++ target_arch = "arm",
++ target_endian = "little",
++ target_feature = "neon",
++ target_feature = "v7"
++ ),
++ feature(stdarch_arm_neon_intrinsics)
++)]
++#![cfg_attr(
++ all(
++ not(stdsimd_split),
++ target_arch = "arm",
++ target_endian = "little",
++ target_feature = "neon",
++ target_feature = "v7"
++ ),
++ feature(stdsimd)
++)]
++
++use cfg_if::cfg_if;
++use core::simd::mask16x8;
++use core::simd::mask32x4;
++use core::simd::mask8x16;
++
++cfg_if! {
++ if #[cfg(all(target_arch = "arm", target_endian = "little", target_feature = "neon", target_feature = "v7"))] {
++ use core::simd::mask8x8;
++ use core::simd::mask16x4;
++ use core::simd::mask32x2;
++ macro_rules! arm_128_v7_neon_impl {
++ ($all:ident, $any:ident, $id:ident, $half:ident, $vpmin:ident, $vpmax:ident) => {
++ #[inline]
++ pub fn $all(s: $id) -> bool {
++ use core::arch::arm::$vpmin;
++ use core::mem::transmute;
++ unsafe {
++ union U {
++ halves: ($half, $half),
++ vec: $id,
++ }
++ let halves = U { vec: s }.halves;
++ let h: $half = transmute($vpmin(transmute(halves.0), transmute(halves.1)));
++ h.all()
++ }
++ }
++ #[inline]
++ pub fn $any(s: $id) -> bool {
++ use core::arch::arm::$vpmax;
++ use core::mem::transmute;
++ unsafe {
++ union U {
++ halves: ($half, $half),
++ vec: $id,
++ }
++ let halves = U { vec: s }.halves;
++ let h: $half = transmute($vpmax(transmute(halves.0), transmute(halves.1)));
++ h.any()
++ }
++ }
++ }
++ }
++ } else {
++ macro_rules! arm_128_v7_neon_impl {
++ ($all:ident, $any:ident, $id:ident, $half:ident, $vpmin:ident, $vpmax:ident) => {
++ #[inline(always)]
++ pub fn $all(s: $id) -> bool {
++ s.all()
++ }
++ #[inline(always)]
++ pub fn $any(s: $id) -> bool {
++ s.any()
++ }
++ }
++ }
++ }
++}
++
++arm_128_v7_neon_impl!(
++ all_mask8x16,
++ any_mask8x16,
++ mask8x16,
++ mask8x8,
++ vpmin_u8,
++ vpmax_u8
++);
++arm_128_v7_neon_impl!(
++ all_mask16x8,
++ any_mask16x8,
++ mask16x8,
++ mask16x4,
++ vpmin_u16,
++ vpmax_u16
++);
++arm_128_v7_neon_impl!(
++ all_mask32x4,
++ any_mask32x4,
++ mask32x4,
++ mask32x2,
++ vpmin_u32,
++ vpmax_u32
++);
+diff --git a/third_party/rust/encoding_rs/.cargo-checksum.json b/third_party/rust/encoding_rs/.cargo-checksum.json
+--- third_party/rust/encoding_rs/.cargo-checksum.json
++++ third_party/rust/encoding_rs/.cargo-checksum.json
+@@ -1,1 +1,1 @@
+-{"files":{"CONTRIBUTING.md":"ca1901f3e8532fb4cec894fd3664f0eaa898c0c4b961d1b992d1ed54eacf362a","COPYRIGHT":"11789f45bb180841cd362a5eee6789c68ddb573a11105e30768c308a6add0190","Cargo.toml":"42fa83322aa9fd6723b77d35d0cacb92cbb6e7f573ce11c55f5225292866f8f4","Ideas.md":"b7452893f500163868d8de52c09addaf91e1632454ed02e892c467ed7ec39dbd","LICENSE-APACHE":"cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30","LICENSE-MIT":"3fa4ca83dcc9237839b1bdeb2e6d16bdfb5ec0c5ce42b24694d8bbf0dcbef72c","LICENSE-WHATWG":"838118388fe5c2e7f1dbbaeed13e1c7f3ebf88be91319c7c1d77c18e987d1a50","README.md":"d938e8ab0b9ab67e74a1a4f48f23fdce956d0ad3a3f6147ae7612a92763c88d5","ci/miri.sh":"43cb8d82f49e3bfe2d2274b6ccd6f0714a4188ccef0cecc040829883cfdbee25","doc/Big5.txt":"f73a2edc5cb6c2d140ba6e07f4542e1c4a234950378acde1df93480f0ca0be0b","doc/EUC-JP.txt":"ee2818b907d0137f40a9ab9fd525fc700a44dbdddb6cf0c157a656566bae4bf1","doc/EUC-KR.txt":"71d9e2ccf3b124e8bdfb433c8cf2773fd878077038d0cec3c7237a50f4a78a30","doc/GBK.txt":"c1b522b5a799884e5001da661f42c5a8f4d0acb9ef1d74b206f22b5f65365606","doc/IBM866.txt":"a5a433e804d0f83af785015179fbc1d9b0eaf1f7960efcd04093e136b51fbd0e","doc/ISO-2022-JP.txt":"af86684f5a8f0e2868d7b2c292860140c3d2e5527530ca091f1b28198e8e2fe6","doc/ISO-8859-10.txt":"6d3949ad7c81ca176895101ed81a1db7df1060d64e262880b94bd31bb344ab4d","doc/ISO-8859-13.txt":"3951dd89cf93f7729148091683cf8511f4529388b7dc8dcd0d62eaed55be93fa","doc/ISO-8859-14.txt":"3d330784a0374fd255a38b47949675cc7168c800530534b0a01cac6edc623adc","doc/ISO-8859-15.txt":"24b1084aab5127a85aab99153f86e24694d0a3615f53b5ce23683f97cf66c47a","doc/ISO-8859-16.txt":"ce0272559b92ba76d7a7e476f6424ae4a5cc72e75b183611b08392e44add4d25","doc/ISO-8859-2.txt":"18ceff88c13d1b5ba455a3919b1e3de489045c4c3d2dd7e8527c125c75d54aad","doc/ISO-8859-3.txt":"21798404c68f4f5db59223362f24999da96968c0628427321fccce7d2849a130","doc/ISO-8859-4.txt":"d27f6520c6c5bfbcc19176b71d081cdb3bccde1622bb3e420d5680e812632d53","doc/ISO-8859-5.txt":"a10ec8d6ea7a78ad15da7275f6cb1a3365118527e28f9af6d0d5830501303f3a","doc/ISO-8859-6.txt":"ccda8a2efc96115336bdd77776637b9712425e44fbcf745353b9057fbef144e7","doc/ISO-8859-7.txt":"17900fa1f27a445958f0a77d7d9056be375a6bd7ee4492aa680c7c1500bab85e","doc/ISO-8859-8-I.txt":"8357555646d54265a9b9ffa3e68b08d132312f1561c60108ff9b8b1167b6ecf2","doc/ISO-8859-8.txt":"72cd6f3afb7b4a9c16a66a362473315770b7755d72c86c870e52fc3eba86c8af","doc/KOI8-R.txt":"839cf19a38da994488004ed7814b1f6151640156a9a2af02bf2efca745fb5966","doc/KOI8-U.txt":"0cc76624ed1f024183e2298b7e019957da2c70c8ca06e0fc4e6f353f50a5054f","doc/Shift_JIS.txt":"34c49141818cb9ddbcf59cc858f78a79be8ad148d563f26415108ae1f148443f","doc/UTF-16BE.txt":"e2e280d8acbaa6d2a6b3569d60e17500a285f2baa0df3363dd85537cd5a1ef8f","doc/UTF-16LE.txt":"70bdc170e3fc5298ba68f10125fb5eeb8b077036cc96bb4416c4de396f6d76c1","doc/UTF-8.txt":"ea7bae742e613010ced002cf4b601a737d2203fad65e115611451bc4428f548a","doc/gb18030.txt":"dc71378a8f07a2d8659f69ee81fb8791fef56ba86f124b429978285237bb4a7b","doc/macintosh.txt":"57491e53866711b4672d9b9ff35380b9dac9e0d8e3d6c20bdd6140603687c023","doc/replacement.txt":"4b6c3bbd7999d9d4108a281594bd02d13607e334a95465afff8c2c08d395f0e4","doc/windows-1250.txt":"61296bb6a21cdab602300d32ecfba434cb82de5ac3bc88d58710d2f125e28d39","doc/windows-1251.txt":"7deea1c61dea1485c8ff02db2c7d578db7a9aab63ab1cfd02ec04b515864689e","doc/windows-1252.txt":"933ef3bdddfce5ee132b9f1a1aa8b47423d2587bbe475b19028d0a6d38e180b6","doc/windows-1253.txt":"1a38748b88e99071a5c7b3d5456ead4caedeabab50d50d658be105bc113714de","doc/windows-1254.txt":"f8372f86c6f8d642563cd6ddc025260553292a39423df1683a98670bd7bf2b47","doc/windows-1255.txt":"4e5852494730054e2da258a74e1b9d780abbcdd8ce22ebc218ca2efe9e90493d","doc/windows-1256.txt":"c0879c5172abedead302a406e8f60d9cd9598694a0ffa4fd288ffe4fef7b8ea1","doc/windows-1257.txt":"c28a0c9f964fcb2b46d21f537c402446501a2800670481d6abf9fd9e9018d523","doc/windows-1258.txt":"5019ae4d61805c79aacbf17c93793342dbb098d65a1837783bc3e2c6d6a23602","doc/windows-874.txt":"4ef0e4501c5feba8b17aee1818602ed44b36ca8475db771ce2fc16d392cabecc","doc/x-mac-cyrillic.txt":"58be154d8a888ca3d484b83b44f749823ef339ab27f14d90ca9a856f5050a8bd","doc/x-user-defined.txt":"f9cd07c4321bf5cfb0be4bdddd251072999b04a6cf7a6f5bc63709a84e2c1ffc","generate-encoding-data.py":"be989dd25c6b946e3e8745fdc8e8a80fcf24b3be99ad0b4b78153ba3f6ab6310","rustfmt.toml":"85c1a3b4382fd89e991cbb81b70fb52780472edc064c963943cdaaa56e0a2030","src/ascii.rs":"c44c002641adb5ebc4368707a8cc0a076d2f33e6a5c27b1b69988eb515f5653d","src/big5.rs":"ec6e2913011a38e9a3e825a1731f139a7ca1d5b264fefae51a3cc1a68a57cef9","src/data.rs":"8a617cc57032092d65850eb27e00de687c80aea3299e839a1f58b42d0b35abf3","src/euc_jp.rs":"32047f5b540188c4cb19c07165f846b9786a09f18e315ed3e9bda1293dae52aa","src/euc_kr.rs":"9b25afc72d9378700eecfac58d55ad1c5946d6cd0ccde2c29c08200ef2de6bb9","src/gb18030.rs":"808587168d73f0c80f8520f0ca9b161866ed2efeb17a05e85fdf3b8efe7ba28a","src/handles.rs":"cc83dc0754751d67f5688a65c5e0191cba02f6bacce81a0813a243cba55eef7a","src/iso_2022_jp.rs":"9bb485e82574f4b7d4b2364f0ff276acb6a0bc111758420a3b0ec5e04c196652","src/lib.rs":"1dc07b818e45846b16ddcaf0de46c8862dd7df8099123ec38b95c3f8ad9c91ec","src/macros.rs":"200997f8870de8bfd8cdc475e92115df42108c0df661e49d3d1cbc32056e1d99","src/mem.rs":"0bf34103e0ad1b842a13a082dee2b920b05cf4fb0f145c9ee7f608f4cb4a544f","src/replacement.rs":"7660b34a53f8c1ca2bdfa0e51e843ec28326950952ad8bc96569feb93ac62308","src/shift_jis.rs":"6951ae67e36b1a12fa3a30734957f444d8b1b4ae0e2bde52060b29bd0f16d9d9","src/simd_funcs.rs":"2612aba86e1d201096d7e47a859bc3444f85934cc82d8adc6d39a4304d9eecfc","src/single_byte.rs":"3c9e9c1f946ae622c725ba9421240c1faa9a05e95fa10dd4642a25cb276a1edc","src/test_data/big5_in.txt":"4c5a8691f8dc717311889c63894026d2fb62725a86c4208ca274a9cc8d42a503","src/test_data/big5_in_ref.txt":"99d399e17750cf9c7cf30bb253dbfe35b81c4fcbdead93cfa48b1429213473c7","src/test_data/big5_out.txt":"6193ca97c297aa20e09396038d18e938bb7ea331c26f0f2454097296723a0b13","src/test_data/big5_out_ref.txt":"36567691f557df144f6cc520015a87038dfa156f296fcf103b56ae9a718be1fc","src/test_data/euc_kr_in.txt":"c86a7224f3215fa0d04e685622a752fdc72763e8ae076230c7fd62de57ec4074","src/test_data/euc_kr_in_ref.txt":"1f419f4ca47d708b54c73c461545a022ae2e20498fdbf8005a483d752a204883","src/test_data/euc_kr_out.txt":"e7f32e026f70be1e1b58e0047baf7d3d2c520269c4f9b9992e158b4decb0a1a3","src/test_data/euc_kr_out_ref.txt":"c9907857980b20b8e9e3b584482ed6567a2be6185d72237b6322f0404944924e","src/test_data/gb18030_in.txt":"ab7231b2d3e9afacdbd7d7f3b9e5361a7ff9f7e1cfdb4f3bd905b9362b309e53","src/test_data/gb18030_in_ref.txt":"dc5069421adca2043c55f5012b55a76fdff651d22e6e699fd0978f8d5706815c","src/test_data/gb18030_out.txt":"f0208d527f5ca63de7d9a0323be8d5cf12d8a104b2943d92c2701f0c3364dac1","src/test_data/gb18030_out_ref.txt":"6819fe47627e4ea01027003fc514b9f21a1322e732d7f1fb92cc6c5455bc6c07","src/test_data/iso_2022_jp_in.txt":"cd24bbdcb1834e25db54646fbf4c41560a13dc7540f6be3dba4f5d97d44513af","src/test_data/iso_2022_jp_in_ref.txt":"3dc4e6a5e06471942d086b16c9440945e78415f6f3f47e43717e4bc2eac2cdf5","src/test_data/iso_2022_jp_out.txt":"9b6f015329dda6c3f9ee5ce6dbd6fa9c89acc21283e886836c78b8d833480c21","src/test_data/iso_2022_jp_out_ref.txt":"78cb260093a20116ad9a42f43b05d1848c5ab100b6b9a850749809e943884b35","src/test_data/jis0208_in.txt":"6df3030553ffb0a6615bb33dc8ea9dca6d9623a9028e2ffec754ce3c3da824cc","src/test_data/jis0208_in_ref.txt":"3dc4e6a5e06471942d086b16c9440945e78415f6f3f47e43717e4bc2eac2cdf5","src/test_data/jis0208_out.txt":"4ec24477e1675ce750733bdc3c5add1cd27b6bd4ce1f09289564646e9654e857","src/test_data/jis0208_out_ref.txt":"c3e1cef5032b2b1d93a406f31ff940c4e2dfe8859b8b17ca2761fee7a75a0e48","src/test_data/jis0212_in.txt":"c011f0dd72bd7c8cd922df9374ef8d2769a77190514c77f6c62b415852eeb9fe","src/test_data/jis0212_in_ref.txt":"7d9458b3d2f73e7092a7f505c08ce1d233dde18aa679fbcf9889256239cc9e06","src/test_data/shift_jis_in.txt":"02e389ccef0dd2122e63f503899402cb7f797912c2444cc80ab93131116c5524","src/test_data/shift_jis_in_ref.txt":"512f985950ca902e643c88682dba9708b7c38d3c5ec2925168ab00ac94ab19f9","src/test_data/shift_jis_out.txt":"5fbc44da7bf639bf6cfe0fa1fd3eba7102b88f81919c9ea991302712f69426fb","src/test_data/shift_jis_out_ref.txt":"466322c6fed8286c64582731755290c2296508efdd258826e6279686649b481f","src/test_labels_names.rs":"23a2e11b02b3b8d15fb5613a625e3edb2c61e70e3c581abfd638719a4088200d","src/testing.rs":"f59e671e95a98a56f6b573e8c6be4d71e670bf52f7e20eb1605d990aafa1894e","src/utf_16.rs":"c071a147fad38d750c2c247e141b76b929a48007b99f26b2922b9caecdaf2f25","src/utf_8.rs":"7b7d887b347f1aefa03246b028a36a72758a4ce76c28f3b45c19467851aa7839","src/variant.rs":"1fab5363588a1554a7169de8731ea9cded7ac63ea35caabdd1c27a8dde68c27b","src/x_user_defined.rs":"c9c010730dfb9f141d4fed19350c08a21af240913a54bb64f5ca89ff93b6b7d1"},"package":"7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"}
+\ No newline at end of file
++{"files":{"CONTRIBUTING.md":"ca1901f3e8532fb4cec894fd3664f0eaa898c0c4b961d1b992d1ed54eacf362a","COPYRIGHT":"11789f45bb180841cd362a5eee6789c68ddb573a11105e30768c308a6add0190","Cargo.toml":"22a4d210c92dae9f32c6944ef340ee8fdd027f99c081577e8907123e2a93383e","Ideas.md":"b7452893f500163868d8de52c09addaf91e1632454ed02e892c467ed7ec39dbd","LICENSE-APACHE":"cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30","LICENSE-MIT":"3fa4ca83dcc9237839b1bdeb2e6d16bdfb5ec0c5ce42b24694d8bbf0dcbef72c","LICENSE-WHATWG":"838118388fe5c2e7f1dbbaeed13e1c7f3ebf88be91319c7c1d77c18e987d1a50","README.md":"1d08aefcb92afa81b18154049c9abbcad4540a23f7172e9f9bbed5af33f1a087","ci/miri.sh":"43cb8d82f49e3bfe2d2274b6ccd6f0714a4188ccef0cecc040829883cfdbee25","doc/Big5.txt":"f73a2edc5cb6c2d140ba6e07f4542e1c4a234950378acde1df93480f0ca0be0b","doc/EUC-JP.txt":"ee2818b907d0137f40a9ab9fd525fc700a44dbdddb6cf0c157a656566bae4bf1","doc/EUC-KR.txt":"71d9e2ccf3b124e8bdfb433c8cf2773fd878077038d0cec3c7237a50f4a78a30","doc/GBK.txt":"c1b522b5a799884e5001da661f42c5a8f4d0acb9ef1d74b206f22b5f65365606","doc/IBM866.txt":"a5a433e804d0f83af785015179fbc1d9b0eaf1f7960efcd04093e136b51fbd0e","doc/ISO-2022-JP.txt":"af86684f5a8f0e2868d7b2c292860140c3d2e5527530ca091f1b28198e8e2fe6","doc/ISO-8859-10.txt":"6d3949ad7c81ca176895101ed81a1db7df1060d64e262880b94bd31bb344ab4d","doc/ISO-8859-13.txt":"3951dd89cf93f7729148091683cf8511f4529388b7dc8dcd0d62eaed55be93fa","doc/ISO-8859-14.txt":"3d330784a0374fd255a38b47949675cc7168c800530534b0a01cac6edc623adc","doc/ISO-8859-15.txt":"24b1084aab5127a85aab99153f86e24694d0a3615f53b5ce23683f97cf66c47a","doc/ISO-8859-16.txt":"ce0272559b92ba76d7a7e476f6424ae4a5cc72e75b183611b08392e44add4d25","doc/ISO-8859-2.txt":"18ceff88c13d1b5ba455a3919b1e3de489045c4c3d2dd7e8527c125c75d54aad","doc/ISO-8859-3.txt":"21798404c68f4f5db59223362f24999da96968c0628427321fccce7d2849a130","doc/ISO-8859-4.txt":"d27f6520c6c5bfbcc19176b71d081cdb3bccde1622bb3e420d5680e812632d53","doc/ISO-8859-5.txt":"a10ec8d6ea7a78ad15da7275f6cb1a3365118527e28f9af6d0d5830501303f3a","doc/ISO-8859-6.txt":"ccda8a2efc96115336bdd77776637b9712425e44fbcf745353b9057fbef144e7","doc/ISO-8859-7.txt":"17900fa1f27a445958f0a77d7d9056be375a6bd7ee4492aa680c7c1500bab85e","doc/ISO-8859-8-I.txt":"8357555646d54265a9b9ffa3e68b08d132312f1561c60108ff9b8b1167b6ecf2","doc/ISO-8859-8.txt":"72cd6f3afb7b4a9c16a66a362473315770b7755d72c86c870e52fc3eba86c8af","doc/KOI8-R.txt":"839cf19a38da994488004ed7814b1f6151640156a9a2af02bf2efca745fb5966","doc/KOI8-U.txt":"0cc76624ed1f024183e2298b7e019957da2c70c8ca06e0fc4e6f353f50a5054f","doc/Shift_JIS.txt":"34c49141818cb9ddbcf59cc858f78a79be8ad148d563f26415108ae1f148443f","doc/UTF-16BE.txt":"e2e280d8acbaa6d2a6b3569d60e17500a285f2baa0df3363dd85537cd5a1ef8f","doc/UTF-16LE.txt":"70bdc170e3fc5298ba68f10125fb5eeb8b077036cc96bb4416c4de396f6d76c1","doc/UTF-8.txt":"ea7bae742e613010ced002cf4b601a737d2203fad65e115611451bc4428f548a","doc/gb18030.txt":"dc71378a8f07a2d8659f69ee81fb8791fef56ba86f124b429978285237bb4a7b","doc/macintosh.txt":"57491e53866711b4672d9b9ff35380b9dac9e0d8e3d6c20bdd6140603687c023","doc/replacement.txt":"4b6c3bbd7999d9d4108a281594bd02d13607e334a95465afff8c2c08d395f0e4","doc/windows-1250.txt":"61296bb6a21cdab602300d32ecfba434cb82de5ac3bc88d58710d2f125e28d39","doc/windows-1251.txt":"7deea1c61dea1485c8ff02db2c7d578db7a9aab63ab1cfd02ec04b515864689e","doc/windows-1252.txt":"933ef3bdddfce5ee132b9f1a1aa8b47423d2587bbe475b19028d0a6d38e180b6","doc/windows-1253.txt":"1a38748b88e99071a5c7b3d5456ead4caedeabab50d50d658be105bc113714de","doc/windows-1254.txt":"f8372f86c6f8d642563cd6ddc025260553292a39423df1683a98670bd7bf2b47","doc/windows-1255.txt":"4e5852494730054e2da258a74e1b9d780abbcdd8ce22ebc218ca2efe9e90493d","doc/windows-1256.txt":"c0879c5172abedead302a406e8f60d9cd9598694a0ffa4fd288ffe4fef7b8ea1","doc/windows-1257.txt":"c28a0c9f964fcb2b46d21f537c402446501a2800670481d6abf9fd9e9018d523","doc/windows-1258.txt":"5019ae4d61805c79aacbf17c93793342dbb098d65a1837783bc3e2c6d6a23602","doc/windows-874.txt":"4ef0e4501c5feba8b17aee1818602ed44b36ca8475db771ce2fc16d392cabecc","doc/x-mac-cyrillic.txt":"58be154d8a888ca3d484b83b44f749823ef339ab27f14d90ca9a856f5050a8bd","doc/x-user-defined.txt":"f9cd07c4321bf5cfb0be4bdddd251072999b04a6cf7a6f5bc63709a84e2c1ffc","generate-encoding-data.py":"be989dd25c6b946e3e8745fdc8e8a80fcf24b3be99ad0b4b78153ba3f6ab6310","rustfmt.toml":"85c1a3b4382fd89e991cbb81b70fb52780472edc064c963943cdaaa56e0a2030","src/ascii.rs":"588e38b01e666d5e7462617ea7e90a108d608dec9e016f3d273ac0744af2e05d","src/big5.rs":"ec6e2913011a38e9a3e825a1731f139a7ca1d5b264fefae51a3cc1a68a57cef9","src/data.rs":"8a617cc57032092d65850eb27e00de687c80aea3299e839a1f58b42d0b35abf3","src/euc_jp.rs":"32047f5b540188c4cb19c07165f846b9786a09f18e315ed3e9bda1293dae52aa","src/euc_kr.rs":"9b25afc72d9378700eecfac58d55ad1c5946d6cd0ccde2c29c08200ef2de6bb9","src/gb18030.rs":"808587168d73f0c80f8520f0ca9b161866ed2efeb17a05e85fdf3b8efe7ba28a","src/handles.rs":"b08cef1f5785bb6a4822f2e844c6df1b046b737b7a075e4593eaa8c4208e9fe2","src/iso_2022_jp.rs":"9bb485e82574f4b7d4b2364f0ff276acb6a0bc111758420a3b0ec5e04c196652","src/lib.rs":"834f44b670ec48ee82c0e12223d1567313fdd9f88bca5f4b117c82c1828f559f","src/macros.rs":"200997f8870de8bfd8cdc475e92115df42108c0df661e49d3d1cbc32056e1d99","src/mem.rs":"948571137d3b151df8db4fb2c733e74ae595d055cdf0ad83abcab9341d6adabe","src/replacement.rs":"7660b34a53f8c1ca2bdfa0e51e843ec28326950952ad8bc96569feb93ac62308","src/shift_jis.rs":"6951ae67e36b1a12fa3a30734957f444d8b1b4ae0e2bde52060b29bd0f16d9d9","src/simd_funcs.rs":"05c6e77af74bfe73cd39a752067c11425d6b46e5da419910f54bf75a5c02a984","src/single_byte.rs":"3ad87116fb339434a4b58e8f2b15485f2b66b9f7814d708f16194ed08f6d6ccf","src/test_data/big5_in.txt":"4c5a8691f8dc717311889c63894026d2fb62725a86c4208ca274a9cc8d42a503","src/test_data/big5_in_ref.txt":"99d399e17750cf9c7cf30bb253dbfe35b81c4fcbdead93cfa48b1429213473c7","src/test_data/big5_out.txt":"6193ca97c297aa20e09396038d18e938bb7ea331c26f0f2454097296723a0b13","src/test_data/big5_out_ref.txt":"36567691f557df144f6cc520015a87038dfa156f296fcf103b56ae9a718be1fc","src/test_data/euc_kr_in.txt":"c86a7224f3215fa0d04e685622a752fdc72763e8ae076230c7fd62de57ec4074","src/test_data/euc_kr_in_ref.txt":"1f419f4ca47d708b54c73c461545a022ae2e20498fdbf8005a483d752a204883","src/test_data/euc_kr_out.txt":"e7f32e026f70be1e1b58e0047baf7d3d2c520269c4f9b9992e158b4decb0a1a3","src/test_data/euc_kr_out_ref.txt":"c9907857980b20b8e9e3b584482ed6567a2be6185d72237b6322f0404944924e","src/test_data/gb18030_in.txt":"ab7231b2d3e9afacdbd7d7f3b9e5361a7ff9f7e1cfdb4f3bd905b9362b309e53","src/test_data/gb18030_in_ref.txt":"dc5069421adca2043c55f5012b55a76fdff651d22e6e699fd0978f8d5706815c","src/test_data/gb18030_out.txt":"f0208d527f5ca63de7d9a0323be8d5cf12d8a104b2943d92c2701f0c3364dac1","src/test_data/gb18030_out_ref.txt":"6819fe47627e4ea01027003fc514b9f21a1322e732d7f1fb92cc6c5455bc6c07","src/test_data/iso_2022_jp_in.txt":"cd24bbdcb1834e25db54646fbf4c41560a13dc7540f6be3dba4f5d97d44513af","src/test_data/iso_2022_jp_in_ref.txt":"3dc4e6a5e06471942d086b16c9440945e78415f6f3f47e43717e4bc2eac2cdf5","src/test_data/iso_2022_jp_out.txt":"9b6f015329dda6c3f9ee5ce6dbd6fa9c89acc21283e886836c78b8d833480c21","src/test_data/iso_2022_jp_out_ref.txt":"78cb260093a20116ad9a42f43b05d1848c5ab100b6b9a850749809e943884b35","src/test_data/jis0208_in.txt":"6df3030553ffb0a6615bb33dc8ea9dca6d9623a9028e2ffec754ce3c3da824cc","src/test_data/jis0208_in_ref.txt":"3dc4e6a5e06471942d086b16c9440945e78415f6f3f47e43717e4bc2eac2cdf5","src/test_data/jis0208_out.txt":"4ec24477e1675ce750733bdc3c5add1cd27b6bd4ce1f09289564646e9654e857","src/test_data/jis0208_out_ref.txt":"c3e1cef5032b2b1d93a406f31ff940c4e2dfe8859b8b17ca2761fee7a75a0e48","src/test_data/jis0212_in.txt":"c011f0dd72bd7c8cd922df9374ef8d2769a77190514c77f6c62b415852eeb9fe","src/test_data/jis0212_in_ref.txt":"7d9458b3d2f73e7092a7f505c08ce1d233dde18aa679fbcf9889256239cc9e06","src/test_data/shift_jis_in.txt":"02e389ccef0dd2122e63f503899402cb7f797912c2444cc80ab93131116c5524","src/test_data/shift_jis_in_ref.txt":"512f985950ca902e643c88682dba9708b7c38d3c5ec2925168ab00ac94ab19f9","src/test_data/shift_jis_out.txt":"5fbc44da7bf639bf6cfe0fa1fd3eba7102b88f81919c9ea991302712f69426fb","src/test_data/shift_jis_out_ref.txt":"466322c6fed8286c64582731755290c2296508efdd258826e6279686649b481f","src/test_labels_names.rs":"23a2e11b02b3b8d15fb5613a625e3edb2c61e70e3c581abfd638719a4088200d","src/testing.rs":"f59e671e95a98a56f6b573e8c6be4d71e670bf52f7e20eb1605d990aafa1894e","src/utf_16.rs":"c071a147fad38d750c2c247e141b76b929a48007b99f26b2922b9caecdaf2f25","src/utf_8.rs":"7b7d887b347f1aefa03246b028a36a72758a4ce76c28f3b45c19467851aa7839","src/variant.rs":"1fab5363588a1554a7169de8731ea9cded7ac63ea35caabdd1c27a8dde68c27b","src/x_user_defined.rs":"9456ca46168ef86c98399a2536f577ef7be3cdde90c0c51392d8ac48519d3fae"},"package":"b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"}
+\ No newline at end of file
+diff --git a/third_party/rust/encoding_rs/Cargo.toml b/third_party/rust/encoding_rs/Cargo.toml
+--- third_party/rust/encoding_rs/Cargo.toml
++++ third_party/rust/encoding_rs/Cargo.toml
+@@ -6,18 +6,19 @@
+ # to registry (e.g., crates.io) dependencies.
+ #
+ # If you are reading this file be aware that the original Cargo.toml
+ # will likely look very different (and much more reasonable).
+ # See Cargo.toml.orig for the original contents.
+
+ [package]
+ edition = "2018"
++rust-version = "1.36"
+ name = "encoding_rs"
+-version = "0.8.33"
++version = "0.8.34"
+ authors = ["Henri Sivonen <hsivonen@hsivonen.fi>"]
+ description = "A Gecko-oriented implementation of the Encoding Standard"
+ homepage = "https://docs.rs/encoding_rs/"
+ documentation = "https://docs.rs/encoding_rs/"
+ readme = "README.md"
+ keywords = [
+ "encoding",
+ "web",
+@@ -31,23 +32,23 @@ categories = [
+ "internationalization",
+ ]
+ license = "(Apache-2.0 OR MIT) AND BSD-3-Clause"
+ repository = "https://github.com/hsivonen/encoding_rs"
+
+ [profile.release]
+ lto = true
+
++[dependencies.any_all_workaround]
++version = "0.1.0"
++optional = true
++
+ [dependencies.cfg-if]
+ version = "1.0"
+
+-[dependencies.packed_simd]
+-version = "0.3.9"
+-optional = true
+-
+ [dependencies.serde]
+ version = "1.0"
+ optional = true
+
+ [dev-dependencies.bincode]
+ version = "1.0"
+
+ [dev-dependencies.serde_derive]
+@@ -69,15 +70,9 @@ fast-legacy-encode = [
+ "fast-hanja-encode",
+ "fast-kanji-encode",
+ "fast-gb-hanzi-encode",
+ "fast-big5-hanzi-encode",
+ ]
+ less-slow-big5-hanzi-encode = []
+ less-slow-gb-hanzi-encode = []
+ less-slow-kanji-encode = []
+-simd-accel = [
+- "packed_simd",
+- "packed_simd/into_bits",
+-]
+-
+-[badges.travis-ci]
+-repository = "hsivonen/encoding_rs"
++simd-accel = ["any_all_workaround"]
+diff --git a/third_party/rust/encoding_rs/README.md b/third_party/rust/encoding_rs/README.md
+--- third_party/rust/encoding_rs/README.md
++++ third_party/rust/encoding_rs/README.md
+@@ -162,50 +162,36 @@ wrappers.
+ * [C++](https://github.com/hsivonen/recode_cpp)
+
+ ## Optional features
+
+ There are currently these optional cargo features:
+
+ ### `simd-accel`
+
+-Enables SIMD acceleration using the nightly-dependent `packed_simd` crate.
++Enables SIMD acceleration using the nightly-dependent `portable_simd` standard
++library feature.
+
+ This is an opt-in feature, because enabling this feature _opts out_ of Rust's
+ guarantees of future compilers compiling old code (aka. "stability story").
+
+ Currently, this has not been tested to be an improvement except for these
+-targets:
++targets and enabling the `simd-accel` feature is expected to break the build
++on other targets:
+
+ * x86_64
+ * i686
+ * aarch64
+ * thumbv7neon
+
+ If you use nightly Rust, you use targets whose first component is one of the
+ above, and you are prepared _to have to revise your configuration when updating
+ Rust_, you should enable this feature. Otherwise, please _do not_ enable this
+ feature.
+
+-_Note!_ If you are compiling for a target that does not have 128-bit SIMD
+-enabled as part of the target definition and you are enabling 128-bit SIMD
+-using `-C target_feature`, you need to enable the `core_arch` Cargo feature
+-for `packed_simd` to compile a crates.io snapshot of `core_arch` instead of
+-using the standard-library copy of `core::arch`, because the `core::arch`
+-module of the pre-compiled standard library has been compiled with the
+-assumption that the CPU doesn't have 128-bit SIMD. At present this applies
+-mainly to 32-bit ARM targets whose first component does not include the
+-substring `neon`.
+-
+-The encoding_rs side of things has not been properly set up for POWER,
+-PowerPC, MIPS, etc., SIMD at this time, so even if you were to follow
+-the advice from the previous paragraph, you probably shouldn't use
+-the `simd-accel` option on the less mainstream architectures at this
+-time.
+-
+ Used by Firefox.
+
+ ### `serde`
+
+ Enables support for serializing and deserializing `&'static Encoding`-typed
+ struct fields using [Serde][1].
+
+ [1]: https://serde.rs/
+@@ -376,18 +362,19 @@ It is a goal to support the latest stabl
+ the version of Rust that's used for Firefox Nightly.
+
+ At this time, there is no firm commitment to support a version older than
+ what's required by Firefox, and there is no commitment to treat MSRV changes
+ as semver-breaking, because this crate depends on `cfg-if`, which doesn't
+ appear to treat MSRV changes as semver-breaking, so it would be useless for
+ this crate to treat MSRV changes as semver-breaking.
+
+-As of 2021-02-04, MSRV appears to be Rust 1.36.0 for using the crate and
++As of 2024-04-04, MSRV appears to be Rust 1.36.0 for using the crate and
+ 1.42.0 for doc tests to pass without errors about the global allocator.
++With the `simd-accel` feature, the MSRV is even higher.
+
+ ## Compatibility with rust-encoding
+
+ A compatibility layer that implements the rust-encoding API on top of
+ encoding_rs is
+ [provided as a separate crate](https://github.com/hsivonen/encoding_rs_compat)
+ (cannot be uploaded to crates.io). The compatibility layer was originally
+ written with the assuption that Firefox would need it, but it is not currently
+@@ -441,20 +428,27 @@ To regenerate the generated code:
+ - [x] Implement the rust-encoding API in terms of encoding_rs.
+ - [x] Add SIMD acceleration for Aarch64.
+ - [x] Investigate the use of NEON on 32-bit ARM.
+ - [ ] ~Investigate Bj旦rn H旦hrmann's lookup table acceleration for UTF-8 as
+ adapted to Rust in rust-encoding.~
+ - [x] Add actually fast CJK encode options.
+ - [ ] ~Investigate [Bob Steagall's lookup table acceleration for UTF-8](https://github.com/BobSteagall/CppNow2018/blob/master/FastConversionFromUTF-8/Fast%20Conversion%20From%20UTF-8%20with%20C%2B%2B%2C%20DFAs%2C%20and%20SSE%20Intrinsics%20-%20Bob%20Steagall%20-%20C%2B%2BNow%202018.pdf).~
+ - [x] Provide a build mode that works without `alloc` (with lesser API surface).
+-- [ ] Migrate to `std::simd` once it is stable and declare 1.0.
++- [x] Migrate to `std::simd` ~once it is stable and declare 1.0.~
++- [ ] Migrate `unsafe` slice access by larger types than `u8`/`u16` to `align_to`.
+
+ ## Release Notes
+
++### 0.8.34
++
++* Use the `portable_simd` nightly feature of the standard library instead of the `packed_simd` crate. Only affects the `simd-accel` optional nightly feature.
++* Internal documentation improvements and minor code improvements around `unsafe`.
++* Added `rust-version` to `Cargo.toml`.
++
+ ### 0.8.33
+
+ * Use `packed_simd` instead of `packed_simd_2` again now that updates are back under the `packed_simd` name. Only affects the `simd-accel` optional nightly feature.
+
+ ### 0.8.32
+
+ * Removed `build.rs`. (This removal should resolve false positives reported by some antivirus products. This may break some build configurations that have opted out of Rust's guarantees against future build breakage.)
+ * Internal change to what API is used for reinterpreting the lane configuration of SIMD vectors.
+diff --git a/third_party/rust/encoding_rs/src/ascii.rs b/third_party/rust/encoding_rs/src/ascii.rs
+--- third_party/rust/encoding_rs/src/ascii.rs
++++ third_party/rust/encoding_rs/src/ascii.rs
+@@ -46,71 +46,87 @@ cfg_if! {
+ #[allow(dead_code)]
+ #[inline(always)]
+ fn likely(b: bool) -> bool {
+ b
+ }
+ }
+ }
+
++// Safety invariants for masks: data & mask = 0 for valid ASCII or basic latin utf-16
++
+ // `as` truncates, so works on 32-bit, too.
+ #[allow(dead_code)]
+ pub const ASCII_MASK: usize = 0x8080_8080_8080_8080u64 as usize;
+
+ // `as` truncates, so works on 32-bit, too.
+ #[allow(dead_code)]
+ pub const BASIC_LATIN_MASK: usize = 0xFF80_FF80_FF80_FF80u64 as usize;
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_naive {
+ ($name:ident, $src_unit:ty, $dst_unit:ty) => {
++ /// Safety: src and dst must have len_unit elements and be aligned
++ /// Safety-usable invariant: will return Some() when it fails
++ /// to convert. The first value will be a u8 that is > 127.
+ #[inline(always)]
+ pub unsafe fn $name(
+ src: *const $src_unit,
+ dst: *mut $dst_unit,
+ len: usize,
+ ) -> Option<($src_unit, usize)> {
+ // Yes, manually omitting the bound check here matters
+ // a lot for perf.
+ for i in 0..len {
++ // Safety: len invariant used here
+ let code_unit = *(src.add(i));
++ // Safety: Upholds safety-usable invariant here
+ if code_unit > 127 {
+ return Some((code_unit, i));
+ }
++ // Safety: len invariant used here
+ *(dst.add(i)) = code_unit as $dst_unit;
+ }
+ return None;
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_alu {
+ ($name:ident,
++ // safety invariant: src/dst MUST be u8
+ $src_unit:ty,
+ $dst_unit:ty,
++ // Safety invariant: stride_fn must consume and produce two usizes, and return the index of the first non-ascii when it fails
+ $stride_fn:ident) => {
++ /// Safety: src and dst must have len elements, src is valid for read, dst is valid for
++ /// write
++ /// Safety-usable invariant: will return Some() when it fails
++ /// to convert. The first value will be a u8 that is > 127.
+ #[cfg_attr(feature = "cargo-clippy", allow(never_loop, cast_ptr_alignment))]
+ #[inline(always)]
+ pub unsafe fn $name(
+ src: *const $src_unit,
+ dst: *mut $dst_unit,
+ len: usize,
+ ) -> Option<($src_unit, usize)> {
+ let mut offset = 0usize;
+ // This loop is only broken out of as a `goto` forward
+ loop {
++ // Safety: until_alignment becomes the number of bytes we need to munch until we are aligned to usize
+ let mut until_alignment = {
+ // Check if the other unit aligns if we move the narrower unit
+ // to alignment.
+ // if ::core::mem::size_of::<$src_unit>() == ::core::mem::size_of::<$dst_unit>() {
+ // ascii_to_ascii
+ let src_alignment = (src as usize) & ALU_ALIGNMENT_MASK;
+ let dst_alignment = (dst as usize) & ALU_ALIGNMENT_MASK;
+ if src_alignment != dst_alignment {
++ // Safety: bails early and ends up in the na誰ve branch where usize-alignment doesn't matter
+ break;
+ }
+ (ALU_ALIGNMENT - src_alignment) & ALU_ALIGNMENT_MASK
+ // } else if ::core::mem::size_of::<$src_unit>() < ::core::mem::size_of::<$dst_unit>() {
+ // ascii_to_basic_latin
+ // let src_until_alignment = (ALIGNMENT - ((src as usize) & ALIGNMENT_MASK)) & ALIGNMENT_MASK;
+ // if (dst.add(src_until_alignment) as usize) & ALIGNMENT_MASK != 0 {
+ // break;
+@@ -129,74 +145,104 @@ macro_rules! ascii_alu {
+ // Moving pointers to alignment seems to be a pessimization on
+ // x86_64 for operations that have UTF-16 as the internal
+ // Unicode representation. However, since it seems to be a win
+ // on ARM (tested ARMv7 code running on ARMv8 [rpi3]), except
+ // mixed results when encoding from UTF-16 and since x86 and
+ // x86_64 should be using SSE2 in due course, keeping the move
+ // to alignment here. It would be good to test on more ARM CPUs
+ // and on real MIPS and POWER hardware.
++ //
++ // Safety: This is the na誰ve code once again, for `until_alignment` bytes
+ while until_alignment != 0 {
+ let code_unit = *(src.add(offset));
+ if code_unit > 127 {
++ // Safety: Upholds safety-usable invariant here
+ return Some((code_unit, offset));
+ }
+ *(dst.add(offset)) = code_unit as $dst_unit;
++ // Safety: offset is the number of bytes copied so far
+ offset += 1;
+ until_alignment -= 1;
+ }
+ let len_minus_stride = len - ALU_STRIDE_SIZE;
+ loop {
++ // Safety: num_ascii is known to be a byte index of a non-ascii byte due to stride_fn's invariant
+ if let Some(num_ascii) = $stride_fn(
++ // Safety: These are known to be valid and aligned since we have at
++ // least ALU_STRIDE_SIZE data in these buffers, and offset is the
++ // number of elements copied so far, which according to the
++ // until_alignment calculation above will cause both src and dst to be
++ // aligned to usize after this add
+ src.add(offset) as *const usize,
+ dst.add(offset) as *mut usize,
+ ) {
+ offset += num_ascii;
++ // Safety: Upholds safety-usable invariant here by indexing into non-ascii byte
+ return Some((*(src.add(offset)), offset));
+ }
++ // Safety: offset continues to be the number of bytes copied so far, and
++ // maintains usize alignment for the next loop iteration
+ offset += ALU_STRIDE_SIZE;
++ // Safety: This is `offset > len - stride. This loop will continue as long as
++ // `offset <= len - stride`, which means there are `stride` bytes to still be read.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ break;
+ }
++
++ // Safety: This is the na誰ve code, same as ascii_naive, and has no requirements
++ // other than src/dst being valid for the the right lens
+ while offset < len {
++ // Safety: len invariant used here
+ let code_unit = *(src.add(offset));
+ if code_unit > 127 {
++ // Safety: Upholds safety-usable invariant here
+ return Some((code_unit, offset));
+ }
++ // Safety: len invariant used here
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ None
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! basic_latin_alu {
+ ($name:ident,
++ // safety invariant: use u8 for src/dest for ascii, and u16 for basic_latin
+ $src_unit:ty,
+ $dst_unit:ty,
++ // safety invariant: stride function must munch ALU_STRIDE_SIZE*size(src_unit) bytes off of src and
++ // write ALU_STRIDE_SIZE*size(dst_unit) bytes to dst
+ $stride_fn:ident) => {
++ /// Safety: src and dst must have len elements, src is valid for read, dst is valid for
++ /// write
++ /// Safety-usable invariant: will return Some() when it fails
++ /// to convert. The first value will be a u8 that is > 127.
+ #[cfg_attr(
+ feature = "cargo-clippy",
+ allow(never_loop, cast_ptr_alignment, cast_lossless)
+ )]
+ #[inline(always)]
+ pub unsafe fn $name(
+ src: *const $src_unit,
+ dst: *mut $dst_unit,
+ len: usize,
+ ) -> Option<($src_unit, usize)> {
+ let mut offset = 0usize;
+ // This loop is only broken out of as a `goto` forward
+ loop {
++ // Safety: until_alignment becomes the number of bytes we need to munch from src/dest until we are aligned to usize
++ // We ensure basic-latin has the same alignment as ascii, starting with ascii since it is smaller.
+ let mut until_alignment = {
+ // Check if the other unit aligns if we move the narrower unit
+ // to alignment.
+ // if ::core::mem::size_of::<$src_unit>() == ::core::mem::size_of::<$dst_unit>() {
+ // ascii_to_ascii
+ // let src_alignment = (src as usize) & ALIGNMENT_MASK;
+ // let dst_alignment = (dst as usize) & ALIGNMENT_MASK;
+ // if src_alignment != dst_alignment {
+@@ -232,66 +278,89 @@ macro_rules! basic_latin_alu {
+ // Moving pointers to alignment seems to be a pessimization on
+ // x86_64 for operations that have UTF-16 as the internal
+ // Unicode representation. However, since it seems to be a win
+ // on ARM (tested ARMv7 code running on ARMv8 [rpi3]), except
+ // mixed results when encoding from UTF-16 and since x86 and
+ // x86_64 should be using SSE2 in due course, keeping the move
+ // to alignment here. It would be good to test on more ARM CPUs
+ // and on real MIPS and POWER hardware.
++ //
++ // Safety: This is the na誰ve code once again, for `until_alignment` bytes
+ while until_alignment != 0 {
+ let code_unit = *(src.add(offset));
+ if code_unit > 127 {
++ // Safety: Upholds safety-usable invariant here
+ return Some((code_unit, offset));
+ }
+ *(dst.add(offset)) = code_unit as $dst_unit;
++ // Safety: offset is the number of bytes copied so far
+ offset += 1;
+ until_alignment -= 1;
+ }
+ let len_minus_stride = len - ALU_STRIDE_SIZE;
+ loop {
+ if !$stride_fn(
++ // Safety: These are known to be valid and aligned since we have at
++ // least ALU_STRIDE_SIZE data in these buffers, and offset is the
++ // number of elements copied so far, which according to the
++ // until_alignment calculation above will cause both src and dst to be
++ // aligned to usize after this add
+ src.add(offset) as *const usize,
+ dst.add(offset) as *mut usize,
+ ) {
+ break;
+ }
++ // Safety: offset continues to be the number of bytes copied so far, and
++ // maintains usize alignment for the next loop iteration
+ offset += ALU_STRIDE_SIZE;
++ // Safety: This is `offset > len - stride. This loop will continue as long as
++ // `offset <= len - stride`, which means there are `stride` bytes to still be read.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ break;
+ }
++ // Safety: This is the na誰ve code once again, for leftover bytes
+ while offset < len {
++ // Safety: len invariant used here
+ let code_unit = *(src.add(offset));
+ if code_unit > 127 {
++ // Safety: Upholds safety-usable invariant here
+ return Some((code_unit, offset));
+ }
++ // Safety: len invariant used here
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ None
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! latin1_alu {
++ // safety invariant: stride function must munch ALU_STRIDE_SIZE*size(src_unit) bytes off of src and
++ // write ALU_STRIDE_SIZE*size(dst_unit) bytes to dst
+ ($name:ident, $src_unit:ty, $dst_unit:ty, $stride_fn:ident) => {
++ /// Safety: src and dst must have len elements, src is valid for read, dst is valid for
++ /// write
+ #[cfg_attr(
+ feature = "cargo-clippy",
+ allow(never_loop, cast_ptr_alignment, cast_lossless)
+ )]
+ #[inline(always)]
+ pub unsafe fn $name(src: *const $src_unit, dst: *mut $dst_unit, len: usize) {
+ let mut offset = 0usize;
+ // This loop is only broken out of as a `goto` forward
+ loop {
++ // Safety: until_alignment becomes the number of bytes we need to munch from src/dest until we are aligned to usize
++ // We ensure the UTF-16 side has the same alignment as the Latin-1 side, starting with Latin-1 since it is smaller.
+ let mut until_alignment = {
+ if ::core::mem::size_of::<$src_unit>() < ::core::mem::size_of::<$dst_unit>() {
+ // unpack
+ let src_until_alignment = (ALU_ALIGNMENT
+ - ((src as usize) & ALU_ALIGNMENT_MASK))
+ & ALU_ALIGNMENT_MASK;
+ if (dst.wrapping_add(src_until_alignment) as usize) & ALU_ALIGNMENT_MASK
+ != 0
+@@ -308,373 +377,485 @@ macro_rules! latin1_alu {
+ != 0
+ {
+ break;
+ }
+ dst_until_alignment
+ }
+ };
+ if until_alignment + ALU_STRIDE_SIZE <= len {
++ // Safety: This is the na誰ve code once again, for `until_alignment` bytes
+ while until_alignment != 0 {
+ let code_unit = *(src.add(offset));
+ *(dst.add(offset)) = code_unit as $dst_unit;
++ // Safety: offset is the number of bytes copied so far
+ offset += 1;
+ until_alignment -= 1;
+ }
+ let len_minus_stride = len - ALU_STRIDE_SIZE;
+ loop {
+ $stride_fn(
++ // Safety: These are known to be valid and aligned since we have at
++ // least ALU_STRIDE_SIZE data in these buffers, and offset is the
++ // number of elements copied so far, which according to the
++ // until_alignment calculation above will cause both src and dst to be
++ // aligned to usize after this add
+ src.add(offset) as *const usize,
+ dst.add(offset) as *mut usize,
+ );
++ // Safety: offset continues to be the number of bytes copied so far, and
++ // maintains usize alignment for the next loop iteration
+ offset += ALU_STRIDE_SIZE;
++ // Safety: This is `offset > len - stride. This loop will continue as long as
++ // `offset <= len - stride`, which means there are `stride` bytes to still be read.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ break;
+ }
++ // Safety: This is the na誰ve code once again, for leftover bytes
+ while offset < len {
++ // Safety: len invariant used here
+ let code_unit = *(src.add(offset));
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_simd_check_align {
+ (
+ $name:ident,
+ $src_unit:ty,
+ $dst_unit:ty,
++ // Safety: This function must require aligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_both_aligned:ident,
++ // Safety: This function must require aligned/unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_src_aligned:ident,
++ // Safety: This function must require unaligned/aligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_dst_aligned:ident,
++ // Safety: This function must require unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_neither_aligned:ident
+ ) => {
++ /// Safety: src/dst must be valid for reads/writes of `len` elements of their units.
++ ///
++ /// Safety-usable invariant: will return Some() when it encounters non-ASCII, with the first element in the Some being
++ /// guaranteed to be non-ASCII (> 127), and the second being the offset where it is found
+ #[inline(always)]
+ pub unsafe fn $name(
+ src: *const $src_unit,
+ dst: *mut $dst_unit,
+ len: usize,
+ ) -> Option<($src_unit, usize)> {
+ let mut offset = 0usize;
++ // Safety: if this check succeeds we're valid for reading/writing at least `SIMD_STRIDE_SIZE` elements.
+ if SIMD_STRIDE_SIZE <= len {
+ let len_minus_stride = len - SIMD_STRIDE_SIZE;
+ // XXX Should we first process one stride unconditionally as unaligned to
+ // avoid the cost of the branchiness below if the first stride fails anyway?
+ // XXX Should we just use unaligned SSE2 access unconditionally? It seems that
+ // on Haswell, it would make sense to just use unaligned and not bother
+ // checking. Need to benchmark older architectures before deciding.
+ let dst_masked = (dst as usize) & SIMD_ALIGNMENT_MASK;
++ // Safety: checking whether src is aligned
+ if ((src as usize) & SIMD_ALIGNMENT_MASK) == 0 {
++ // Safety: Checking whether dst is aligned
+ if dst_masked == 0 {
+ loop {
++ // Safety: We're valid to read/write SIMD_STRIDE_SIZE elements and have the appropriate alignments
+ if !$stride_both_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE` which means we always have at least `SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ } else {
+ loop {
++ // Safety: We're valid to read/write SIMD_STRIDE_SIZE elements and have the appropriate alignments
+ if !$stride_src_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE` which means we always have at least `SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ } else {
+ if dst_masked == 0 {
+ loop {
++ // Safety: We're valid to read/write SIMD_STRIDE_SIZE elements and have the appropriate alignments
+ if !$stride_dst_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE` which means we always have at least `SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ } else {
+ loop {
++ // Safety: We're valid to read/write SIMD_STRIDE_SIZE elements and have the appropriate alignments
+ if !$stride_neither_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE` which means we always have at least `SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ }
+ }
+ while offset < len {
++ // Safety: uses len invariant here and below
+ let code_unit = *(src.add(offset));
+ if code_unit > 127 {
++ // Safety: upholds safety-usable invariant
+ return Some((code_unit, offset));
+ }
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ None
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_simd_check_align_unrolled {
+ (
+ $name:ident,
+ $src_unit:ty,
+ $dst_unit:ty,
++ // Safety: This function must require aligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_both_aligned:ident,
++ // Safety: This function must require aligned/unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_src_aligned:ident,
++ // Safety: This function must require unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_neither_aligned:ident,
++ // Safety: This function must require aligned src/dest that are valid for reading/writing 2*SIMD_STRIDE_SIZE src_unit/dst_unit
+ $double_stride_both_aligned:ident,
++ // Safety: This function must require aligned/unaligned src/dest that are valid for reading/writing 2*SIMD_STRIDE_SIZE src_unit/dst_unit
+ $double_stride_src_aligned:ident
+ ) => {
+- #[inline(always)]
++ /// Safety: src/dst must be valid for reads/writes of `len` elements of their units.
++ ///
++ /// Safety-usable invariant: will return Some() when it encounters non-ASCII, with the first element in the Some being
++ /// guaranteed to be non-ASCII (> 127), and the second being the offset where it is found #[inline(always)]
+ pub unsafe fn $name(
+ src: *const $src_unit,
+ dst: *mut $dst_unit,
+ len: usize,
+ ) -> Option<($src_unit, usize)> {
+ let unit_size = ::core::mem::size_of::<$src_unit>();
+ let mut offset = 0usize;
+ // This loop is only broken out of as a goto forward without
+ // actually looping
+ 'outer: loop {
++ // Safety: if this check succeeds we're valid for reading/writing at least `SIMD_STRIDE_SIZE` elements.
+ if SIMD_STRIDE_SIZE <= len {
+ // First, process one unaligned
++ // Safety: this is safe to call since we're valid for this read/write
+ if !$stride_neither_aligned(src, dst) {
+ break 'outer;
+ }
+ offset = SIMD_STRIDE_SIZE;
+
+ // We have now seen 16 ASCII bytes. Let's guess that
+ // there will be enough more to justify more expense
+ // in the case of non-ASCII.
+ // Use aligned reads for the sake of old microachitectures.
++ //
++ // Safety: this correctly calculates the number of src_units that need to be read before the remaining list is aligned.
++ // This is less that SIMD_ALIGNMENT, which is also SIMD_STRIDE_SIZE (as documented)
+ let until_alignment = ((SIMD_ALIGNMENT
+ - ((src.add(offset) as usize) & SIMD_ALIGNMENT_MASK))
+ & SIMD_ALIGNMENT_MASK)
+ / unit_size;
+- // This addition won't overflow, because even in the 32-bit PAE case the
++ // Safety: This addition won't overflow, because even in the 32-bit PAE case the
+ // address space holds enough code that the slice length can't be that
+ // close to address space size.
+ // offset now equals SIMD_STRIDE_SIZE, hence times 3 below.
++ //
++ // Safety: if this check succeeds we're valid for reading/writing at least `2 * SIMD_STRIDE_SIZE` elements plus `until_alignment`.
++ // The extra SIMD_STRIDE_SIZE in the condition is because `offset` is already `SIMD_STRIDE_SIZE`.
+ if until_alignment + (SIMD_STRIDE_SIZE * 3) <= len {
+ if until_alignment != 0 {
++ // Safety: this is safe to call since we're valid for this read/write (and more), and don't care about alignment
++ // This will copy over bytes that get decoded twice since it's not incrementing `offset` by SIMD_STRIDE_SIZE. This is fine.
+ if !$stride_neither_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += until_alignment;
+ }
++ // Safety: At this point we're valid for reading/writing 2*SIMD_STRIDE_SIZE elements
++ // Safety: Now `offset` is aligned for `src`
+ let len_minus_stride_times_two = len - (SIMD_STRIDE_SIZE * 2);
++ // Safety: This is whether dst is aligned
+ let dst_masked = (dst.add(offset) as usize) & SIMD_ALIGNMENT_MASK;
+ if dst_masked == 0 {
+ loop {
++ // Safety: both are aligned, we can call the aligned function. We're valid for reading/writing double stride from the initial condition
++ // and the loop break condition below
+ if let Some(advance) =
+ $double_stride_both_aligned(src.add(offset), dst.add(offset))
+ {
+ offset += advance;
+ let code_unit = *(src.add(offset));
++ // Safety: uses safety-usable invariant on ascii_to_ascii_simd_double_stride to return
++ // guaranteed non-ascii
+ return Some((code_unit, offset));
+ }
+ offset += SIMD_STRIDE_SIZE * 2;
++ // Safety: This is `offset > len - 2 * SIMD_STRIDE_SIZE` which means we always have at least `2 * SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride_times_two {
+ break;
+ }
+ }
++ // Safety: We're valid for reading/writing one more, and can still assume alignment
+ if offset + SIMD_STRIDE_SIZE <= len {
+ if !$stride_both_aligned(src.add(offset), dst.add(offset)) {
+ break 'outer;
+ }
+ offset += SIMD_STRIDE_SIZE;
+ }
+ } else {
+ loop {
++ // Safety: only src is aligned here. We're valid for reading/writing double stride from the initial condition
++ // and the loop break condition below
+ if let Some(advance) =
+ $double_stride_src_aligned(src.add(offset), dst.add(offset))
+ {
+ offset += advance;
+ let code_unit = *(src.add(offset));
++ // Safety: uses safety-usable invariant on ascii_to_ascii_simd_double_stride to return
++ // guaranteed non-ascii
+ return Some((code_unit, offset));
+ }
+ offset += SIMD_STRIDE_SIZE * 2;
++ // Safety: This is `offset > len - 2 * SIMD_STRIDE_SIZE` which means we always have at least `2 * SIMD_STRIDE_SIZE` elements to munch next time.
++
+ if offset > len_minus_stride_times_two {
+ break;
+ }
+ }
++ // Safety: We're valid for reading/writing one more, and can still assume alignment
+ if offset + SIMD_STRIDE_SIZE <= len {
+ if !$stride_src_aligned(src.add(offset), dst.add(offset)) {
+ break 'outer;
+ }
+ offset += SIMD_STRIDE_SIZE;
+ }
+ }
+ } else {
+ // At most two iterations, so unroll
+ if offset + SIMD_STRIDE_SIZE <= len {
++ // Safety: The check above ensures we're allowed to read/write this, and we don't use alignment
+ if !$stride_neither_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
+ if offset + SIMD_STRIDE_SIZE <= len {
++ // Safety: The check above ensures we're allowed to read/write this, and we don't use alignment
+ if !$stride_neither_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
+ }
+ }
+ }
+ }
+ break 'outer;
+ }
+ while offset < len {
++ // Safety: relies straightforwardly on the `len` invariant
+ let code_unit = *(src.add(offset));
+ if code_unit > 127 {
++ // Safety-usable invariant upheld here
+ return Some((code_unit, offset));
+ }
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ None
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! latin1_simd_check_align {
+ (
+ $name:ident,
+ $src_unit:ty,
+ $dst_unit:ty,
++ // Safety: This function must require aligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_both_aligned:ident,
++ // Safety: This function must require aligned/unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_src_aligned:ident,
++ // Safety: This function must require unaligned/aligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_dst_aligned:ident,
++ // Safety: This function must require unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_neither_aligned:ident
++
+ ) => {
++ /// Safety: src/dst must be valid for reads/writes of `len` elements of their units.
+ #[inline(always)]
+ pub unsafe fn $name(src: *const $src_unit, dst: *mut $dst_unit, len: usize) {
+ let mut offset = 0usize;
++ // Safety: if this check succeeds we're valid for reading/writing at least `SIMD_STRIDE_SIZE` elements.
+ if SIMD_STRIDE_SIZE <= len {
+ let len_minus_stride = len - SIMD_STRIDE_SIZE;
++ // Whether dst is aligned
+ let dst_masked = (dst as usize) & SIMD_ALIGNMENT_MASK;
++ // Whether src is aligned
+ if ((src as usize) & SIMD_ALIGNMENT_MASK) == 0 {
+ if dst_masked == 0 {
+ loop {
++ // Safety: Both were aligned, we can use the aligned function
+ $stride_both_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE`, which means in the next iteration we're valid for
++ // reading/writing at least SIMD_STRIDE_SIZE elements.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ } else {
+ loop {
++ // Safety: src was aligned, dst was not
+ $stride_src_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE`, which means in the next iteration we're valid for
++ // reading/writing at least SIMD_STRIDE_SIZE elements.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ } else {
+ if dst_masked == 0 {
+ loop {
++ // Safety: src was aligned, dst was not
+ $stride_dst_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE`, which means in the next iteration we're valid for
++ // reading/writing at least SIMD_STRIDE_SIZE elements.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ } else {
+ loop {
++ // Safety: Neither were aligned
+ $stride_neither_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE`, which means in the next iteration we're valid for
++ // reading/writing at least SIMD_STRIDE_SIZE elements.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ }
+ }
+ while offset < len {
++ // Safety: relies straightforwardly on the `len` invariant
+ let code_unit = *(src.add(offset));
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! latin1_simd_check_align_unrolled {
+ (
+ $name:ident,
+ $src_unit:ty,
+ $dst_unit:ty,
++ // Safety: This function must require aligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_both_aligned:ident,
++ // Safety: This function must require aligned/unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_src_aligned:ident,
++ // Safety: This function must require unaligned/aligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_dst_aligned:ident,
++ // Safety: This function must require unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_neither_aligned:ident
+ ) => {
++ /// Safety: src/dst must be valid for reads/writes of `len` elements of their units.
+ #[inline(always)]
+ pub unsafe fn $name(src: *const $src_unit, dst: *mut $dst_unit, len: usize) {
+ let unit_size = ::core::mem::size_of::<$src_unit>();
+ let mut offset = 0usize;
++ // Safety: if this check succeeds we're valid for reading/writing at least `SIMD_STRIDE_SIZE` elements.
+ if SIMD_STRIDE_SIZE <= len {
++ // Safety: this correctly calculates the number of src_units that need to be read before the remaining list is aligned.
++ // This is by definition less than SIMD_STRIDE_SIZE.
+ let mut until_alignment = ((SIMD_STRIDE_SIZE
+ - ((src as usize) & SIMD_ALIGNMENT_MASK))
+ & SIMD_ALIGNMENT_MASK)
+ / unit_size;
+ while until_alignment != 0 {
++ // Safety: This is a straightforward copy, since until_alignment is < SIMD_STRIDE_SIZE < len, this is in-bounds
+ *(dst.add(offset)) = *(src.add(offset)) as $dst_unit;
+ offset += 1;
+ until_alignment -= 1;
+ }
++ // Safety: here offset will be `until_alignment`, i.e. enough to align `src`.
+ let len_minus_stride = len - SIMD_STRIDE_SIZE;
++ // Safety: if this check succeeds we're valid for reading/writing at least `2 * SIMD_STRIDE_SIZE` elements.
+ if offset + SIMD_STRIDE_SIZE * 2 <= len {
+ let len_minus_stride_times_two = len_minus_stride - SIMD_STRIDE_SIZE;
++ // Safety: at this point src is known to be aligned at offset, dst is not.
+ if (dst.add(offset) as usize) & SIMD_ALIGNMENT_MASK == 0 {
+ loop {
++ // Safety: We checked alignment of dst above, we can use the alignment functions. We're allowed to read/write 2*SIMD_STRIDE_SIZE elements, which we do.
+ $stride_both_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
+ $stride_both_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - 2 * SIMD_STRIDE_SIZE` which means we always have at least `2 * SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride_times_two {
+ break;
+ }
+ }
+ } else {
+ loop {
++ // Safety: we ensured alignment of src already.
+ $stride_src_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
+ $stride_src_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - 2 * SIMD_STRIDE_SIZE` which means we always have at least `2 * SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride_times_two {
+ break;
+ }
+ }
+ }
+ }
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE` which means we are valid to munch SIMD_STRIDE_SIZE more elements, which we do
+ if offset < len_minus_stride {
+ $stride_src_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
+ }
+ }
+ while offset < len {
++ // Safety: uses len invariant here and below
+ let code_unit = *(src.add(offset));
+ // On x86_64, this loop autovectorizes but in the pack
+ // case there are instructions whose purpose is to make sure
+ // each u16 in the vector is truncated before packing. However,
+ // since we don't care about saturating behavior of SSE2 packing
+ // when the input isn't Latin1, those instructions are useless.
+ // Unfortunately, using the `assume` intrinsic to lie to the
+ // optimizer doesn't make LLVM omit the trunctation that we
+@@ -688,138 +869,180 @@ macro_rules! latin1_simd_check_align_unr
+ offset += 1;
+ }
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_simd_unalign {
++ // Safety: stride_neither_aligned must be a function that requires src/dest be valid for unaligned reads/writes for SIMD_STRIDE_SIZE elements of type src_unit/dest_unit
+ ($name:ident, $src_unit:ty, $dst_unit:ty, $stride_neither_aligned:ident) => {
++ /// Safety: src and dst must be valid for reads/writes of len elements of type src_unit/dst_unit
++ ///
++ /// Safety-usable invariant: will return Some() when it encounters non-ASCII, with the first element in the Some being
++ /// guaranteed to be non-ASCII (> 127), and the second being the offset where it is found
+ #[inline(always)]
+ pub unsafe fn $name(
+ src: *const $src_unit,
+ dst: *mut $dst_unit,
+ len: usize,
+ ) -> Option<($src_unit, usize)> {
+ let mut offset = 0usize;
++ // Safety: if this check succeeds we're valid for reading/writing at least `stride` elements.
+ if SIMD_STRIDE_SIZE <= len {
+ let len_minus_stride = len - SIMD_STRIDE_SIZE;
+ loop {
++ // Safety: We know we're valid for `stride` reads/writes, so we can call this function. We don't need alignment.
+ if !$stride_neither_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // This is `offset > len - stride` which means we always have at least `stride` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ while offset < len {
++ // Safety: Uses len invariant here and below
+ let code_unit = *(src.add(offset));
+ if code_unit > 127 {
++ // Safety-usable invariant upheld here
+ return Some((code_unit, offset));
+ }
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ None
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! latin1_simd_unalign {
++ // Safety: stride_neither_aligned must be a function that requires src/dest be valid for unaligned reads/writes for SIMD_STRIDE_SIZE elements of type src_unit/dest_unit
+ ($name:ident, $src_unit:ty, $dst_unit:ty, $stride_neither_aligned:ident) => {
++ /// Safety: src and dst must be valid for unaligned reads/writes of len elements of type src_unit/dst_unit
+ #[inline(always)]
+ pub unsafe fn $name(src: *const $src_unit, dst: *mut $dst_unit, len: usize) {
+ let mut offset = 0usize;
++ // Safety: if this check succeeds we're valid for reading/writing at least `stride` elements.
+ if SIMD_STRIDE_SIZE <= len {
+ let len_minus_stride = len - SIMD_STRIDE_SIZE;
+ loop {
++ // Safety: We know we're valid for `stride` reads/writes, so we can call this function. We don't need alignment.
+ $stride_neither_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
++ // This is `offset > len - stride` which means we always have at least `stride` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ while offset < len {
++ // Safety: Uses len invariant here
+ let code_unit = *(src.add(offset));
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_to_ascii_simd_stride {
++ // Safety: load/store must be valid for 16 bytes of read/write, which may be unaligned. (candidates: `(load|store)(16|8)_(unaligned|aligned)` functions)
+ ($name:ident, $load:ident, $store:ident) => {
++ /// Safety: src and dst must be valid for 16 bytes of read/write according to
++ /// the $load/$store fn, which may allow for unaligned reads/writes or require
++ /// alignment to either 16x8 or u8x16.
+ #[inline(always)]
+ pub unsafe fn $name(src: *const u8, dst: *mut u8) -> bool {
+ let simd = $load(src);
+ if !simd_is_ascii(simd) {
+ return false;
+ }
+ $store(dst, simd);
+ true
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_to_ascii_simd_double_stride {
++ // Safety: store must be valid for 32 bytes of write, which may be unaligned (candidates: `store(8|16)_(aligned|unaligned)`)
+ ($name:ident, $store:ident) => {
++ /// Safety: src must be valid for 32 bytes of aligned u8x16 read
++ /// dst must be valid for 32 bytes of unaligned write according to
++ /// the $store fn, which may allow for unaligned writes or require
++ /// alignment to either 16x8 or u8x16.
++ ///
++ /// Safety-usable invariant: Returns Some(index) if the element at `index` is invalid ASCII
+ #[inline(always)]
+ pub unsafe fn $name(src: *const u8, dst: *mut u8) -> Option<usize> {
+ let first = load16_aligned(src);
+ let second = load16_aligned(src.add(SIMD_STRIDE_SIZE));
+ $store(dst, first);
+ if unlikely(!simd_is_ascii(first | second)) {
++ // Safety: mask_ascii produces a mask of all the high bits.
+ let mask_first = mask_ascii(first);
+ if mask_first != 0 {
++ // Safety: on little endian systems this will be the number of ascii bytes
++ // before the first non-ascii, i.e. valid for indexing src
++ // TODO SAFETY: What about big-endian systems?
+ return Some(mask_first.trailing_zeros() as usize);
+ }
+ $store(dst.add(SIMD_STRIDE_SIZE), second);
+ let mask_second = mask_ascii(second);
++ // Safety: on little endian systems this will be the number of ascii bytes
++ // before the first non-ascii, i.e. valid for indexing src
+ return Some(SIMD_STRIDE_SIZE + mask_second.trailing_zeros() as usize);
+ }
+ $store(dst.add(SIMD_STRIDE_SIZE), second);
+ None
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_to_basic_latin_simd_stride {
++ // Safety: load/store must be valid for 16 bytes of read/write, which may be unaligned. (candidates: `(load|store)(16|8)_(unaligned|aligned)` functions)
+ ($name:ident, $load:ident, $store:ident) => {
++ /// Safety: src and dst must be valid for 16/32 bytes of read/write according to
++ /// the $load/$store fn, which may allow for unaligned reads/writes or require
++ /// alignment to either 16x8 or u8x16.
+ #[inline(always)]
+ pub unsafe fn $name(src: *const u8, dst: *mut u16) -> bool {
+ let simd = $load(src);
+ if !simd_is_ascii(simd) {
+ return false;
+ }
+ let (first, second) = simd_unpack(simd);
+ $store(dst, first);
+ $store(dst.add(8), second);
+ true
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_to_basic_latin_simd_double_stride {
++ // Safety: store must be valid for 16 bytes of write, which may be unaligned
+ ($name:ident, $store:ident) => {
++ /// Safety: src must be valid for 2*SIMD_STRIDE_SIZE bytes of aligned reads,
++ /// aligned to either 16x8 or u8x16.
++ /// dst must be valid for 2*SIMD_STRIDE_SIZE bytes of aligned or unaligned reads
+ #[inline(always)]
+ pub unsafe fn $name(src: *const u8, dst: *mut u16) -> Option<usize> {
+ let first = load16_aligned(src);
+ let second = load16_aligned(src.add(SIMD_STRIDE_SIZE));
+ let (a, b) = simd_unpack(first);
+ $store(dst, a);
++ // Safety: divide by 2 since it's a u16 pointer
+ $store(dst.add(SIMD_STRIDE_SIZE / 2), b);
+ if unlikely(!simd_is_ascii(first | second)) {
+ let mask_first = mask_ascii(first);
+ if mask_first != 0 {
+ return Some(mask_first.trailing_zeros() as usize);
+ }
+ let (c, d) = simd_unpack(second);
+ $store(dst.add(SIMD_STRIDE_SIZE), c);
+@@ -832,47 +1055,59 @@ macro_rules! ascii_to_basic_latin_simd_d
+ $store(dst.add(SIMD_STRIDE_SIZE + (SIMD_STRIDE_SIZE / 2)), d);
+ None
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! unpack_simd_stride {
++ // Safety: load/store must be valid for 16 bytes of read/write, which may be unaligned. (candidates: `(load|store)(16|8)_(unaligned|aligned)` functions)
+ ($name:ident, $load:ident, $store:ident) => {
++ /// Safety: src and dst must be valid for 16 bytes of read/write according to
++ /// the $load/$store fn, which may allow for unaligned reads/writes or require
++ /// alignment to either 16x8 or u8x16.
+ #[inline(always)]
+ pub unsafe fn $name(src: *const u8, dst: *mut u16) {
+ let simd = $load(src);
+ let (first, second) = simd_unpack(simd);
+ $store(dst, first);
+ $store(dst.add(8), second);
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! basic_latin_to_ascii_simd_stride {
++ // Safety: load/store must be valid for 16 bytes of read/write, which may be unaligned. (candidates: `(load|store)(16|8)_(unaligned|aligned)` functions)
+ ($name:ident, $load:ident, $store:ident) => {
++ /// Safety: src and dst must be valid for 32/16 bytes of read/write according to
++ /// the $load/$store fn, which may allow for unaligned reads/writes or require
++ /// alignment to either 16x8 or u8x16.
+ #[inline(always)]
+ pub unsafe fn $name(src: *const u16, dst: *mut u8) -> bool {
+ let first = $load(src);
+ let second = $load(src.add(8));
+ if simd_is_basic_latin(first | second) {
+ $store(dst, simd_pack(first, second));
+ true
+ } else {
+ false
+ }
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! pack_simd_stride {
++ // Safety: load/store must be valid for 16 bytes of read/write, which may be unaligned. (candidates: `(load|store)(16|8)_(unaligned|aligned)` functions)
+ ($name:ident, $load:ident, $store:ident) => {
++ /// Safety: src and dst must be valid for 32/16 bytes of read/write according to
++ /// the $load/$store fn, which may allow for unaligned reads/writes or require
++ /// alignment to either 16x8 or u8x16.
+ #[inline(always)]
+ pub unsafe fn $name(src: *const u16, dst: *mut u8) {
+ let first = $load(src);
+ let second = $load(src.add(8));
+ $store(dst, simd_pack(first, second));
+ }
+ };
+ }
+@@ -888,24 +1123,28 @@ cfg_if! {
+ // pub const ALIGNMENT: usize = 8;
+
+ pub const ALU_STRIDE_SIZE: usize = 16;
+
+ pub const ALU_ALIGNMENT: usize = 8;
+
+ pub const ALU_ALIGNMENT_MASK: usize = 7;
+
++ // Safety for stride macros: We stick to the load8_aligned/etc family of functions. We consistently produce
++ // neither_unaligned variants using only unaligned inputs.
+ ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_neither_aligned, load16_unaligned, store16_unaligned);
+
+ ascii_to_basic_latin_simd_stride!(ascii_to_basic_latin_stride_neither_aligned, load16_unaligned, store8_unaligned);
+ unpack_simd_stride!(unpack_stride_neither_aligned, load16_unaligned, store8_unaligned);
+
+ basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_neither_aligned, load8_unaligned, store16_unaligned);
+ pack_simd_stride!(pack_stride_neither_aligned, load8_unaligned, store16_unaligned);
+
++ // Safety for conversion macros: We use the unalign macro with unalign functions above. All stride functions were produced
++ // by stride macros that universally munch a single SIMD_STRIDE_SIZE worth of elements.
+ ascii_simd_unalign!(ascii_to_ascii, u8, u8, ascii_to_ascii_stride_neither_aligned);
+ ascii_simd_unalign!(ascii_to_basic_latin, u8, u16, ascii_to_basic_latin_stride_neither_aligned);
+ ascii_simd_unalign!(basic_latin_to_ascii, u16, u8, basic_latin_to_ascii_stride_neither_aligned);
+ latin1_simd_unalign!(unpack_latin1, u8, u16, unpack_stride_neither_aligned);
+ latin1_simd_unalign!(pack_latin1, u16, u8, pack_stride_neither_aligned);
+ } else if #[cfg(all(feature = "simd-accel", target_endian = "little", target_feature = "neon"))] {
+ // SIMD with different instructions for aligned and unaligned loads and stores.
+ //
+@@ -914,16 +1153,19 @@ cfg_if! {
+ // but the benchmark results I see don't agree.
+
+ pub const SIMD_STRIDE_SIZE: usize = 16;
+
+ pub const MAX_STRIDE_SIZE: usize = 16;
+
+ pub const SIMD_ALIGNMENT_MASK: usize = 15;
+
++ // Safety for stride macros: We stick to the load8_aligned/etc family of functions. We consistently name
++ // aligned/unaligned functions according to src/dst being aligned/unaligned
++
+ ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_both_aligned, load16_aligned, store16_aligned);
+ ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_src_aligned, load16_aligned, store16_unaligned);
+ ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_dst_aligned, load16_unaligned, store16_aligned);
+ ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_neither_aligned, load16_unaligned, store16_unaligned);
+
+ ascii_to_basic_latin_simd_stride!(ascii_to_basic_latin_stride_both_aligned, load16_aligned, store8_aligned);
+ ascii_to_basic_latin_simd_stride!(ascii_to_basic_latin_stride_src_aligned, load16_aligned, store8_unaligned);
+ ascii_to_basic_latin_simd_stride!(ascii_to_basic_latin_stride_dst_aligned, load16_unaligned, store8_aligned);
+@@ -939,36 +1181,43 @@ cfg_if! {
+ basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_dst_aligned, load8_unaligned, store16_aligned);
+ basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_neither_aligned, load8_unaligned, store16_unaligned);
+
+ pack_simd_stride!(pack_stride_both_aligned, load8_aligned, store16_aligned);
+ pack_simd_stride!(pack_stride_src_aligned, load8_aligned, store16_unaligned);
+ pack_simd_stride!(pack_stride_dst_aligned, load8_unaligned, store16_aligned);
+ pack_simd_stride!(pack_stride_neither_aligned, load8_unaligned, store16_unaligned);
+
++ // Safety for conversion macros: We use the correct pattern of both/src/dst/neither here. All stride functions were produced
++ // by stride macros that universally munch a single SIMD_STRIDE_SIZE worth of elements.
++
+ ascii_simd_check_align!(ascii_to_ascii, u8, u8, ascii_to_ascii_stride_both_aligned, ascii_to_ascii_stride_src_aligned, ascii_to_ascii_stride_dst_aligned, ascii_to_ascii_stride_neither_aligned);
+ ascii_simd_check_align!(ascii_to_basic_latin, u8, u16, ascii_to_basic_latin_stride_both_aligned, ascii_to_basic_latin_stride_src_aligned, ascii_to_basic_latin_stride_dst_aligned, ascii_to_basic_latin_stride_neither_aligned);
+ ascii_simd_check_align!(basic_latin_to_ascii, u16, u8, basic_latin_to_ascii_stride_both_aligned, basic_latin_to_ascii_stride_src_aligned, basic_latin_to_ascii_stride_dst_aligned, basic_latin_to_ascii_stride_neither_aligned);
+ latin1_simd_check_align!(unpack_latin1, u8, u16, unpack_stride_both_aligned, unpack_stride_src_aligned, unpack_stride_dst_aligned, unpack_stride_neither_aligned);
+ latin1_simd_check_align!(pack_latin1, u16, u8, pack_stride_both_aligned, pack_stride_src_aligned, pack_stride_dst_aligned, pack_stride_neither_aligned);
+ } else if #[cfg(all(feature = "simd-accel", target_feature = "sse2"))] {
+ // SIMD with different instructions for aligned and unaligned loads and stores.
+ //
+ // Newer microarchitectures are not supposed to have a performance difference between
+ // aligned and unaligned SSE2 loads and stores when the address is actually aligned,
+ // but the benchmark results I see don't agree.
+
+ pub const SIMD_STRIDE_SIZE: usize = 16;
+
++ /// Safety-usable invariant: This should be identical to SIMD_STRIDE_SIZE (used by ascii_simd_check_align_unrolled)
+ pub const SIMD_ALIGNMENT: usize = 16;
+
+ pub const MAX_STRIDE_SIZE: usize = 16;
+
+ pub const SIMD_ALIGNMENT_MASK: usize = 15;
+
++ // Safety for stride macros: We stick to the load8_aligned/etc family of functions. We consistently name
++ // aligned/unaligned functions according to src/dst being aligned/unaligned
++
+ ascii_to_ascii_simd_double_stride!(ascii_to_ascii_simd_double_stride_both_aligned, store16_aligned);
+ ascii_to_ascii_simd_double_stride!(ascii_to_ascii_simd_double_stride_src_aligned, store16_unaligned);
+
+ ascii_to_basic_latin_simd_double_stride!(ascii_to_basic_latin_simd_double_stride_both_aligned, store8_aligned);
+ ascii_to_basic_latin_simd_double_stride!(ascii_to_basic_latin_simd_double_stride_src_aligned, store8_unaligned);
+
+ ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_both_aligned, load16_aligned, store16_aligned);
+ ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_src_aligned, load16_aligned, store16_unaligned);
+@@ -984,33 +1233,43 @@ cfg_if! {
+ basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_both_aligned, load8_aligned, store16_aligned);
+ basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_src_aligned, load8_aligned, store16_unaligned);
+ basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_dst_aligned, load8_unaligned, store16_aligned);
+ basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_neither_aligned, load8_unaligned, store16_unaligned);
+
+ pack_simd_stride!(pack_stride_both_aligned, load8_aligned, store16_aligned);
+ pack_simd_stride!(pack_stride_src_aligned, load8_aligned, store16_unaligned);
+
++ // Safety for conversion macros: We use the correct pattern of both/src/dst/neither/double_both/double_src here. All stride functions were produced
++ // by stride macros that universally munch a single SIMD_STRIDE_SIZE worth of elements.
++
+ ascii_simd_check_align_unrolled!(ascii_to_ascii, u8, u8, ascii_to_ascii_stride_both_aligned, ascii_to_ascii_stride_src_aligned, ascii_to_ascii_stride_neither_aligned, ascii_to_ascii_simd_double_stride_both_aligned, ascii_to_ascii_simd_double_stride_src_aligned);
+ ascii_simd_check_align_unrolled!(ascii_to_basic_latin, u8, u16, ascii_to_basic_latin_stride_both_aligned, ascii_to_basic_latin_stride_src_aligned, ascii_to_basic_latin_stride_neither_aligned, ascii_to_basic_latin_simd_double_stride_both_aligned, ascii_to_basic_latin_simd_double_stride_src_aligned);
+
+ ascii_simd_check_align!(basic_latin_to_ascii, u16, u8, basic_latin_to_ascii_stride_both_aligned, basic_latin_to_ascii_stride_src_aligned, basic_latin_to_ascii_stride_dst_aligned, basic_latin_to_ascii_stride_neither_aligned);
+ latin1_simd_check_align_unrolled!(unpack_latin1, u8, u16, unpack_stride_both_aligned, unpack_stride_src_aligned, unpack_stride_dst_aligned, unpack_stride_neither_aligned);
+ latin1_simd_check_align_unrolled!(pack_latin1, u16, u8, pack_stride_both_aligned, pack_stride_src_aligned, pack_stride_dst_aligned, pack_stride_neither_aligned);
+ } else if #[cfg(all(target_endian = "little", target_pointer_width = "64"))] {
+ // Aligned ALU word, little-endian, 64-bit
+
++ /// Safety invariant: this is the amount of bytes consumed by
++ /// unpack_alu. This will be twice the pointer width, as it consumes two usizes.
++ /// This is also the number of bytes produced by pack_alu.
++ /// This is also the number of u16 code units produced/consumed by unpack_alu/pack_alu respectively.
+ pub const ALU_STRIDE_SIZE: usize = 16;
+
+ pub const MAX_STRIDE_SIZE: usize = 16;
+
++ // Safety invariant: this is the pointer width in bytes
+ pub const ALU_ALIGNMENT: usize = 8;
+
++ // Safety invariant: this is a mask for getting the bits of a pointer not aligned to ALU_ALIGNMENT
+ pub const ALU_ALIGNMENT_MASK: usize = 7;
+
++ /// Safety: dst must point to valid space for writing four `usize`s
+ #[inline(always)]
+ unsafe fn unpack_alu(word: usize, second_word: usize, dst: *mut usize) {
+ let first = ((0x0000_0000_FF00_0000usize & word) << 24) |
+ ((0x0000_0000_00FF_0000usize & word) << 16) |
+ ((0x0000_0000_0000_FF00usize & word) << 8) |
+ (0x0000_0000_0000_00FFusize & word);
+ let second = ((0xFF00_0000_0000_0000usize & word) >> 8) |
+ ((0x00FF_0000_0000_0000usize & word) >> 16) |
+@@ -1019,22 +1278,24 @@ cfg_if! {
+ let third = ((0x0000_0000_FF00_0000usize & second_word) << 24) |
+ ((0x0000_0000_00FF_0000usize & second_word) << 16) |
+ ((0x0000_0000_0000_FF00usize & second_word) << 8) |
+ (0x0000_0000_0000_00FFusize & second_word);
+ let fourth = ((0xFF00_0000_0000_0000usize & second_word) >> 8) |
+ ((0x00FF_0000_0000_0000usize & second_word) >> 16) |
+ ((0x0000_FF00_0000_0000usize & second_word) >> 24) |
+ ((0x0000_00FF_0000_0000usize & second_word) >> 32);
++ // Safety: fn invariant used here
+ *dst = first;
+ *(dst.add(1)) = second;
+ *(dst.add(2)) = third;
+ *(dst.add(3)) = fourth;
+ }
+
++ /// Safety: dst must point to valid space for writing two `usize`s
+ #[inline(always)]
+ unsafe fn pack_alu(first: usize, second: usize, third: usize, fourth: usize, dst: *mut usize) {
+ let word = ((0x00FF_0000_0000_0000usize & second) << 8) |
+ ((0x0000_00FF_0000_0000usize & second) << 16) |
+ ((0x0000_0000_00FF_0000usize & second) << 24) |
+ ((0x0000_0000_0000_00FFusize & second) << 32) |
+ ((0x00FF_0000_0000_0000usize & first) >> 24) |
+ ((0x0000_00FF_0000_0000usize & first) >> 16) |
+@@ -1043,70 +1304,88 @@ cfg_if! {
+ let second_word = ((0x00FF_0000_0000_0000usize & fourth) << 8) |
+ ((0x0000_00FF_0000_0000usize & fourth) << 16) |
+ ((0x0000_0000_00FF_0000usize & fourth) << 24) |
+ ((0x0000_0000_0000_00FFusize & fourth) << 32) |
+ ((0x00FF_0000_0000_0000usize & third) >> 24) |
+ ((0x0000_00FF_0000_0000usize & third) >> 16) |
+ ((0x0000_0000_00FF_0000usize & third) >> 8) |
+ (0x0000_0000_0000_00FFusize & third);
++ // Safety: fn invariant used here
+ *dst = word;
+ *(dst.add(1)) = second_word;
+ }
+ } else if #[cfg(all(target_endian = "little", target_pointer_width = "32"))] {
+ // Aligned ALU word, little-endian, 32-bit
+
++ /// Safety invariant: this is the amount of bytes consumed by
++ /// unpack_alu. This will be twice the pointer width, as it consumes two usizes.
++ /// This is also the number of bytes produced by pack_alu.
++ /// This is also the number of u16 code units produced/consumed by unpack_alu/pack_alu respectively.
+ pub const ALU_STRIDE_SIZE: usize = 8;
+
+ pub const MAX_STRIDE_SIZE: usize = 8;
+
++ // Safety invariant: this is the pointer width in bytes
+ pub const ALU_ALIGNMENT: usize = 4;
+
++ // Safety invariant: this is a mask for getting the bits of a pointer not aligned to ALU_ALIGNMENT
+ pub const ALU_ALIGNMENT_MASK: usize = 3;
+
++ /// Safety: dst must point to valid space for writing four `usize`s
+ #[inline(always)]
+ unsafe fn unpack_alu(word: usize, second_word: usize, dst: *mut usize) {
+ let first = ((0x0000_FF00usize & word) << 8) |
+ (0x0000_00FFusize & word);
+ let second = ((0xFF00_0000usize & word) >> 8) |
+ ((0x00FF_0000usize & word) >> 16);
+ let third = ((0x0000_FF00usize & second_word) << 8) |
+ (0x0000_00FFusize & second_word);
+ let fourth = ((0xFF00_0000usize & second_word) >> 8) |
+ ((0x00FF_0000usize & second_word) >> 16);
++ // Safety: fn invariant used here
+ *dst = first;
+ *(dst.add(1)) = second;
+ *(dst.add(2)) = third;
+ *(dst.add(3)) = fourth;
+ }
+
++ /// Safety: dst must point to valid space for writing two `usize`s
+ #[inline(always)]
+ unsafe fn pack_alu(first: usize, second: usize, third: usize, fourth: usize, dst: *mut usize) {
+ let word = ((0x00FF_0000usize & second) << 8) |
+ ((0x0000_00FFusize & second) << 16) |
+ ((0x00FF_0000usize & first) >> 8) |
+ (0x0000_00FFusize & first);
+ let second_word = ((0x00FF_0000usize & fourth) << 8) |
+ ((0x0000_00FFusize & fourth) << 16) |
+ ((0x00FF_0000usize & third) >> 8) |
+ (0x0000_00FFusize & third);
++ // Safety: fn invariant used here
+ *dst = word;
+ *(dst.add(1)) = second_word;
+ }
+ } else if #[cfg(all(target_endian = "big", target_pointer_width = "64"))] {
+ // Aligned ALU word, big-endian, 64-bit
+
++ /// Safety invariant: this is the amount of bytes consumed by
++ /// unpack_alu. This will be twice the pointer width, as it consumes two usizes.
++ /// This is also the number of bytes produced by pack_alu.
++ /// This is also the number of u16 code units produced/consumed by unpack_alu/pack_alu respectively.
+ pub const ALU_STRIDE_SIZE: usize = 16;
+
+ pub const MAX_STRIDE_SIZE: usize = 16;
+
++ // Safety invariant: this is the pointer width in bytes
+ pub const ALU_ALIGNMENT: usize = 8;
+
++ // Safety invariant: this is a mask for getting the bits of a pointer not aligned to ALU_ALIGNMENT
+ pub const ALU_ALIGNMENT_MASK: usize = 7;
+
++ /// Safety: dst must point to valid space for writing four `usize`s
+ #[inline(always)]
+ unsafe fn unpack_alu(word: usize, second_word: usize, dst: *mut usize) {
+ let first = ((0xFF00_0000_0000_0000usize & word) >> 8) |
+ ((0x00FF_0000_0000_0000usize & word) >> 16) |
+ ((0x0000_FF00_0000_0000usize & word) >> 24) |
+ ((0x0000_00FF_0000_0000usize & word) >> 32);
+ let second = ((0x0000_0000_FF00_0000usize & word) << 24) |
+ ((0x0000_0000_00FF_0000usize & word) << 16) |
+@@ -1115,22 +1394,24 @@ cfg_if! {
+ let third = ((0xFF00_0000_0000_0000usize & second_word) >> 8) |
+ ((0x00FF_0000_0000_0000usize & second_word) >> 16) |
+ ((0x0000_FF00_0000_0000usize & second_word) >> 24) |
+ ((0x0000_00FF_0000_0000usize & second_word) >> 32);
+ let fourth = ((0x0000_0000_FF00_0000usize & second_word) << 24) |
+ ((0x0000_0000_00FF_0000usize & second_word) << 16) |
+ ((0x0000_0000_0000_FF00usize & second_word) << 8) |
+ (0x0000_0000_0000_00FFusize & second_word);
++ // Safety: fn invariant used here
+ *dst = first;
+ *(dst.add(1)) = second;
+ *(dst.add(2)) = third;
+ *(dst.add(3)) = fourth;
+ }
+
++ /// Safety: dst must point to valid space for writing two `usize`s
+ #[inline(always)]
+ unsafe fn pack_alu(first: usize, second: usize, third: usize, fourth: usize, dst: *mut usize) {
+ let word = ((0x00FF0000_00000000usize & first) << 8) |
+ ((0x000000FF_00000000usize & first) << 16) |
+ ((0x00000000_00FF0000usize & first) << 24) |
+ ((0x00000000_000000FFusize & first) << 32) |
+ ((0x00FF0000_00000000usize & second) >> 24) |
+ ((0x000000FF_00000000usize & second) >> 16) |
+@@ -1139,67 +1420,80 @@ cfg_if! {
+ let second_word = ((0x00FF0000_00000000usize & third) << 8) |
+ ((0x000000FF_00000000usize & third) << 16) |
+ ((0x00000000_00FF0000usize & third) << 24) |
+ ((0x00000000_000000FFusize & third) << 32) |
+ ((0x00FF0000_00000000usize & fourth) >> 24) |
+ ((0x000000FF_00000000usize & fourth) >> 16) |
+ ((0x00000000_00FF0000usize & fourth) >> 8) |
+ (0x00000000_000000FFusize & fourth);
++ // Safety: fn invariant used here
+ *dst = word;
+ *(dst.add(1)) = second_word;
+ }
+ } else if #[cfg(all(target_endian = "big", target_pointer_width = "32"))] {
+ // Aligned ALU word, big-endian, 32-bit
+
++ /// Safety invariant: this is the amount of bytes consumed by
++ /// unpack_alu. This will be twice the pointer width, as it consumes two usizes.
++ /// This is also the number of bytes produced by pack_alu.
++ /// This is also the number of u16 code units produced/consumed by unpack_alu/pack_alu respectively.
+ pub const ALU_STRIDE_SIZE: usize = 8;
+
+ pub const MAX_STRIDE_SIZE: usize = 8;
+
++ // Safety invariant: this is the pointer width in bytes
+ pub const ALU_ALIGNMENT: usize = 4;
+
++ // Safety invariant: this is a mask for getting the bits of a pointer not aligned to ALU_ALIGNMENT
+ pub const ALU_ALIGNMENT_MASK: usize = 3;
+
++ /// Safety: dst must point to valid space for writing four `usize`s
+ #[inline(always)]
+ unsafe fn unpack_alu(word: usize, second_word: usize, dst: *mut usize) {
+ let first = ((0xFF00_0000usize & word) >> 8) |
+ ((0x00FF_0000usize & word) >> 16);
+ let second = ((0x0000_FF00usize & word) << 8) |
+ (0x0000_00FFusize & word);
+ let third = ((0xFF00_0000usize & second_word) >> 8) |
+ ((0x00FF_0000usize & second_word) >> 16);
+ let fourth = ((0x0000_FF00usize & second_word) << 8) |
+ (0x0000_00FFusize & second_word);
++ // Safety: fn invariant used here
+ *dst = first;
+ *(dst.add(1)) = second;
+ *(dst.add(2)) = third;
+ *(dst.add(3)) = fourth;
+ }
+
++ /// Safety: dst must point to valid space for writing two `usize`s
+ #[inline(always)]
+ unsafe fn pack_alu(first: usize, second: usize, third: usize, fourth: usize, dst: *mut usize) {
+ let word = ((0x00FF_0000usize & first) << 8) |
+ ((0x0000_00FFusize & first) << 16) |
+ ((0x00FF_0000usize & second) >> 8) |
+ (0x0000_00FFusize & second);
+ let second_word = ((0x00FF_0000usize & third) << 8) |
+ ((0x0000_00FFusize & third) << 16) |
+ ((0x00FF_0000usize & fourth) >> 8) |
+ (0x0000_00FFusize & fourth);
++ // Safety: fn invariant used here
+ *dst = word;
+ *(dst.add(1)) = second_word;
+ }
+ } else {
+ ascii_naive!(ascii_to_ascii, u8, u8);
+ ascii_naive!(ascii_to_basic_latin, u8, u16);
+ ascii_naive!(basic_latin_to_ascii, u16, u8);
+ }
+ }
+
+ cfg_if! {
++ // Safety-usable invariant: this counts the zeroes from the "first byte" of utf-8 data packed into a usize
++ // with the target endianness
+ if #[cfg(target_endian = "little")] {
+ #[allow(dead_code)]
+ #[inline(always)]
+ fn count_zeros(word: usize) -> u32 {
+ word.trailing_zeros()
+ }
+ } else {
+ #[allow(dead_code)]
+@@ -1207,208 +1501,272 @@ cfg_if! {
+ fn count_zeros(word: usize) -> u32 {
+ word.leading_zeros()
+ }
+ }
+ }
+
+ cfg_if! {
+ if #[cfg(all(feature = "simd-accel", target_endian = "little", target_arch = "disabled"))] {
++ /// Safety-usable invariant: Will return the value and position of the first non-ASCII byte in the slice in a Some if found.
++ /// In other words, the first element of the Some is always `> 127`
+ #[inline(always)]
+ pub fn validate_ascii(slice: &[u8]) -> Option<(u8, usize)> {
+ let src = slice.as_ptr();
+ let len = slice.len();
+ let mut offset = 0usize;
++ // Safety: if this check succeeds we're valid for reading/writing at least `stride` elements.
+ if SIMD_STRIDE_SIZE <= len {
+ let len_minus_stride = len - SIMD_STRIDE_SIZE;
+ loop {
++ // Safety: src at offset is valid for a `SIMD_STRIDE_SIZE` read
+ let simd = unsafe { load16_unaligned(src.add(offset)) };
+ if !simd_is_ascii(simd) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // This is `offset > len - SIMD_STRIDE_SIZE` which means we always have at least `SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ while offset < len {
+ let code_unit = slice[offset];
+ if code_unit > 127 {
++ // Safety: Safety-usable invariant upheld here
+ return Some((code_unit, offset));
+ }
+ offset += 1;
+ }
+ None
+ }
+ } else if #[cfg(all(feature = "simd-accel", target_feature = "sse2"))] {
++ /// Safety-usable invariant: will return Some() when it encounters non-ASCII, with the first element in the Some being
++ /// guaranteed to be non-ASCII (> 127), and the second being the offset where it is found
+ #[inline(always)]
+ pub fn validate_ascii(slice: &[u8]) -> Option<(u8, usize)> {
+ let src = slice.as_ptr();
+ let len = slice.len();
+ let mut offset = 0usize;
++ // Safety: if this check succeeds we're valid for reading at least `stride` elements.
+ if SIMD_STRIDE_SIZE <= len {
+ // First, process one unaligned vector
++ // Safety: src is valid for a `SIMD_STRIDE_SIZE` read
+ let simd = unsafe { load16_unaligned(src) };
+ let mask = mask_ascii(simd);
+ if mask != 0 {
+ offset = mask.trailing_zeros() as usize;
+ let non_ascii = unsafe { *src.add(offset) };
+ return Some((non_ascii, offset));
+ }
+ offset = SIMD_STRIDE_SIZE;
++ // Safety: Now that offset has changed we don't yet know how much it is valid for
+
+ // We have now seen 16 ASCII bytes. Let's guess that
+ // there will be enough more to justify more expense
+ // in the case of non-ASCII.
+ // Use aligned reads for the sake of old microachitectures.
++ // Safety: this correctly calculates the number of src_units that need to be read before the remaining list is aligned.
++ // This is by definition less than SIMD_ALIGNMENT, which is defined to be equal to SIMD_STRIDE_SIZE.
+ let until_alignment = unsafe { (SIMD_ALIGNMENT - ((src.add(offset) as usize) & SIMD_ALIGNMENT_MASK)) & SIMD_ALIGNMENT_MASK };
+ // This addition won't overflow, because even in the 32-bit PAE case the
+ // address space holds enough code that the slice length can't be that
+ // close to address space size.
+ // offset now equals SIMD_STRIDE_SIZE, hence times 3 below.
++ //
++ // Safety: if this check succeeds we're valid for reading at least `2 * SIMD_STRIDE_SIZE` elements plus `until_alignment`.
++ // The extra SIMD_STRIDE_SIZE in the condition is because `offset` is already `SIMD_STRIDE_SIZE`.
+ if until_alignment + (SIMD_STRIDE_SIZE * 3) <= len {
+ if until_alignment != 0 {
++ // Safety: this is safe to call since we're valid for this read (and more), and don't care about alignment
++ // This will copy over bytes that get decoded twice since it's not incrementing `offset` by SIMD_STRIDE_SIZE. This is fine.
+ let simd = unsafe { load16_unaligned(src.add(offset)) };
+ let mask = mask_ascii(simd);
+ if mask != 0 {
+ offset += mask.trailing_zeros() as usize;
+ let non_ascii = unsafe { *src.add(offset) };
+ return Some((non_ascii, offset));
+ }
+ offset += until_alignment;
+ }
++ // Safety: At this point we're valid for reading 2*SIMD_STRIDE_SIZE elements
++ // Safety: Now `offset` is aligned for `src`
+ let len_minus_stride_times_two = len - (SIMD_STRIDE_SIZE * 2);
+ loop {
++ // Safety: We were valid for this read, and were aligned.
+ let first = unsafe { load16_aligned(src.add(offset)) };
+ let second = unsafe { load16_aligned(src.add(offset + SIMD_STRIDE_SIZE)) };
+ if !simd_is_ascii(first | second) {
++ // Safety: mask_ascii produces a mask of all the high bits.
+ let mask_first = mask_ascii(first);
+ if mask_first != 0 {
++ // Safety: on little endian systems this will be the number of ascii bytes
++ // before the first non-ascii, i.e. valid for indexing src
++ // TODO SAFETY: What about big-endian systems?
+ offset += mask_first.trailing_zeros() as usize;
+ } else {
+ let mask_second = mask_ascii(second);
++ // Safety: on little endian systems this will be the number of ascii bytes
++ // before the first non-ascii, i.e. valid for indexing src
+ offset += SIMD_STRIDE_SIZE + mask_second.trailing_zeros() as usize;
+ }
++ // Safety: We know this is non-ASCII, and can uphold the safety-usable invariant here
+ let non_ascii = unsafe { *src.add(offset) };
++
+ return Some((non_ascii, offset));
+ }
+ offset += SIMD_STRIDE_SIZE * 2;
++ // Safety: This is `offset > len - 2 * SIMD_STRIDE_SIZE` which means we always have at least `2 * SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride_times_two {
+ break;
+ }
+ }
++ // Safety: if this check succeeds we're valid for reading at least `SIMD_STRIDE_SIZE`
+ if offset + SIMD_STRIDE_SIZE <= len {
+- let simd = unsafe { load16_aligned(src.add(offset)) };
+- let mask = mask_ascii(simd);
++ // Safety: We were valid for this read, and were aligned.
++ let simd = unsafe { load16_aligned(src.add(offset)) };
++ // Safety: mask_ascii produces a mask of all the high bits.
++ let mask = mask_ascii(simd);
+ if mask != 0 {
++ // Safety: on little endian systems this will be the number of ascii bytes
++ // before the first non-ascii, i.e. valid for indexing src
+ offset += mask.trailing_zeros() as usize;
+ let non_ascii = unsafe { *src.add(offset) };
++ // Safety: We know this is non-ASCII, and can uphold the safety-usable invariant here
+ return Some((non_ascii, offset));
+ }
+ offset += SIMD_STRIDE_SIZE;
+ }
+ } else {
++ // Safety: this is the unaligned branch
+ // At most two iterations, so unroll
++ // Safety: if this check succeeds we're valid for reading at least `SIMD_STRIDE_SIZE`
+ if offset + SIMD_STRIDE_SIZE <= len {
++ // Safety: We're valid for this read but must use an unaligned read
+ let simd = unsafe { load16_unaligned(src.add(offset)) };
+ let mask = mask_ascii(simd);
+ if mask != 0 {
+ offset += mask.trailing_zeros() as usize;
+ let non_ascii = unsafe { *src.add(offset) };
++ // Safety-usable invariant upheld here (same as above)
+ return Some((non_ascii, offset));
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: if this check succeeds we're valid for reading at least `SIMD_STRIDE_SIZE`
+ if offset + SIMD_STRIDE_SIZE <= len {
++ // Safety: We're valid for this read but must use an unaligned read
+ let simd = unsafe { load16_unaligned(src.add(offset)) };
+ let mask = mask_ascii(simd);
+ if mask != 0 {
+ offset += mask.trailing_zeros() as usize;
+ let non_ascii = unsafe { *src.add(offset) };
++ // Safety-usable invariant upheld here (same as above)
+ return Some((non_ascii, offset));
+ }
+ offset += SIMD_STRIDE_SIZE;
+ }
+ }
+ }
+ }
+ while offset < len {
++ // Safety: relies straightforwardly on the `len` invariant
+ let code_unit = unsafe { *(src.add(offset)) };
+ if code_unit > 127 {
++ // Safety-usable invariant upheld here
+ return Some((code_unit, offset));
+ }
+ offset += 1;
+ }
+ None
+ }
+ } else {
++ // Safety-usable invariant: returns byte index of first non-ascii byte
+ #[inline(always)]
+ fn find_non_ascii(word: usize, second_word: usize) -> Option<usize> {
+ let word_masked = word & ASCII_MASK;
+ let second_masked = second_word & ASCII_MASK;
+ if (word_masked | second_masked) == 0 {
++ // Both are ascii, invariant upheld
+ return None;
+ }
+ if word_masked != 0 {
+ let zeros = count_zeros(word_masked);
+- // `zeros` now contains 7 (for the seven bits of non-ASCII)
++ // `zeros` now contains 0 to 7 (for the seven bits of masked ASCII in little endian,
++ // or up to 7 bits of non-ASCII in big endian if the first byte is non-ASCII)
+ // plus 8 times the number of ASCII in text order before the
+ // non-ASCII byte in the little-endian case or 8 times the number of ASCII in
+ // text order before the non-ASCII byte in the big-endian case.
+ let num_ascii = (zeros >> 3) as usize;
++ // Safety-usable invariant upheld here
+ return Some(num_ascii);
+ }
+ let zeros = count_zeros(second_masked);
+- // `zeros` now contains 7 (for the seven bits of non-ASCII)
++ // `zeros` now contains 0 to 7 (for the seven bits of masked ASCII in little endian,
++ // or up to 7 bits of non-ASCII in big endian if the first byte is non-ASCII)
+ // plus 8 times the number of ASCII in text order before the
+ // non-ASCII byte in the little-endian case or 8 times the number of ASCII in
+ // text order before the non-ASCII byte in the big-endian case.
+ let num_ascii = (zeros >> 3) as usize;
++ // Safety-usable invariant upheld here
+ Some(ALU_ALIGNMENT + num_ascii)
+ }
+
++ /// Safety: `src` must be valid for the reads of two `usize`s
++ ///
++ /// Safety-usable invariant: will return byte index of first non-ascii byte
+ #[inline(always)]
+ unsafe fn validate_ascii_stride(src: *const usize) -> Option<usize> {
+ let word = *src;
+ let second_word = *(src.add(1));
+ find_non_ascii(word, second_word)
+ }
+
++ /// Safety-usable invariant: will return Some() when it encounters non-ASCII, with the first element in the Some being
++ /// guaranteed to be non-ASCII (> 127), and the second being the offset where it is found
+ #[cfg_attr(feature = "cargo-clippy", allow(cast_ptr_alignment))]
+ #[inline(always)]
+ pub fn validate_ascii(slice: &[u8]) -> Option<(u8, usize)> {
+ let src = slice.as_ptr();
+ let len = slice.len();
+ let mut offset = 0usize;
+ let mut until_alignment = (ALU_ALIGNMENT - ((src as usize) & ALU_ALIGNMENT_MASK)) & ALU_ALIGNMENT_MASK;
++ // Safety: If this check fails we're valid to read `until_alignment + ALU_STRIDE_SIZE` elements
+ if until_alignment + ALU_STRIDE_SIZE <= len {
+ while until_alignment != 0 {
+ let code_unit = slice[offset];
+ if code_unit > 127 {
++ // Safety-usable invairant upheld here
+ return Some((code_unit, offset));
+ }
+ offset += 1;
+ until_alignment -= 1;
+ }
++ // Safety: At this point we have read until_alignment elements and
++ // are valid for `ALU_STRIDE_SIZE` more.
+ let len_minus_stride = len - ALU_STRIDE_SIZE;
+ loop {
++ // Safety: we were valid for this read
+ let ptr = unsafe { src.add(offset) as *const usize };
+ if let Some(num_ascii) = unsafe { validate_ascii_stride(ptr) } {
+ offset += num_ascii;
++ // Safety-usable invairant upheld here using the invariant from validate_ascii_stride()
+ return Some((unsafe { *(src.add(offset)) }, offset));
+ }
+ offset += ALU_STRIDE_SIZE;
++ // Safety: This is `offset > ALU_STRIDE_SIZE` which means we always have at least `2 * ALU_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ while offset < len {
+ let code_unit = slice[offset];
+ if code_unit > 127 {
++ // Safety-usable invairant upheld here
+ return Some((code_unit, offset));
+ }
+ offset += 1;
+ }
+ None
+ }
+
+ }
+@@ -1423,70 +1781,88 @@ cfg_if! {
+ // vector reads without vector writes.
+
+ pub const ALU_STRIDE_SIZE: usize = 8;
+
+ pub const ALU_ALIGNMENT: usize = 4;
+
+ pub const ALU_ALIGNMENT_MASK: usize = 3;
+ } else {
++ // Safety: src points to two valid `usize`s, dst points to four valid `usize`s
+ #[inline(always)]
+ unsafe fn unpack_latin1_stride_alu(src: *const usize, dst: *mut usize) {
++ // Safety: src safety invariant used here
+ let word = *src;
+ let second_word = *(src.add(1));
++ // Safety: dst safety invariant passed down
+ unpack_alu(word, second_word, dst);
+ }
+
++ // Safety: src points to four valid `usize`s, dst points to two valid `usize`s
+ #[inline(always)]
+ unsafe fn pack_latin1_stride_alu(src: *const usize, dst: *mut usize) {
++ // Safety: src safety invariant used here
+ let first = *src;
+ let second = *(src.add(1));
+ let third = *(src.add(2));
+ let fourth = *(src.add(3));
++ // Safety: dst safety invariant passed down
+ pack_alu(first, second, third, fourth, dst);
+ }
+
++ // Safety: src points to two valid `usize`s, dst points to four valid `usize`s
+ #[inline(always)]
+ unsafe fn ascii_to_basic_latin_stride_alu(src: *const usize, dst: *mut usize) -> bool {
++ // Safety: src safety invariant used here
+ let word = *src;
+ let second_word = *(src.add(1));
+ // Check if the words contains non-ASCII
+ if (word & ASCII_MASK) | (second_word & ASCII_MASK) != 0 {
+ return false;
+ }
++ // Safety: dst safety invariant passed down
+ unpack_alu(word, second_word, dst);
+ true
+ }
+
++ // Safety: src points four valid `usize`s, dst points to two valid `usize`s
+ #[inline(always)]
+ unsafe fn basic_latin_to_ascii_stride_alu(src: *const usize, dst: *mut usize) -> bool {
++ // Safety: src safety invariant used here
+ let first = *src;
+ let second = *(src.add(1));
+ let third = *(src.add(2));
+ let fourth = *(src.add(3));
+ if (first & BASIC_LATIN_MASK) | (second & BASIC_LATIN_MASK) | (third & BASIC_LATIN_MASK) | (fourth & BASIC_LATIN_MASK) != 0 {
+ return false;
+ }
++ // Safety: dst safety invariant passed down
+ pack_alu(first, second, third, fourth, dst);
+ true
+ }
+
++ // Safety: src, dst both point to two valid `usize`s each
++ // Safety-usable invariant: Will return byte index of first non-ascii byte.
+ #[inline(always)]
+ unsafe fn ascii_to_ascii_stride(src: *const usize, dst: *mut usize) -> Option<usize> {
++ // Safety: src safety invariant used here
+ let word = *src;
+ let second_word = *(src.add(1));
++ // Safety: src safety invariant used here
+ *dst = word;
+ *(dst.add(1)) = second_word;
++ // Relies on safety-usable invariant here
+ find_non_ascii(word, second_word)
+ }
+
+ basic_latin_alu!(ascii_to_basic_latin, u8, u16, ascii_to_basic_latin_stride_alu);
+ basic_latin_alu!(basic_latin_to_ascii, u16, u8, basic_latin_to_ascii_stride_alu);
+ latin1_alu!(unpack_latin1, u8, u16, unpack_latin1_stride_alu);
+ latin1_alu!(pack_latin1, u16, u8, pack_latin1_stride_alu);
++ // Safety invariant upheld: ascii_to_ascii_stride will return byte index of first non-ascii if found
+ ascii_alu!(ascii_to_ascii, u8, u8, ascii_to_ascii_stride);
+ }
+ }
+
+ pub fn ascii_valid_up_to(bytes: &[u8]) -> usize {
+ match validate_ascii(bytes) {
+ None => bytes.len(),
+ Some((_, num_valid)) => num_valid,
+diff --git a/third_party/rust/encoding_rs/src/handles.rs b/third_party/rust/encoding_rs/src/handles.rs
+--- third_party/rust/encoding_rs/src/handles.rs
++++ third_party/rust/encoding_rs/src/handles.rs
+@@ -29,17 +29,17 @@ use crate::simd_funcs::*;
+ #[cfg(all(
+ feature = "simd-accel",
+ any(
+ target_feature = "sse2",
+ all(target_endian = "little", target_arch = "aarch64"),
+ all(target_endian = "little", target_feature = "neon")
+ )
+ ))]
+-use packed_simd::u16x8;
++use core::simd::u16x8;
+
+ use super::DecoderResult;
+ use super::EncoderResult;
+ use crate::ascii::*;
+ use crate::utf_8::convert_utf8_to_utf16_up_to_invalid;
+ use crate::utf_8::utf8_valid_up_to;
+
+ pub enum Space<T> {
+@@ -85,84 +85,100 @@ impl Endian for LittleEndian {
+ const OPPOSITE_ENDIAN: bool = false;
+
+ #[cfg(target_endian = "big")]
+ const OPPOSITE_ENDIAN: bool = true;
+ }
+
+ #[derive(Debug, Copy, Clone)]
+ struct UnalignedU16Slice {
++ // Safety invariant: ptr must be valid for reading 2*len bytes
+ ptr: *const u8,
+ len: usize,
+ }
+
+ impl UnalignedU16Slice {
++ /// Safety: ptr must be valid for reading 2*len bytes
+ #[inline(always)]
+ pub unsafe fn new(ptr: *const u8, len: usize) -> UnalignedU16Slice {
++ // Safety: field invariant passed up to caller here
+ UnalignedU16Slice { ptr, len }
+ }
+
+ #[inline(always)]
+ pub fn trim_last(&mut self) {
+ assert!(self.len > 0);
++ // Safety: invariant upheld here: a slice is still valid with a shorter len
+ self.len -= 1;
+ }
+
+ #[inline(always)]
+ pub fn at(&self, i: usize) -> u16 {
+ use core::mem::MaybeUninit;
+
+ assert!(i < self.len);
+ unsafe {
+ let mut u: MaybeUninit<u16> = MaybeUninit::uninit();
++ // Safety: i is at most len - 1, which works here
+ ::core::ptr::copy_nonoverlapping(self.ptr.add(i * 2), u.as_mut_ptr() as *mut u8, 2);
++ // Safety: valid read above lets us do this
+ u.assume_init()
+ }
+ }
+
+ #[cfg(feature = "simd-accel")]
+ #[inline(always)]
+ pub fn simd_at(&self, i: usize) -> u16x8 {
++ // Safety: i/len are on the scale of u16s, each one corresponds to 2 u8s
+ assert!(i + SIMD_STRIDE_SIZE / 2 <= self.len);
+ let byte_index = i * 2;
++ // Safety: load16_unaligned needs SIMD_STRIDE_SIZE=16 u8 elements to read,
++ // or 16/2 = 8 u16 elements to read.
++ // We have checked that we have at least that many above.
++
+ unsafe { to_u16_lanes(load16_unaligned(self.ptr.add(byte_index))) }
+ }
+
+ #[inline(always)]
+ pub fn len(&self) -> usize {
+ self.len
+ }
+
+ #[inline(always)]
+ pub fn tail(&self, from: usize) -> UnalignedU16Slice {
+ // XXX the return value should be restricted not to
+ // outlive self.
+ assert!(from <= self.len);
++ // Safety: This upholds the same invariant: `from` is in bounds and we're returning a shorter slice
+ unsafe { UnalignedU16Slice::new(self.ptr.add(from * 2), self.len - from) }
+ }
+
+ #[cfg(feature = "simd-accel")]
+ #[inline(always)]
+ pub fn copy_bmp_to<E: Endian>(&self, other: &mut [u16]) -> Option<(u16, usize)> {
+ assert!(self.len <= other.len());
+ let mut offset = 0;
++ // Safety: SIMD_STRIDE_SIZE is measured in bytes, whereas len is in u16s. We check we can
++ // munch SIMD_STRIDE_SIZE / 2 u16s which means we can write SIMD_STRIDE_SIZE u8s
+ if SIMD_STRIDE_SIZE / 2 <= self.len {
+ let len_minus_stride = self.len - SIMD_STRIDE_SIZE / 2;
+ loop {
+ let mut simd = self.simd_at(offset);
+ if E::OPPOSITE_ENDIAN {
+ simd = simd_byte_swap(simd);
+ }
++ // Safety: we have enough space on the other side to write this
+ unsafe {
+ store8_unaligned(other.as_mut_ptr().add(offset), simd);
+ }
+ if contains_surrogates(simd) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE / 2;
++ // Safety: This ensures we still have space for writing SIMD_STRIDE_SIZE u8s
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ while offset < self.len {
+ let unit = swap_if_opposite_endian::<E>(self.at(offset));
+ other[offset] = unit;
+@@ -231,33 +247,37 @@ fn copy_unaligned_basic_latin_to_ascii<E
+ #[cfg(feature = "simd-accel")]
+ #[inline(always)]
+ fn copy_unaligned_basic_latin_to_ascii<E: Endian>(
+ src: UnalignedU16Slice,
+ dst: &mut [u8],
+ ) -> CopyAsciiResult<usize, (u16, usize)> {
+ let len = ::core::cmp::min(src.len(), dst.len());
+ let mut offset = 0;
++ // Safety: This check ensures we are able to read/write at least SIMD_STRIDE_SIZE elements
+ if SIMD_STRIDE_SIZE <= len {
+ let len_minus_stride = len - SIMD_STRIDE_SIZE;
+ loop {
+ let mut first = src.simd_at(offset);
+ let mut second = src.simd_at(offset + (SIMD_STRIDE_SIZE / 2));
+ if E::OPPOSITE_ENDIAN {
+ first = simd_byte_swap(first);
+ second = simd_byte_swap(second);
+ }
+ if !simd_is_basic_latin(first | second) {
+ break;
+ }
+ let packed = simd_pack(first, second);
++ // Safety: We are able to write SIMD_STRIDE_SIZE elements in this iteration
+ unsafe {
+ store16_unaligned(dst.as_mut_ptr().add(offset), packed);
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE`, which ensures that we can write at least SIMD_STRIDE_SIZE elements
++ // in the next iteration
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ copy_unaligned_basic_latin_to_ascii_alu::<E>(src.tail(offset), &mut dst[offset..], offset)
+ }
+
+@@ -632,94 +652,106 @@ impl<'a> Utf16Destination<'a> {
+ #[inline(always)]
+ fn write_astral(&mut self, astral: u32) {
+ debug_assert!(astral > 0xFFFF);
+ debug_assert!(astral <= 0x10_FFFF);
+ self.write_code_unit((0xD7C0 + (astral >> 10)) as u16);
+ self.write_code_unit((0xDC00 + (astral & 0x3FF)) as u16);
+ }
+ #[inline(always)]
+- pub fn write_surrogate_pair(&mut self, high: u16, low: u16) {
++ fn write_surrogate_pair(&mut self, high: u16, low: u16) {
+ self.write_code_unit(high);
+ self.write_code_unit(low);
+ }
+ #[inline(always)]
+ fn write_big5_combination(&mut self, combined: u16, combining: u16) {
+ self.write_bmp_excl_ascii(combined);
+ self.write_bmp_excl_ascii(combining);
+ }
++ // Safety-usable invariant: CopyAsciiResult::GoOn will only contain bytes >=0x80
+ #[inline(always)]
+ pub fn copy_ascii_from_check_space_bmp<'b>(
+ &'b mut self,
+ source: &mut ByteSource,
+ ) -> CopyAsciiResult<(DecoderResult, usize, usize), (u8, Utf16BmpHandle<'b, 'a>)> {
+ let non_ascii_ret = {
+ let src_remaining = &source.slice[source.pos..];
+ let dst_remaining = &mut self.slice[self.pos..];
+ let (pending, length) = if dst_remaining.len() < src_remaining.len() {
+ (DecoderResult::OutputFull, dst_remaining.len())
+ } else {
+ (DecoderResult::InputEmpty, src_remaining.len())
+ };
++ // Safety: This function is documented as needing valid pointers for src/dest and len, which
++ // is true since we've passed the minumum length of the two
+ match unsafe {
+ ascii_to_basic_latin(src_remaining.as_ptr(), dst_remaining.as_mut_ptr(), length)
+ } {
+ None => {
+ source.pos += length;
+ self.pos += length;
+ return CopyAsciiResult::Stop((pending, source.pos, self.pos));
+ }
++ // Safety: the function is documented as returning bytes >=0x80 in the Some
+ Some((non_ascii, consumed)) => {
+ source.pos += consumed;
+ self.pos += consumed;
+ source.pos += 1; // +1 for non_ascii
++ // Safety: non-ascii bubbled out here
+ non_ascii
+ }
+ }
+ };
++ // Safety: non-ascii returned here
+ CopyAsciiResult::GoOn((non_ascii_ret, Utf16BmpHandle::new(self)))
+ }
++ // Safety-usable invariant: CopyAsciiResult::GoOn will only contain bytes >=0x80
+ #[inline(always)]
+ pub fn copy_ascii_from_check_space_astral<'b>(
+ &'b mut self,
+ source: &mut ByteSource,
+ ) -> CopyAsciiResult<(DecoderResult, usize, usize), (u8, Utf16AstralHandle<'b, 'a>)> {
+ let non_ascii_ret = {
+ let dst_len = self.slice.len();
+ let src_remaining = &source.slice[source.pos..];
+ let dst_remaining = &mut self.slice[self.pos..];
+ let (pending, length) = if dst_remaining.len() < src_remaining.len() {
+ (DecoderResult::OutputFull, dst_remaining.len())
+ } else {
+ (DecoderResult::InputEmpty, src_remaining.len())
+ };
++ // Safety: This function is documented as needing valid pointers for src/dest and len, which
++ // is true since we've passed the minumum length of the two
+ match unsafe {
+ ascii_to_basic_latin(src_remaining.as_ptr(), dst_remaining.as_mut_ptr(), length)
+ } {
+ None => {
+ source.pos += length;
+ self.pos += length;
+ return CopyAsciiResult::Stop((pending, source.pos, self.pos));
+ }
++ // Safety: the function is documented as returning bytes >=0x80 in the Some
+ Some((non_ascii, consumed)) => {
+ source.pos += consumed;
+ self.pos += consumed;
+ if self.pos + 1 < dst_len {
+ source.pos += 1; // +1 for non_ascii
++ // Safety: non-ascii bubbled out here
+ non_ascii
+ } else {
+ return CopyAsciiResult::Stop((
+ DecoderResult::OutputFull,
+ source.pos,
+ self.pos,
+ ));
+ }
+ }
+ }
+ };
++ // Safety: non-ascii returned here
+ CopyAsciiResult::GoOn((non_ascii_ret, Utf16AstralHandle::new(self)))
+ }
+ #[inline(always)]
+ pub fn copy_utf8_up_to_invalid_from(&mut self, source: &mut ByteSource) {
+ let src_remaining = &source.slice[source.pos..];
+ let dst_remaining = &mut self.slice[self.pos..];
+ let (read, written) = convert_utf8_to_utf16_up_to_invalid(src_remaining, dst_remaining);
+ source.pos += read;
+diff --git a/third_party/rust/encoding_rs/src/lib.rs b/third_party/rust/encoding_rs/src/lib.rs
+--- third_party/rust/encoding_rs/src/lib.rs
++++ third_party/rust/encoding_rs/src/lib.rs
+@@ -684,37 +684,26 @@
+ //! <tr><td>TIS-620</td><td>windows-874</td></tr>
+ //! </tbody>
+ //! </table>
+ //!
+ //! See the section [_UTF-16LE, UTF-16BE and Unicode Encoding Schemes_](#utf-16le-utf-16be-and-unicode-encoding-schemes)
+ //! for discussion about the UTF-16 family.
+
+ #![no_std]
+-#![cfg_attr(feature = "simd-accel", feature(core_intrinsics))]
++#![cfg_attr(feature = "simd-accel", feature(core_intrinsics, portable_simd))]
+
+ #[cfg(feature = "alloc")]
+ #[cfg_attr(test, macro_use)]
+ extern crate alloc;
+
+ extern crate core;
+ #[macro_use]
+ extern crate cfg_if;
+
+-#[cfg(all(
+- feature = "simd-accel",
+- any(
+- target_feature = "sse2",
+- all(target_endian = "little", target_arch = "aarch64"),
+- all(target_endian = "little", target_feature = "neon")
+- )
+-))]
+-#[macro_use(shuffle)]
+-extern crate packed_simd;
+-
+ #[cfg(feature = "serde")]
+ extern crate serde;
+
+ #[cfg(all(test, feature = "serde"))]
+ extern crate bincode;
+ #[cfg(all(test, feature = "serde"))]
+ #[macro_use]
+ extern crate serde_derive;
+diff --git a/third_party/rust/encoding_rs/src/mem.rs b/third_party/rust/encoding_rs/src/mem.rs
+--- third_party/rust/encoding_rs/src/mem.rs
++++ third_party/rust/encoding_rs/src/mem.rs
+@@ -111,16 +111,21 @@ macro_rules! by_unit_check_alu {
+ until_alignment -= 1;
+ }
+ if accu >= $bound {
+ return false;
+ }
+ }
+ let len_minus_stride = len - ALU_ALIGNMENT / unit_size;
+ if offset + (4 * (ALU_ALIGNMENT / unit_size)) <= len {
++ // Safety: the above check lets us perform 4 consecutive reads of
++ // length ALU_ALIGNMENT / unit_size. ALU_ALIGNMENT is the size of usize, and unit_size
++ // is the size of the `src` pointer, so this is equal to performing four usize reads.
++ //
++ // This invariant is upheld on all loop iterations
+ let len_minus_unroll = len - (4 * (ALU_ALIGNMENT / unit_size));
+ loop {
+ let unroll_accu = unsafe { *(src.add(offset) as *const usize) }
+ | unsafe {
+ *(src.add(offset + (ALU_ALIGNMENT / unit_size)) as *const usize)
+ }
+ | unsafe {
+ *(src.add(offset + (2 * (ALU_ALIGNMENT / unit_size)))
+@@ -129,22 +134,24 @@ macro_rules! by_unit_check_alu {
+ | unsafe {
+ *(src.add(offset + (3 * (ALU_ALIGNMENT / unit_size)))
+ as *const usize)
+ };
+ if unroll_accu & $mask != 0 {
+ return false;
+ }
+ offset += 4 * (ALU_ALIGNMENT / unit_size);
++ // Safety: this check lets us continue to perform the 4 reads earlier
+ if offset > len_minus_unroll {
+ break;
+ }
+ }
+ }
+ while offset <= len_minus_stride {
++ // Safety: the above check lets us perform one usize read.
+ accu |= unsafe { *(src.add(offset) as *const usize) };
+ offset += ALU_ALIGNMENT / unit_size;
+ }
+ }
+ }
+ for &unit in &buffer[offset..] {
+ accu |= unit as usize;
+ }
+@@ -184,16 +191,21 @@ macro_rules! by_unit_check_simd {
+ until_alignment -= 1;
+ }
+ if accu >= $bound {
+ return false;
+ }
+ }
+ let len_minus_stride = len - SIMD_STRIDE_SIZE / unit_size;
+ if offset + (4 * (SIMD_STRIDE_SIZE / unit_size)) <= len {
++ // Safety: the above check lets us perform 4 consecutive reads of
++ // length SIMD_STRIDE_SIZE / unit_size. SIMD_STRIDE_SIZE is the size of $simd_ty, and unit_size
++ // is the size of the `src` pointer, so this is equal to performing four $simd_ty reads.
++ //
++ // This invariant is upheld on all loop iterations
+ let len_minus_unroll = len - (4 * (SIMD_STRIDE_SIZE / unit_size));
+ loop {
+ let unroll_accu = unsafe { *(src.add(offset) as *const $simd_ty) }
+ | unsafe {
+ *(src.add(offset + (SIMD_STRIDE_SIZE / unit_size))
+ as *const $simd_ty)
+ }
+ | unsafe {
+@@ -203,23 +215,25 @@ macro_rules! by_unit_check_simd {
+ | unsafe {
+ *(src.add(offset + (3 * (SIMD_STRIDE_SIZE / unit_size)))
+ as *const $simd_ty)
+ };
+ if !$func(unroll_accu) {
+ return false;
+ }
+ offset += 4 * (SIMD_STRIDE_SIZE / unit_size);
++ // Safety: this check lets us continue to perform the 4 reads earlier
+ if offset > len_minus_unroll {
+ break;
+ }
+ }
+ }
+ let mut simd_accu = $splat;
+ while offset <= len_minus_stride {
++ // Safety: the above check lets us perform one $simd_ty read.
+ simd_accu = simd_accu | unsafe { *(src.add(offset) as *const $simd_ty) };
+ offset += SIMD_STRIDE_SIZE / unit_size;
+ }
+ if !$func(simd_accu) {
+ return false;
+ }
+ }
+ }
+@@ -229,18 +243,18 @@ macro_rules! by_unit_check_simd {
+ accu < $bound
+ }
+ };
+ }
+
+ cfg_if! {
+ if #[cfg(all(feature = "simd-accel", any(target_feature = "sse2", all(target_endian = "little", target_arch = "aarch64"), all(target_endian = "little", target_feature = "neon"))))] {
+ use crate::simd_funcs::*;
+- use packed_simd::u8x16;
+- use packed_simd::u16x8;
++ use core::simd::u8x16;
++ use core::simd::u16x8;
+
+ const SIMD_ALIGNMENT: usize = 16;
+
+ const SIMD_ALIGNMENT_MASK: usize = 15;
+
+ by_unit_check_simd!(is_ascii_impl, u8, u8x16::splat(0), u8x16, 0x80, simd_is_ascii);
+ by_unit_check_simd!(is_basic_latin_impl, u16, u16x8::splat(0), u16x8, 0x80, simd_is_basic_latin);
+ by_unit_check_simd!(is_utf16_latin1_impl, u16, u16x8::splat(0), u16x8, 0x100, simd_is_latin1);
+diff --git a/third_party/rust/encoding_rs/src/simd_funcs.rs b/third_party/rust/encoding_rs/src/simd_funcs.rs
+--- third_party/rust/encoding_rs/src/simd_funcs.rs
++++ third_party/rust/encoding_rs/src/simd_funcs.rs
+@@ -2,65 +2,84 @@
+ // file at the top-level directory of this distribution.
+ //
+ // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+ // https://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+ // <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your
+ // option. This file may not be copied, modified, or distributed
+ // except according to those terms.
+
+-use packed_simd::u16x8;
+-use packed_simd::u8x16;
+-use packed_simd::IntoBits;
++use any_all_workaround::all_mask16x8;
++use any_all_workaround::all_mask8x16;
++use any_all_workaround::any_mask16x8;
++use any_all_workaround::any_mask8x16;
++use core::simd::cmp::SimdPartialEq;
++use core::simd::cmp::SimdPartialOrd;
++use core::simd::mask16x8;
++use core::simd::mask8x16;
++use core::simd::simd_swizzle;
++use core::simd::u16x8;
++use core::simd::u8x16;
++use core::simd::ToBytes;
+
+ // TODO: Migrate unaligned access to stdlib code if/when the RFC
+ // https://github.com/rust-lang/rfcs/pull/1725 is implemented.
+
++/// Safety invariant: ptr must be valid for an unaligned read of 16 bytes
+ #[inline(always)]
+ pub unsafe fn load16_unaligned(ptr: *const u8) -> u8x16 {
+- let mut simd = ::core::mem::uninitialized();
+- ::core::ptr::copy_nonoverlapping(ptr, &mut simd as *mut u8x16 as *mut u8, 16);
+- simd
++ let mut simd = ::core::mem::MaybeUninit::<u8x16>::uninit();
++ ::core::ptr::copy_nonoverlapping(ptr, simd.as_mut_ptr() as *mut u8, 16);
++ // Safety: copied 16 bytes of initialized memory into this, it is now initialized
++ simd.assume_init()
+ }
+
++/// Safety invariant: ptr must be valid for an aligned-for-u8x16 read of 16 bytes
+ #[allow(dead_code)]
+ #[inline(always)]
+ pub unsafe fn load16_aligned(ptr: *const u8) -> u8x16 {
+ *(ptr as *const u8x16)
+ }
+
++/// Safety invariant: ptr must be valid for an unaligned store of 16 bytes
+ #[inline(always)]
+ pub unsafe fn store16_unaligned(ptr: *mut u8, s: u8x16) {
+ ::core::ptr::copy_nonoverlapping(&s as *const u8x16 as *const u8, ptr, 16);
+ }
+
++/// Safety invariant: ptr must be valid for an aligned-for-u8x16 store of 16 bytes
+ #[allow(dead_code)]
+ #[inline(always)]
+ pub unsafe fn store16_aligned(ptr: *mut u8, s: u8x16) {
+ *(ptr as *mut u8x16) = s;
+ }
+
++/// Safety invariant: ptr must be valid for an unaligned read of 16 bytes
+ #[inline(always)]
+ pub unsafe fn load8_unaligned(ptr: *const u16) -> u16x8 {
+- let mut simd = ::core::mem::uninitialized();
+- ::core::ptr::copy_nonoverlapping(ptr as *const u8, &mut simd as *mut u16x8 as *mut u8, 16);
+- simd
++ let mut simd = ::core::mem::MaybeUninit::<u16x8>::uninit();
++ ::core::ptr::copy_nonoverlapping(ptr as *const u8, simd.as_mut_ptr() as *mut u8, 16);
++ // Safety: copied 16 bytes of initialized memory into this, it is now initialized
++ simd.assume_init()
+ }
+
++/// Safety invariant: ptr must be valid for an aligned-for-u16x8 read of 16 bytes
+ #[allow(dead_code)]
+ #[inline(always)]
+ pub unsafe fn load8_aligned(ptr: *const u16) -> u16x8 {
+ *(ptr as *const u16x8)
+ }
+
++/// Safety invariant: ptr must be valid for an unaligned store of 16 bytes
+ #[inline(always)]
+ pub unsafe fn store8_unaligned(ptr: *mut u16, s: u16x8) {
+ ::core::ptr::copy_nonoverlapping(&s as *const u16x8 as *const u8, ptr as *mut u8, 16);
+ }
+
++/// Safety invariant: ptr must be valid for an aligned-for-u16x8 store of 16 bytes
+ #[allow(dead_code)]
+ #[inline(always)]
+ pub unsafe fn store8_aligned(ptr: *mut u16, s: u16x8) {
+ *(ptr as *mut u16x8) = s;
+ }
+
+ cfg_if! {
+ if #[cfg(all(target_feature = "sse2", target_arch = "x86_64"))] {
+@@ -95,234 +114,241 @@ cfg_if! {
+ pub fn simd_byte_swap(s: u16x8) -> u16x8 {
+ let left = s << 8;
+ let right = s >> 8;
+ left | right
+ }
+
+ #[inline(always)]
+ pub fn to_u16_lanes(s: u8x16) -> u16x8 {
+- s.into_bits()
++ u16x8::from_ne_bytes(s)
+ }
+
+ cfg_if! {
+ if #[cfg(target_feature = "sse2")] {
+
+ // Expose low-level mask instead of higher-level conclusion,
+ // because the non-ASCII case would perform less well otherwise.
++ // Safety-usable invariant: This returned value is whether each high bit is set
+ #[inline(always)]
+ pub fn mask_ascii(s: u8x16) -> i32 {
+ unsafe {
+- _mm_movemask_epi8(s.into_bits())
++ _mm_movemask_epi8(s.into())
+ }
+ }
+
+ } else {
+
+ }
+ }
+
+ cfg_if! {
+ if #[cfg(target_feature = "sse2")] {
+ #[inline(always)]
+ pub fn simd_is_ascii(s: u8x16) -> bool {
+ unsafe {
+- _mm_movemask_epi8(s.into_bits()) == 0
++ // Safety: We have cfg()d the correct platform
++ _mm_movemask_epi8(s.into()) == 0
+ }
+ }
+ } else if #[cfg(target_arch = "aarch64")]{
+ #[inline(always)]
+ pub fn simd_is_ascii(s: u8x16) -> bool {
+ unsafe {
+- vmaxvq_u8(s.into_bits()) < 0x80
++ // Safety: We have cfg()d the correct platform
++ vmaxvq_u8(s.into()) < 0x80
+ }
+ }
+ } else {
+ #[inline(always)]
+ pub fn simd_is_ascii(s: u8x16) -> bool {
+ // This optimizes better on ARM than
+ // the lt formulation.
+ let highest_ascii = u8x16::splat(0x7F);
+- !s.gt(highest_ascii).any()
++ !any_mask8x16(s.simd_gt(highest_ascii))
+ }
+ }
+ }
+
+ cfg_if! {
+ if #[cfg(target_feature = "sse2")] {
+ #[inline(always)]
+ pub fn simd_is_str_latin1(s: u8x16) -> bool {
+ if simd_is_ascii(s) {
+ return true;
+ }
+ let above_str_latin1 = u8x16::splat(0xC4);
+- s.lt(above_str_latin1).all()
++ s.simd_lt(above_str_latin1).all()
+ }
+ } else if #[cfg(target_arch = "aarch64")]{
+ #[inline(always)]
+ pub fn simd_is_str_latin1(s: u8x16) -> bool {
+ unsafe {
+- vmaxvq_u8(s.into_bits()) < 0xC4
++ // Safety: We have cfg()d the correct platform
++ vmaxvq_u8(s.into()) < 0xC4
+ }
+ }
+ } else {
+ #[inline(always)]
+ pub fn simd_is_str_latin1(s: u8x16) -> bool {
+ let above_str_latin1 = u8x16::splat(0xC4);
+- s.lt(above_str_latin1).all()
++ all_mask8x16(s.simd_lt(above_str_latin1))
+ }
+ }
+ }
+
+ cfg_if! {
+ if #[cfg(target_arch = "aarch64")]{
+ #[inline(always)]
+ pub fn simd_is_basic_latin(s: u16x8) -> bool {
+ unsafe {
+- vmaxvq_u16(s.into_bits()) < 0x80
++ // Safety: We have cfg()d the correct platform
++ vmaxvq_u16(s.into()) < 0x80
+ }
+ }
+
+ #[inline(always)]
+ pub fn simd_is_latin1(s: u16x8) -> bool {
+ unsafe {
+- vmaxvq_u16(s.into_bits()) < 0x100
++ // Safety: We have cfg()d the correct platform
++ vmaxvq_u16(s.into()) < 0x100
+ }
+ }
+ } else {
+ #[inline(always)]
+ pub fn simd_is_basic_latin(s: u16x8) -> bool {
+ let above_ascii = u16x8::splat(0x80);
+- s.lt(above_ascii).all()
++ all_mask16x8(s.simd_lt(above_ascii))
+ }
+
+ #[inline(always)]
+ pub fn simd_is_latin1(s: u16x8) -> bool {
+ // For some reason, on SSE2 this formulation
+ // seems faster in this case while the above
+ // function is better the other way round...
+ let highest_latin1 = u16x8::splat(0xFF);
+- !s.gt(highest_latin1).any()
++ !any_mask16x8(s.simd_gt(highest_latin1))
+ }
+ }
+ }
+
+ #[inline(always)]
+ pub fn contains_surrogates(s: u16x8) -> bool {
+ let mask = u16x8::splat(0xF800);
+ let surrogate_bits = u16x8::splat(0xD800);
+- (s & mask).eq(surrogate_bits).any()
++ any_mask16x8((s & mask).simd_eq(surrogate_bits))
+ }
+
+ cfg_if! {
+ if #[cfg(target_arch = "aarch64")]{
+ macro_rules! aarch64_return_false_if_below_hebrew {
+ ($s:ident) => ({
+ unsafe {
+- if vmaxvq_u16($s.into_bits()) < 0x0590 {
++ // Safety: We have cfg()d the correct platform
++ if vmaxvq_u16($s.into()) < 0x0590 {
+ return false;
+ }
+ }
+ })
+ }
+
+ macro_rules! non_aarch64_return_false_if_all {
+ ($s:ident) => ()
+ }
+ } else {
+ macro_rules! aarch64_return_false_if_below_hebrew {
+ ($s:ident) => ()
+ }
+
+ macro_rules! non_aarch64_return_false_if_all {
+ ($s:ident) => ({
+- if $s.all() {
++ if all_mask16x8($s) {
+ return false;
+ }
+ })
+ }
+ }
+ }
+
+ macro_rules! in_range16x8 {
+ ($s:ident, $start:expr, $end:expr) => {{
+ // SIMD sub is wrapping
+- ($s - u16x8::splat($start)).lt(u16x8::splat($end - $start))
++ ($s - u16x8::splat($start)).simd_lt(u16x8::splat($end - $start))
+ }};
+ }
+
+ #[inline(always)]
+ pub fn is_u16x8_bidi(s: u16x8) -> bool {
+ // We try to first quickly refute the RTLness of the vector. If that
+ // fails, we do the real RTL check, so in that case we end up wasting
+ // the work for the up-front quick checks. Even the quick-check is
+ // two-fold in order to return `false` ASAP if everything is below
+ // Hebrew.
+
+ aarch64_return_false_if_below_hebrew!(s);
+
+- let below_hebrew = s.lt(u16x8::splat(0x0590));
++ let below_hebrew = s.simd_lt(u16x8::splat(0x0590));
+
+ non_aarch64_return_false_if_all!(below_hebrew);
+
+- if (below_hebrew | in_range16x8!(s, 0x0900, 0x200F) | in_range16x8!(s, 0x2068, 0xD802)).all() {
++ if all_mask16x8(
++ below_hebrew | in_range16x8!(s, 0x0900, 0x200F) | in_range16x8!(s, 0x2068, 0xD802),
++ ) {
+ return false;
+ }
+
+ // Quick refutation failed. Let's do the full check.
+
+- (in_range16x8!(s, 0x0590, 0x0900)
+- | in_range16x8!(s, 0xFB1D, 0xFE00)
+- | in_range16x8!(s, 0xFE70, 0xFEFF)
+- | in_range16x8!(s, 0xD802, 0xD804)
+- | in_range16x8!(s, 0xD83A, 0xD83C)
+- | s.eq(u16x8::splat(0x200F))
+- | s.eq(u16x8::splat(0x202B))
+- | s.eq(u16x8::splat(0x202E))
+- | s.eq(u16x8::splat(0x2067)))
+- .any()
++ any_mask16x8(
++ (in_range16x8!(s, 0x0590, 0x0900)
++ | in_range16x8!(s, 0xFB1D, 0xFE00)
++ | in_range16x8!(s, 0xFE70, 0xFEFF)
++ | in_range16x8!(s, 0xD802, 0xD804)
++ | in_range16x8!(s, 0xD83A, 0xD83C)
++ | s.simd_eq(u16x8::splat(0x200F))
++ | s.simd_eq(u16x8::splat(0x202B))
++ | s.simd_eq(u16x8::splat(0x202E))
++ | s.simd_eq(u16x8::splat(0x2067))),
++ )
+ }
+
+ #[inline(always)]
+ pub fn simd_unpack(s: u8x16) -> (u16x8, u16x8) {
+- unsafe {
+- let first: u8x16 = shuffle!(
+- s,
+- u8x16::splat(0),
+- [0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23]
+- );
+- let second: u8x16 = shuffle!(
+- s,
+- u8x16::splat(0),
+- [8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31]
+- );
+- (first.into_bits(), second.into_bits())
+- }
++ let first: u8x16 = simd_swizzle!(
++ s,
++ u8x16::splat(0),
++ [0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23]
++ );
++ let second: u8x16 = simd_swizzle!(
++ s,
++ u8x16::splat(0),
++ [8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31]
++ );
++ (u16x8::from_ne_bytes(first), u16x8::from_ne_bytes(second))
+ }
+
+ cfg_if! {
+ if #[cfg(target_feature = "sse2")] {
+ #[inline(always)]
+ pub fn simd_pack(a: u16x8, b: u16x8) -> u8x16 {
+ unsafe {
+- _mm_packus_epi16(a.into_bits(), b.into_bits()).into_bits()
++ // Safety: We have cfg()d the correct platform
++ _mm_packus_epi16(a.into(), b.into()).into()
+ }
+ }
+ } else {
+ #[inline(always)]
+ pub fn simd_pack(a: u16x8, b: u16x8) -> u8x16 {
+- unsafe {
+- let first: u8x16 = a.into_bits();
+- let second: u8x16 = b.into_bits();
+- shuffle!(
+- first,
+- second,
+- [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]
+- )
+- }
++ let first: u8x16 = a.to_ne_bytes();
++ let second: u8x16 = b.to_ne_bytes();
++ simd_swizzle!(
++ first,
++ second,
++ [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]
++ )
+ }
+ }
+ }
+
+ #[cfg(test)]
+ mod tests {
+ use super::*;
+ use alloc::vec::Vec;
+diff --git a/third_party/rust/encoding_rs/src/single_byte.rs b/third_party/rust/encoding_rs/src/single_byte.rs
+--- third_party/rust/encoding_rs/src/single_byte.rs
++++ third_party/rust/encoding_rs/src/single_byte.rs
+@@ -48,16 +48,19 @@ impl SingleByteDecoder {
+ CopyAsciiResult::GoOn((mut non_ascii, mut handle)) => 'middle: loop {
+ // Start non-boilerplate
+ //
+ // Since the non-ASCIIness of `non_ascii` is hidden from
+ // the optimizer, it can't figure out that it's OK to
+ // statically omit the bound check when accessing
+ // `[u16; 128]` with an index
+ // `non_ascii as usize - 0x80usize`.
++ //
++ // Safety: `non_ascii` is a u8 byte >=0x80, from the invariants
++ // on Utf8Destination::copy_ascii_from_check_space_bmp()
+ let mapped =
+ unsafe { *(self.table.get_unchecked(non_ascii as usize - 0x80usize)) };
+ // let mapped = self.table[non_ascii as usize - 0x80usize];
+ if mapped == 0u16 {
+ return (
+ DecoderResult::Malformed(1, 0),
+ source.consumed(),
+ handle.written(),
+@@ -146,82 +149,103 @@ impl SingleByteDecoder {
+ dst: &mut [u16],
+ _last: bool,
+ ) -> (DecoderResult, usize, usize) {
+ let (pending, length) = if dst.len() < src.len() {
+ (DecoderResult::OutputFull, dst.len())
+ } else {
+ (DecoderResult::InputEmpty, src.len())
+ };
++ // Safety invariant: converted <= length. Quite often we have `converted < length`
++ // which will be separately marked.
+ let mut converted = 0usize;
+ 'outermost: loop {
+ match unsafe {
++ // Safety: length is the minimum length, `src/dst + x` will always be valid for reads/writes of `len - x`
+ ascii_to_basic_latin(
+ src.as_ptr().add(converted),
+ dst.as_mut_ptr().add(converted),
+ length - converted,
+ )
+ } {
+ None => {
+ return (pending, length, length);
+ }
+ Some((mut non_ascii, consumed)) => {
++ // Safety invariant: `converted <= length` upheld, since this can only consume
++ // up to `length - converted` bytes.
++ //
++ // Furthermore, in this context,
++ // we can assume `converted < length` since this branch is only ever hit when
++ // ascii_to_basic_latin fails to consume the entire slice
+ converted += consumed;
+ 'middle: loop {
+ // `converted` doesn't count the reading of `non_ascii` yet.
+ // Since the non-ASCIIness of `non_ascii` is hidden from
+ // the optimizer, it can't figure out that it's OK to
+ // statically omit the bound check when accessing
+ // `[u16; 128]` with an index
+ // `non_ascii as usize - 0x80usize`.
++ //
++ // Safety: We can rely on `non_ascii` being between `0x80` and `0xFF` due to
++ // the invariants of `ascii_to_basic_latin()`, and our table has enough space for that.
+ let mapped =
+ unsafe { *(self.table.get_unchecked(non_ascii as usize - 0x80usize)) };
+ // let mapped = self.table[non_ascii as usize - 0x80usize];
+ if mapped == 0u16 {
+ return (
+ DecoderResult::Malformed(1, 0),
+ converted + 1, // +1 `for non_ascii`
+ converted,
+ );
+ }
+ unsafe {
+- // The bound check has already been performed
++ // Safety: As mentioned above, `converted < length`
+ *(dst.get_unchecked_mut(converted)) = mapped;
+ }
++ // Safety: `converted <= length` upheld, since `converted < length` before this
+ converted += 1;
+ // Next, handle ASCII punctuation and non-ASCII without
+ // going back to ASCII acceleration. Non-ASCII scripts
+ // use ASCII punctuation, so this avoid going to
+ // acceleration just for punctuation/space and then
+ // failing. This is a significant boost to non-ASCII
+ // scripts.
+ // TODO: Split out Latin converters without this part
+ // this stuff makes Latin script-conversion slower.
+ if converted == length {
+ return (pending, length, length);
+ }
++ // Safety: We are back to `converted < length` because of the == above
++ // and can perform this check.
+ let mut b = unsafe { *(src.get_unchecked(converted)) };
++ // Safety: `converted < length` is upheld for this loop
+ 'innermost: loop {
+ if b > 127 {
+ non_ascii = b;
+ continue 'middle;
+ }
+ // Testing on Haswell says that we should write the
+ // byte unconditionally instead of trying to unread it
+ // to make it part of the next SIMD stride.
+ unsafe {
++ // Safety: `converted < length` is true for this loop
+ *(dst.get_unchecked_mut(converted)) = u16::from(b);
+ }
++ // Safety: We are now at `converted <= length`. We should *not* `continue`
++ // the loop without reverifying
+ converted += 1;
+ if b < 60 {
+ // We've got punctuation
+ if converted == length {
+ return (pending, length, length);
+ }
++ // Safety: we're back to `converted <= length` because of the == above
+ b = unsafe { *(src.get_unchecked(converted)) };
++ // Safety: The loop continues as `converted < length`
+ continue 'innermost;
+ }
+ // We've got markup or ASCII text
+ continue 'outermost;
+ }
+ }
+ }
+ }
+@@ -229,16 +253,18 @@ impl SingleByteDecoder {
+ }
+
+ pub fn latin1_byte_compatible_up_to(&self, buffer: &[u8]) -> usize {
+ let mut bytes = buffer;
+ let mut total = 0;
+ loop {
+ if let Some((non_ascii, offset)) = validate_ascii(bytes) {
+ total += offset;
++ // Safety: We can rely on `non_ascii` being between `0x80` and `0xFF` due to
++ // the invariants of `ascii_to_basic_latin()`, and our table has enough space for that.
+ let mapped = unsafe { *(self.table.get_unchecked(non_ascii as usize - 0x80usize)) };
+ if mapped != u16::from(non_ascii) {
+ return total;
+ }
+ total += 1;
+ bytes = &bytes[offset + 1..];
+ } else {
+ return total;
+@@ -379,64 +405,89 @@ impl SingleByteEncoder {
+ dst: &mut [u8],
+ _last: bool,
+ ) -> (EncoderResult, usize, usize) {
+ let (pending, length) = if dst.len() < src.len() {
+ (EncoderResult::OutputFull, dst.len())
+ } else {
+ (EncoderResult::InputEmpty, src.len())
+ };
++ // Safety invariant: converted <= length. Quite often we have `converted < length`
++ // which will be separately marked.
+ let mut converted = 0usize;
+ 'outermost: loop {
+ match unsafe {
++ // Safety: length is the minimum length, `src/dst + x` will always be valid for reads/writes of `len - x`
+ basic_latin_to_ascii(
+ src.as_ptr().add(converted),
+ dst.as_mut_ptr().add(converted),
+ length - converted,
+ )
+ } {
+ None => {
+ return (pending, length, length);
+ }
+ Some((mut non_ascii, consumed)) => {
++ // Safety invariant: `converted <= length` upheld, since this can only consume
++ // up to `length - converted` bytes.
++ //
++ // Furthermore, in this context,
++ // we can assume `converted < length` since this branch is only ever hit when
++ // ascii_to_basic_latin fails to consume the entire slice
+ converted += consumed;
+ 'middle: loop {
+ // `converted` doesn't count the reading of `non_ascii` yet.
+ match self.encode_u16(non_ascii) {
+ Some(byte) => {
+ unsafe {
++ // Safety: we're allowed this access since `converted < length`
+ *(dst.get_unchecked_mut(converted)) = byte;
+ }
+ converted += 1;
++ // `converted <= length` now
+ }
+ None => {
+ // At this point, we need to know if we
+ // have a surrogate.
+ let high_bits = non_ascii & 0xFC00u16;
+ if high_bits == 0xD800u16 {
+ // high surrogate
+ if converted + 1 == length {
+ // End of buffer. This surrogate is unpaired.
+ return (
+ EncoderResult::Unmappable('\u{FFFD}'),
+ converted + 1, // +1 `for non_ascii`
+ converted,
+ );
+ }
++ // Safety: convered < length from outside the match, and `converted + 1 != length`,
++ // So `converted + 1 < length` as well. We're in bounds
+ let second =
+ u32::from(unsafe { *src.get_unchecked(converted + 1) });
+ if second & 0xFC00u32 != 0xDC00u32 {
+ return (
+ EncoderResult::Unmappable('\u{FFFD}'),
+ converted + 1, // +1 `for non_ascii`
+ converted,
+ );
+ }
+ // The next code unit is a low surrogate.
+ let astral: char = unsafe {
++ // Safety: We can rely on non_ascii being 0xD800-0xDBFF since the high bits are 0xD800
++ // Then, (non_ascii << 10 - 0xD800 << 10) becomes between (0 to 0x3FF) << 10, which is between
++ // 0x400 to 0xffc00. Adding the 0x10000 gives a range of 0x10400 to 0x10fc00. Subtracting the 0xDC00
++ // gives 0x2800 to 0x102000
++ // The second term is between 0xDC00 and 0xDFFF from the check above. This gives a maximum
++ // possible range of (0x10400 + 0xDC00) to (0x102000 + 0xDFFF) which is 0x1E000 to 0x10ffff.
++ // This is in range.
++ //
++ // From a Unicode principles perspective this can also be verified as we have checked that `non_ascii` is a high surrogate
++ // (0xD800..=0xDBFF), and that `second` is a low surrogate (`0xDC00..=0xDFFF`), and we are applying reverse of the UTC16 transformation
++ // algorithm <https://en.wikipedia.org/wiki/UTF-16#Code_points_from_U+010000_to_U+10FFFF>, by applying the high surrogate - 0xD800 to the
++ // high ten bits, and the low surrogate - 0xDc00 to the low ten bits, and then adding 0x10000
+ ::core::char::from_u32_unchecked(
+ (u32::from(non_ascii) << 10) + second
+ - (((0xD800u32 << 10) - 0x1_0000u32) + 0xDC00u32),
+ )
+ };
+ return (
+ EncoderResult::Unmappable(astral),
+ converted + 2, // +2 `for non_ascii` and `second`
+@@ -451,52 +502,63 @@ impl SingleByteEncoder {
+ converted,
+ );
+ }
+ return (
+ EncoderResult::unmappable_from_bmp(non_ascii),
+ converted + 1, // +1 `for non_ascii`
+ converted,
+ );
++ // Safety: This branch diverges, so no need to uphold invariants on `converted`
+ }
+ }
+ // Next, handle ASCII punctuation and non-ASCII without
+ // going back to ASCII acceleration. Non-ASCII scripts
+ // use ASCII punctuation, so this avoid going to
+ // acceleration just for punctuation/space and then
+ // failing. This is a significant boost to non-ASCII
+ // scripts.
+ // TODO: Split out Latin converters without this part
+ // this stuff makes Latin script-conversion slower.
+ if converted == length {
+ return (pending, length, length);
+ }
++ // Safety: we're back to `converted < length` due to the == above and can perform
++ // the unchecked read
+ let mut unit = unsafe { *(src.get_unchecked(converted)) };
+ 'innermost: loop {
++ // Safety: This loop always begins with `converted < length`, see
++ // the invariant outside and the comment on the continue below
+ if unit > 127 {
+ non_ascii = unit;
+ continue 'middle;
+ }
+ // Testing on Haswell says that we should write the
+ // byte unconditionally instead of trying to unread it
+ // to make it part of the next SIMD stride.
+ unsafe {
++ // Safety: Can rely on converted < length
+ *(dst.get_unchecked_mut(converted)) = unit as u8;
+ }
+ converted += 1;
++ // `converted <= length` here
+ if unit < 60 {
+ // We've got punctuation
+ if converted == length {
+ return (pending, length, length);
+ }
++ // Safety: `converted < length` due to the == above. The read is safe.
+ unit = unsafe { *(src.get_unchecked(converted)) };
++ // Safety: This only happens if `converted < length`, maintaining it
+ continue 'innermost;
+ }
+ // We've got markup or ASCII text
+ continue 'outermost;
++ // Safety: All other routes to here diverge so the continue is the only
++ // way to run the innermost loop.
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+diff --git a/third_party/rust/encoding_rs/src/x_user_defined.rs b/third_party/rust/encoding_rs/src/x_user_defined.rs
+--- third_party/rust/encoding_rs/src/x_user_defined.rs
++++ third_party/rust/encoding_rs/src/x_user_defined.rs
+@@ -9,22 +9,23 @@
+
+ use super::*;
+ use crate::handles::*;
+ use crate::variant::*;
+
+ cfg_if! {
+ if #[cfg(feature = "simd-accel")] {
+ use simd_funcs::*;
+- use packed_simd::u16x8;
++ use core::simd::u16x8;
++ use core::simd::cmp::SimdPartialOrd;
+
+ #[inline(always)]
+ fn shift_upper(unpacked: u16x8) -> u16x8 {
+ let highest_ascii = u16x8::splat(0x7F);
+- unpacked + unpacked.gt(highest_ascii).select(u16x8::splat(0xF700), u16x8::splat(0)) }
++ unpacked + unpacked.simd_gt(highest_ascii).select(u16x8::splat(0xF700), u16x8::splat(0)) }
+ } else {
+ }
+ }
+
+ pub struct UserDefinedDecoder;
+
+ impl UserDefinedDecoder {
+ pub fn new() -> VariantDecoder {
+@@ -111,20 +112,25 @@ impl UserDefinedDecoder {
+ } else {
+ (DecoderResult::InputEmpty, src.len())
+ };
+ // Not bothering with alignment
+ let tail_start = length & !0xF;
+ let simd_iterations = length >> 4;
+ let src_ptr = src.as_ptr();
+ let dst_ptr = dst.as_mut_ptr();
++ // Safety: This is `for i in 0..length / 16`
+ for i in 0..simd_iterations {
++ // Safety: This is in bounds: length is the minumum valid length for both src/dst
++ // and i ranges to length/16, so multiplying by 16 will always be `< length` and can do
++ // a 16 byte read
+ let input = unsafe { load16_unaligned(src_ptr.add(i * 16)) };
+ let (first, second) = simd_unpack(input);
+ unsafe {
++ // Safety: same as above, but this is two consecutive 8-byte reads
+ store8_unaligned(dst_ptr.add(i * 16), shift_upper(first));
+ store8_unaligned(dst_ptr.add((i * 16) + 8), shift_upper(second));
+ }
+ }
+ let src_tail = &src[tail_start..length];
+ let dst_tail = &mut dst[tail_start..length];
+ src_tail
+ .iter()
diff --git a/www/flexget/Makefile b/www/flexget/Makefile
index c619ee94e061..32dcad4de840 100644
--- a/www/flexget/Makefile
+++ b/www/flexget/Makefile
@@ -1,7 +1,7 @@
PORTNAME= FlexGet
DISTVERSIONPREFIX= v
DISTVERSION= 3.9.10
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= www
MAINTAINER= jbeich@FreeBSD.org
@@ -32,7 +32,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sqlalchemy20>0:databases/py-sqlalchemy20@${P
${PYTHON_PKGNAMEPREFIX}psutil>=5.8.0:sysutils/py-psutil@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}feedparser>=6.0.2:textproc/py-feedparser@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}rich>=9.0.0:textproc/py-rich@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}rss2gen>0:textproc/py-rss2gen@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pyrss2gen>0:textproc/py-pyrss2gen@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}beautifulsoup>=4.5:www/py-beautifulsoup@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}cherrypy>=3.7.0:www/py-cherrypy@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}flask>=0.7:www/py-flask@${PY_FLAVOR} \
diff --git a/www/forgejo/Makefile b/www/forgejo/Makefile
index 3cfdb6f7b8cd..b9e69c542c3d 100644
--- a/www/forgejo/Makefile
+++ b/www/forgejo/Makefile
@@ -1,7 +1,6 @@
PORTNAME= forgejo
DISTVERSIONPREFIX= v
-DISTVERSION= 1.21.10-0
-PORTREVISION= 1
+DISTVERSION= 7.0.2
CATEGORIES= www
MASTER_SITES= https://codeberg.org/forgejo/forgejo/releases/download/${DISTVERSIONPREFIX}${DISTVERSION}/
DISTNAME= forgejo-src-${DISTVERSION}
@@ -15,12 +14,12 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= git:devel/git
-USES= cpe gmake go:1.21,no_targets
+USES= cpe gmake go:1.22,no_targets
USE_RC_SUBR= forgejo
EXTRACT_AFTER_ARGS= --strip-components 1
-SUB_FILES+= app.ini.sample
-SUB_LIST+= GITUSER=${USERS}
+SUB_FILES= app.ini.sample pkg-message
+SUB_LIST= GITUSER=${USERS}
NO_WRKSUBDIR= yes
@@ -54,10 +53,11 @@ DAEMONARGS= -f
SUB_LIST+= DAEMONARGS="${DAEMONARGS}"
SSP_UNSAFE= true
-# Default LDFLAGS are incompatible with build
-MAKE_ENV= LDFLAGS="${LDFLAGS} ${EXTRA_LDFLAGS}"
+LDFLAGS+= "'-X "code.gitea.io/gitea/modules/setting.CustomPath=${PREFIX}/etc/forgejo"'"
+LDFLAGS+= "'-X "code.gitea.io/gitea/modules/setting.AppWorkPath=${PREFIX}/share/forgejo"'"
MAKE_ARGS= GOPATH=${WRKDIR} \
- TAGS="${GO_TAGS}"
+ TAGS="${GO_TAGS}" \
+ GOFLAGS="-buildvcs=false"
ALL_TARGET= backend
MAKE_JOBS_UNSAFE= yes
diff --git a/www/forgejo/distinfo b/www/forgejo/distinfo
index 35e0c2d393a7..74fb0a430f7e 100644
--- a/www/forgejo/distinfo
+++ b/www/forgejo/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1712360403
-SHA256 (forgejo-src-1.21.10-0.tar.gz) = 0cc21835404e40355cf7125b479efebb1fecf2cc17d018d4d54521d75943caf5
-SIZE (forgejo-src-1.21.10-0.tar.gz) = 58820868
+TIMESTAMP = 1715265831
+SHA256 (forgejo-src-7.0.2.tar.gz) = 39b2079be7671f2248dcc36377ae20be65f20695d7f968ae227c0fc55dacca06
+SIZE (forgejo-src-7.0.2.tar.gz) = 54862292
diff --git a/www/forgejo/files/forgejo.in b/www/forgejo/files/forgejo.in
index ad5aee48f95d..c635f3a9a9b1 100644
--- a/www/forgejo/files/forgejo.in
+++ b/www/forgejo/files/forgejo.in
@@ -17,8 +17,9 @@ load_rc_config $name
: ${forgejo_user:="%%GITUSER%%"}
: ${forgejo_enable:="NO"}
+: ${forgejo_configcheck_enable:="YES"}
: ${forgejo_facility:="daemon"}
-: ${forgejo_priority:="debug"}
+: ${forgejo_priority:="info"}
: ${forgejo_shared:="%%PREFIX%%/share/${name}"}
: ${forgejo_custom:="%%PREFIX%%/etc/${name}"}
@@ -29,6 +30,7 @@ githome="$(eval echo ~${forgejo_user})"
pidfile="/var/run/${name}.pid"
start_cmd="${name}_start"
+start_precmd="${name}_prestart"
forgejo_start() {
for d in /var/db/forgejo /var/log/forgejo; do
@@ -48,4 +50,16 @@ forgejo_start() {
$command
}
+forgejo_prestart() {
+ if checkyesno forgejo_configcheck_enable; then
+ if su -m ${forgejo_user} -c "%%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
+ fi
+ fi
+}
+
run_rc_command "$1"
diff --git a/www/forgejo/files/pkg-message.in b/www/forgejo/files/pkg-message.in
new file mode 100644
index 000000000000..03164efe7264
--- /dev/null
+++ b/www/forgejo/files/pkg-message.in
@@ -0,0 +1,27 @@
+[
+{ 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
+}
+]
diff --git a/www/forgejo/pkg-message b/www/forgejo/pkg-message
deleted file mode 100644
index 5c8f0b5d39b4..000000000000
--- a/www/forgejo/pkg-message
+++ /dev/null
@@ -1,13 +0,0 @@
-[
-{ type: install
- message: <<EOM
-Before starting forgejo you must create the main configuration file.
-
- cp /usr/local/etc/forgejo/conf/app.ini.sample /usr/local/etc/forgejo/conf/app.ini
- ${EDITOR} /usr/local/etc/forgejo/conf/app.ini
-
-You need to replace every occurence of CHANGE_ME in the file with sensitive
-values. Please refer to the official documentation for details.
-EOM
-}
-]
diff --git a/www/galene/Makefile b/www/galene/Makefile
index ba819300fc14..89d968b75d6e 100644
--- a/www/galene/Makefile
+++ b/www/galene/Makefile
@@ -1,5 +1,6 @@
PORTNAME= galene
DISTVERSION= 0.8.2
+PORTREVISION= 1
CATEGORIES= www net-im
MAINTAINER= bapt@FreeBSD.org
diff --git a/www/galene/distinfo b/www/galene/distinfo
index 7a55b34a3e97..897581d291e2 100644
--- a/www/galene/distinfo
+++ b/www/galene/distinfo
@@ -1,61 +1,61 @@
-TIMESTAMP = 1713266811
+TIMESTAMP = 1714062672
SHA256 (jech-galene-0.8.2-galene-0.8.2_GH0.tar.gz) = d97fa47b6f301396d4ef220cd648099e67471c00793872744e41b908bf898731
SIZE (jech-galene-0.8.2-galene-0.8.2_GH0.tar.gz) = 744541
-SHA256 (at-wat-ebml-go-v0.17.0_GH0.tar.gz) = ebdaa605a117ba86e45a405103435d164d40079dff6f0c3f28d08f4e76ad6c0f
-SIZE (at-wat-ebml-go-v0.17.0_GH0.tar.gz) = 69862
+SHA256 (at-wat-ebml-go-v0.17.1_GH0.tar.gz) = f058fcf7f4da9f979531a0ba1f811fc34c8d9d30087ba8d442eef220e726cbe3
+SIZE (at-wat-ebml-go-v0.17.1_GH0.tar.gz) = 69882
SHA256 (davecgh-go-spew-v1.1.1_GH0.tar.gz) = 7d82b9bb7291adbe7498fe946920ab3e7fc9e6cbfc3b2294693fad00bf0dd17e
SIZE (davecgh-go-spew-v1.1.1_GH0.tar.gz) = 42152
SHA256 (go-yaml-yaml-v3.0.1_GH0.tar.gz) = cf05411540d3e6ef8f1fd88434b34f94cedaceb540329031d80e23b74540c4e5
SIZE (go-yaml-yaml-v3.0.1_GH0.tar.gz) = 91173
-SHA256 (golang-jwt-jwt-v4.5.0_GH0.tar.gz) = 00b1cc127cba09b4e4ea9efa5c0f18a36bb55e08b5eec0a222b8e1599a938077
-SIZE (golang-jwt-jwt-v4.5.0_GH0.tar.gz) = 53049
-SHA256 (golang-crypto-v0.15.0_GH0.tar.gz) = 7cdea3e9567cfb711002588942cf4098b443f62ef1d765acc7ac4d75fddc2fd3
-SIZE (golang-crypto-v0.15.0_GH0.tar.gz) = 1801439
-SHA256 (golang-net-v0.18.0_GH0.tar.gz) = 23ce994aa250e1f0c8c905df78d660d62d5bfdf32b9bfd4668c9f8e354f85ea3
-SIZE (golang-net-v0.18.0_GH0.tar.gz) = 1468569
-SHA256 (golang-sys-v0.14.0_GH0.tar.gz) = e1866095878c2ccf02d0eceff29d2563f7af56b771e7b98248a63d6ab6465771
-SIZE (golang-sys-v0.14.0_GH0.tar.gz) = 1441800
-SHA256 (google-uuid-v1.4.0_GH0.tar.gz) = d0a84f8e465446885550a291321bbf296f680242d53cd442dbb16287abcd777c
-SIZE (google-uuid-v1.4.0_GH0.tar.gz) = 17962
+SHA256 (golang-jwt-jwt-v5.2.1_GH0.tar.gz) = 76d1c81a7cd38ed03309f770f60ac3417f16c75b4c53a0c01bb783863783fef0
+SIZE (golang-jwt-jwt-v5.2.1_GH0.tar.gz) = 61340
+SHA256 (golang-crypto-v0.22.0_GH0.tar.gz) = be0f461ea3ce13349996dca48fbb27537fd738aa6498fb38cfbf87a2ce31e082
+SIZE (golang-crypto-v0.22.0_GH0.tar.gz) = 1813353
+SHA256 (golang-net-v0.24.0_GH0.tar.gz) = 6fbc9f6ddc538c67affd1248d68ca85f69e0abe916181b1cd81323093afa96b9
+SIZE (golang-net-v0.24.0_GH0.tar.gz) = 1509016
+SHA256 (golang-sys-v0.19.0_GH0.tar.gz) = da82f3d99abd964483ec5d622ddf620e2492ec0a18c154475f35d938c4240c7b
+SIZE (golang-sys-v0.19.0_GH0.tar.gz) = 1449493
+SHA256 (google-uuid-v1.6.0_GH0.tar.gz) = ee63376b5675376c60e055ed66e5f3651ccc703bd580c022b8ad00cea309252d
+SIZE (google-uuid-v1.6.0_GH0.tar.gz) = 20896
SHA256 (gorilla-websocket-v1.5.0_GH0.tar.gz) = 5d86f9e1c76ff7ceca0747f78b79864fbaec9d440f4fdb03197466e5102a86b0
SIZE (gorilla-websocket-v1.5.0_GH0.tar.gz) = 54155
-SHA256 (jech-cert-aca735647728_GH0.tar.gz) = d2b7c711a7925012643cce6c9ee5cc34e667f54eb478d6163601e4ef46d2232e
-SIZE (jech-cert-aca735647728_GH0.tar.gz) = 3363
+SHA256 (jech-cert-f491cf43a77d_GH0.tar.gz) = a31c5dc063e19e49e27454e9ffd12fd0895840a768aa030ac6c1ac1d451f2e9b
+SIZE (jech-cert-f491cf43a77d_GH0.tar.gz) = 3756
SHA256 (jech-samplebuilder-6cbba09fc1c9_GH0.tar.gz) = 08082afa77f3083c0b15ed09fe27d43c525bc31af3662e13288dd167a609c2ad
SIZE (jech-samplebuilder-6cbba09fc1c9_GH0.tar.gz) = 12428
-SHA256 (pion-datachannel-v1.5.5_GH0.tar.gz) = 88dc92b8b83759af29bf744e1a3d708a462966cfa77d9978575a7d6cd96c4766
-SIZE (pion-datachannel-v1.5.5_GH0.tar.gz) = 22496
-SHA256 (pion-dtls-v2.2.8_GH0.tar.gz) = 5e92db0b6705c85bf705b1f7158fca10b12c278d933825da5fe0cd106b063585
-SIZE (pion-dtls-v2.2.8_GH0.tar.gz) = 148922
-SHA256 (pion-ice-v2.3.11_GH0.tar.gz) = 4d4bc0b54b9db4f4361173b186ffc2b3cb368ce599f87416b2127e0e04d7ba30
-SIZE (pion-ice-v2.3.11_GH0.tar.gz) = 100838
-SHA256 (pion-interceptor-v0.1.25_GH0.tar.gz) = fa2293b83610ac22075fe31e91a439128b1bb74303671573ef21f7456fff5b2c
-SIZE (pion-interceptor-v0.1.25_GH0.tar.gz) = 88492
+SHA256 (pion-datachannel-v1.5.6_GH0.tar.gz) = 545e3018afaa9f9ade1d11e9227bc536125a4617a5134350842c1c9d1f972e53
+SIZE (pion-datachannel-v1.5.6_GH0.tar.gz) = 19370
+SHA256 (pion-dtls-v2.2.10_GH0.tar.gz) = 2fb439251db981b9f2c61da6042acefb4624af28bd2149ee77c4fd78771eb714
+SIZE (pion-dtls-v2.2.10_GH0.tar.gz) = 150977
+SHA256 (pion-ice-v2.3.14_GH0.tar.gz) = 4abb75aa17e4f2612ddec2ad93c77c1d893b2ccc1cc187a8190fe16b04018291
+SIZE (pion-ice-v2.3.14_GH0.tar.gz) = 102138
+SHA256 (pion-interceptor-v0.1.28_GH0.tar.gz) = cac477d1562c472c9b337982e6927023a7748130ebbb879366138920230055ca
+SIZE (pion-interceptor-v0.1.28_GH0.tar.gz) = 94540
SHA256 (pion-logging-v0.2.2_GH0.tar.gz) = 9e06f3dbf6f4fcf0e61e3a6406cac898fe3df86cb906bc9d73c7c4b466f0a9d6
SIZE (pion-logging-v0.2.2_GH0.tar.gz) = 6750
-SHA256 (pion-mdns-v0.0.9_GH0.tar.gz) = 9ae3b050dd2cd78c4cfe6218e4d3d5f624d117ceb8404c429878e85a7d52188c
-SIZE (pion-mdns-v0.0.9_GH0.tar.gz) = 15605
+SHA256 (pion-mdns-v0.0.12_GH0.tar.gz) = d291ea4260996731e09103beb498f6e1b9fd3643af9aa8f39e0458f95d3e1c06
+SIZE (pion-mdns-v0.0.12_GH0.tar.gz) = 17490
SHA256 (pion-randutil-v0.1.0_GH0.tar.gz) = 4b0301915ebbfa77c8621cebf99c6c7d71651762a33ce4fa4e6af8994ecd4993
SIZE (pion-randutil-v0.1.0_GH0.tar.gz) = 7521
-SHA256 (pion-rtcp-v1.2.12_GH0.tar.gz) = f5950db45bb50026c32f3c34ce935f13b124740e7d92bfeb1e1da3798eee127b
-SIZE (pion-rtcp-v1.2.12_GH0.tar.gz) = 60084
-SHA256 (pion-rtp-v1.8.3_GH0.tar.gz) = 3a37d002aed62e3bdf061709be4e711ba162414cba788b8abef6bc5149000de5
-SIZE (pion-rtp-v1.8.3_GH0.tar.gz) = 53025
-SHA256 (pion-sctp-v1.8.9_GH0.tar.gz) = 0f70a396d3b1fbd17b9c270b2f0d66443bbd77b6fda2d1fa4f436733e53e6389
-SIZE (pion-sctp-v1.8.9_GH0.tar.gz) = 87124
-SHA256 (pion-sdp-v3.0.6_GH0.tar.gz) = ceae9d450b92db03c2dd817213fa39f8bf152e172d51129decfd1a4cd77e42dc
-SIZE (pion-sdp-v3.0.6_GH0.tar.gz) = 30415
+SHA256 (pion-rtcp-v1.2.14_GH0.tar.gz) = ab0674ed126edfafc8dcb1c70d269cf04d6498983e5ebe92c9c8ea776234d660
+SIZE (pion-rtcp-v1.2.14_GH0.tar.gz) = 59682
+SHA256 (pion-rtp-v1.8.5_GH0.tar.gz) = d59cb9e7c525c8c3afe92575908e94795443e499577a63145d31a63d74ed10a6
+SIZE (pion-rtp-v1.8.5_GH0.tar.gz) = 57509
+SHA256 (pion-sctp-v1.8.15_GH0.tar.gz) = 77a15e01203763b00bc9a9d978ae4682f88b6bf1e06cdd165fcab90542faf1b5
+SIZE (pion-sctp-v1.8.15_GH0.tar.gz) = 93883
+SHA256 (pion-sdp-v3.0.9_GH0.tar.gz) = d0de98412c90f90379297f00c7b766a8bbf129672d2e896d3bcd780d37f35e60
+SIZE (pion-sdp-v3.0.9_GH0.tar.gz) = 28358
SHA256 (pion-srtp-v2.0.18_GH0.tar.gz) = 74965fdddce4b454d3de78528c761f70696ba30d1e78932c2ab59594a2caf884
SIZE (pion-srtp-v2.0.18_GH0.tar.gz) = 37933
SHA256 (pion-stun-v0.6.1_GH0.tar.gz) = 6abda07e177b9f65412e3b11dae6a35663869ebecd2d6511281850c93d8f9e59
SIZE (pion-stun-v0.6.1_GH0.tar.gz) = 91808
SHA256 (pion-transport-v2.2.4_GH0.tar.gz) = 067589a78036c1f2cd511aa6154a29c4550235fcc365b9040c31c68f805f9781
SIZE (pion-transport-v2.2.4_GH0.tar.gz) = 88277
-SHA256 (pion-turn-v2.1.4_GH0.tar.gz) = 31d0da1bed5132ebbb8e5414fe495aa9bba2ee0c21b1e2f8006d1f7e67e30b49
-SIZE (pion-turn-v2.1.4_GH0.tar.gz) = 131170
-SHA256 (pion-webrtc-v3.2.23_GH0.tar.gz) = 0ca5c3f8ee65687ccbbe801e2ea52f8b4526b8ba7adb333f8bdc2b25a4c3a8e1
-SIZE (pion-webrtc-v3.2.23_GH0.tar.gz) = 375520
+SHA256 (pion-turn-v2.1.5_GH0.tar.gz) = eb0f4033bc55a69657fa8cc30b19ad3746ea4749af270b89aa6afb528d1f96bf
+SIZE (pion-turn-v2.1.5_GH0.tar.gz) = 131411
+SHA256 (pion-webrtc-v3.2.37_GH0.tar.gz) = f1a65c4d20798297472266685e915bd1b08c7969bd9bbcaf322c1fe198724da1
+SIZE (pion-webrtc-v3.2.37_GH0.tar.gz) = 378234
SHA256 (pmezard-go-difflib-v1.0.0_GH0.tar.gz) = 28f3dc1b5c0efd61203ab07233f774740d3bf08da4d8153fb5310db6cea0ebda
SIZE (pmezard-go-difflib-v1.0.0_GH0.tar.gz) = 11398
-SHA256 (stretchr-testify-v1.8.4_GH0.tar.gz) = 0d3e82b04a05d9428a2a2aec8776bd0a07f14f5d1b4fa0a3676526ca8259fd62
-SIZE (stretchr-testify-v1.8.4_GH0.tar.gz) = 104427
+SHA256 (stretchr-testify-v1.9.0_GH0.tar.gz) = ee651d4d4427d55096007190398102383498e6b5cf97ea9e89ad6e72b4115fbb
+SIZE (stretchr-testify-v1.9.0_GH0.tar.gz) = 108663
diff --git a/www/garage/Makefile b/www/garage/Makefile
index 9216e1139014..beb99675f10f 100644
--- a/www/garage/Makefile
+++ b/www/garage/Makefile
@@ -1,6 +1,6 @@
PORTNAME= garage
-DISTVERSION= 0.9.0
-PORTREVISION= 3
+DISTVERSION= 1.0.0
+PORTREVISION= 1
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 fed964f0b5e1..1023221434c9 100644
--- a/www/garage/Makefile.crates
+++ b/www/garage/Makefile.crates
@@ -1,239 +1,263 @@
CARGO_CRATES= addr2line-0.21.0 \
adler-1.0.2 \
- ahash-0.8.3 \
- aho-corasick-1.0.4 \
+ aead-0.5.2 \
+ aes-0.8.4 \
+ aes-gcm-0.10.3 \
+ ahash-0.8.7 \
+ aho-corasick-1.1.2 \
allocator-api2-0.2.16 \
android-tzdata-0.1.1 \
android_system_properties-0.1.5 \
- anstream-0.5.0 \
- anstyle-1.0.2 \
- anstyle-parse-0.2.1 \
- anstyle-query-1.0.0 \
- anstyle-wincon-2.1.0 \
- anyhow-1.0.75 \
+ anstream-0.6.11 \
+ anstyle-1.0.5 \
+ anstyle-parse-0.2.3 \
+ anstyle-query-1.0.2 \
+ anstyle-wincon-3.0.2 \
+ anyhow-1.0.79 \
arc-swap-1.6.0 \
+ argon2-0.5.3 \
arrayvec-0.5.2 \
assert-json-diff-2.0.2 \
- async-compression-0.4.1 \
+ async-compression-0.4.6 \
async-stream-0.3.5 \
async-stream-impl-0.3.5 \
- async-trait-0.1.73 \
+ async-trait-0.1.77 \
autocfg-1.1.0 \
- aws-config-0.55.3 \
- aws-credential-types-0.55.3 \
- aws-endpoint-0.55.3 \
- aws-http-0.55.3 \
- aws-sdk-s3-0.28.0 \
- aws-sdk-sso-0.28.0 \
- aws-sdk-sts-0.28.0 \
- aws-sig-auth-0.55.3 \
- aws-sigv4-0.55.3 \
- aws-smithy-async-0.55.3 \
- aws-smithy-checksums-0.55.3 \
- aws-smithy-client-0.55.3 \
- aws-smithy-eventstream-0.55.3 \
- aws-smithy-http-0.55.3 \
- aws-smithy-http-tower-0.55.3 \
- aws-smithy-json-0.55.3 \
- aws-smithy-query-0.55.3 \
- aws-smithy-types-0.55.3 \
- aws-smithy-xml-0.55.3 \
- aws-types-0.55.3 \
+ aws-config-1.1.4 \
+ aws-credential-types-1.1.4 \
+ aws-runtime-1.1.4 \
+ aws-sdk-config-1.13.0 \
+ aws-sdk-s3-1.14.0 \
+ aws-sdk-sso-1.12.0 \
+ aws-sdk-ssooidc-1.12.0 \
+ aws-sdk-sts-1.12.0 \
+ aws-sigv4-1.1.4 \
+ aws-smithy-async-1.1.4 \
+ aws-smithy-checksums-0.60.4 \
+ aws-smithy-eventstream-0.60.4 \
+ aws-smithy-http-0.60.4 \
+ aws-smithy-json-0.60.4 \
+ aws-smithy-query-0.60.4 \
+ aws-smithy-runtime-1.1.4 \
+ aws-smithy-runtime-api-1.1.4 \
+ aws-smithy-types-1.1.4 \
+ aws-smithy-xml-0.60.4 \
+ aws-types-1.1.4 \
backoff-0.4.0 \
backtrace-0.3.69 \
+ base16ct-0.1.1 \
base64-0.13.1 \
- base64-0.21.3 \
+ base64-0.21.7 \
base64-simd-0.8.0 \
+ base64ct-1.6.0 \
bincode-1.3.3 \
bitflags-1.3.2 \
- bitflags-2.4.0 \
+ bitflags-2.4.2 \
blake2-0.10.6 \
block-buffer-0.10.4 \
- bumpalo-3.13.0 \
- bytemuck-1.13.1 \
- byteorder-1.4.3 \
- bytes-1.4.0 \
- bytes-utils-0.1.3 \
+ bumpalo-3.14.0 \
+ bytemuck-1.14.1 \
+ byteorder-1.5.0 \
+ bytes-1.5.0 \
+ bytes-utils-0.1.4 \
bytesize-1.3.0 \
cc-1.0.83 \
cfg-if-1.0.0 \
cfg_aliases-0.1.1 \
- chrono-0.4.26 \
+ chrono-0.4.33 \
+ cipher-0.4.4 \
clap-2.34.0 \
- clap-4.4.0 \
- clap_builder-4.4.0 \
- clap_derive-4.4.0 \
- clap_lex-0.5.1 \
+ clap-4.4.18 \
+ clap_builder-4.4.18 \
+ clap_derive-4.4.7 \
+ clap_lex-0.6.0 \
colorchoice-1.0.0 \
- core-foundation-0.9.3 \
- core-foundation-sys-0.8.4 \
- cpufeatures-0.2.9 \
+ const-oid-0.9.6 \
+ core-foundation-0.9.4 \
+ core-foundation-sys-0.8.6 \
+ cpufeatures-0.2.12 \
crc32c-0.6.4 \
- crc32fast-1.3.2 \
- crossbeam-channel-0.5.8 \
- crossbeam-epoch-0.9.15 \
- crossbeam-queue-0.3.8 \
- crossbeam-utils-0.8.16 \
+ crc32fast-1.4.0 \
+ crossbeam-channel-0.5.11 \
+ crossbeam-queue-0.3.11 \
+ crossbeam-utils-0.8.19 \
+ crypto-bigint-0.4.9 \
+ crypto-bigint-0.5.5 \
crypto-common-0.1.6 \
- darling-0.14.4 \
- darling_core-0.14.4 \
- darling_macro-0.14.4 \
+ ctr-0.9.2 \
+ darling-0.20.5 \
+ darling_core-0.20.5 \
+ darling_macro-0.20.5 \
dashmap-4.0.2 \
- deranged-0.3.8 \
+ der-0.6.1 \
+ deranged-0.3.11 \
derivative-2.2.0 \
digest-0.10.7 \
- dirs-next-2.0.0 \
- dirs-sys-next-0.1.2 \
- dyn-clone-1.0.13 \
+ dyn-clone-1.0.16 \
+ ecdsa-0.14.8 \
either-1.9.0 \
+ elliptic-curve-0.12.3 \
encoding_rs-0.8.33 \
- env_logger-0.10.0 \
+ env_logger-0.10.2 \
equivalent-1.0.1 \
err-derive-0.3.1 \
- errno-0.3.2 \
- errno-dragonfly-0.1.2 \
- fallible-iterator-0.2.0 \
+ errno-0.3.8 \
+ fallible-iterator-0.3.0 \
fallible-streaming-iterator-0.1.9 \
- fastrand-1.9.0 \
- fastrand-2.0.0 \
+ fastrand-2.0.1 \
+ ff-0.12.1 \
fixedbitset-0.4.2 \
fnv-1.0.7 \
- form_urlencoded-1.2.0 \
- fs2-0.4.3 \
- futures-0.3.28 \
- futures-channel-0.3.28 \
- futures-core-0.3.28 \
- futures-executor-0.3.28 \
- futures-io-0.3.28 \
- futures-macro-0.3.28 \
- futures-sink-0.3.28 \
- futures-task-0.3.28 \
- futures-util-0.3.28 \
- fxhash-0.2.1 \
+ form_urlencoded-1.2.1 \
+ 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-macro-0.3.30 \
+ futures-sink-0.3.30 \
+ futures-task-0.3.30 \
+ futures-util-0.3.30 \
generic-array-0.14.7 \
gethostname-0.4.3 \
- getrandom-0.2.10 \
- gimli-0.28.0 \
- git-version-0.3.5 \
- git-version-macro-0.3.5 \
- h2-0.3.21 \
+ getrandom-0.2.12 \
+ ghash-0.5.1 \
+ gimli-0.28.1 \
+ git-version-0.3.9 \
+ git-version-macro-0.3.9 \
+ group-0.12.1 \
+ h2-0.3.24 \
+ h2-0.4.2 \
hashbrown-0.12.3 \
- hashbrown-0.14.0 \
- hashlink-0.8.3 \
+ hashbrown-0.14.3 \
+ hashlink-0.9.0 \
heck-0.3.3 \
heck-0.4.1 \
heed-0.11.0 \
heed-traits-0.8.0 \
heed-types-0.8.0 \
- hermit-abi-0.3.2 \
+ hermit-abi-0.3.4 \
hex-0.4.3 \
hexdump-0.1.1 \
hmac-0.12.1 \
- http-0.2.9 \
- http-body-0.4.5 \
+ home-0.5.9 \
+ http-0.2.11 \
+ http-1.0.0 \
+ http-body-0.4.6 \
+ http-body-1.0.0 \
+ http-body-util-0.1.0 \
http-range-0.1.5 \
http-range-header-0.3.1 \
httparse-1.8.0 \
httpdate-1.0.3 \
humantime-2.1.0 \
- hyper-0.14.27 \
- hyper-rustls-0.23.2 \
- hyper-rustls-0.24.1 \
+ hyper-0.14.28 \
+ hyper-1.1.0 \
+ hyper-rustls-0.24.2 \
+ hyper-rustls-0.26.0 \
hyper-timeout-0.4.1 \
- hyperlocal-0.8.0 \
- iana-time-zone-0.1.57 \
+ hyper-util-0.1.3 \
+ iana-time-zone-0.1.60 \
iana-time-zone-haiku-0.1.2 \
ident_case-1.0.1 \
- idna-0.4.0 \
+ idna-0.5.0 \
indexmap-1.9.3 \
- indexmap-2.0.0 \
+ indexmap-2.2.2 \
+ inout-0.1.3 \
instant-0.1.12 \
- ipnet-2.8.0 \
+ ipnet-2.9.0 \
ipnetwork-0.20.0 \
- is-terminal-0.4.9 \
+ is-terminal-0.4.12 \
itertools-0.4.19 \
itertools-0.10.5 \
- itoa-1.0.9 \
- jobserver-0.1.26 \
- js-sys-0.3.64 \
- json-patch-0.2.7 \
- jsonpath_lib-0.3.0 \
- k8s-openapi-0.16.0 \
- kube-0.75.0 \
- kube-client-0.75.0 \
- kube-core-0.75.0 \
- kube-derive-0.75.0 \
- kube-runtime-0.75.0 \
+ itertools-0.12.1 \
+ itoa-1.0.10 \
+ jobserver-0.1.27 \
+ js-sys-0.3.67 \
+ json-patch-1.2.0 \
+ jsonpath-rust-0.4.0 \
+ k8s-openapi-0.21.0 \
+ kube-0.88.1 \
+ kube-client-0.88.1 \
+ kube-core-0.88.1 \
+ kube-derive-0.88.1 \
+ kube-runtime-0.88.1 \
kuska-handshake-0.2.0 \
kuska-sodiumoxide-0.2.5-0 \
lazy_static-1.4.0 \
- libc-0.2.147 \
+ libc-0.2.153 \
libsodium-sys-0.2.7 \
- libsqlite3-sys-0.26.0 \
- linked-hash-map-0.5.6 \
- linux-raw-sys-0.4.5 \
+ libsqlite3-sys-0.28.0 \
+ linux-raw-sys-0.4.13 \
lmdb-rkv-sys-0.11.2 \
- lock_api-0.4.10 \
+ lock_api-0.4.11 \
log-0.4.20 \
matchers-0.1.0 \
- md-5-0.10.5 \
- memchr-2.5.0 \
- memoffset-0.9.0 \
+ md-5-0.10.6 \
+ memchr-2.7.1 \
mime-0.3.17 \
minimal-lexical-0.2.1 \
- miniz_oxide-0.7.1 \
- mio-0.8.8 \
- mktemp-0.5.0 \
- multer-2.1.0 \
+ miniz_oxide-0.7.2 \
+ mio-0.8.10 \
+ mktemp-0.5.1 \
+ multer-3.0.0 \
multimap-0.8.3 \
- netapp-0.10.0 \
nix-0.27.1 \
no-std-net-0.6.0 \
nom-7.1.3 \
- nom8-0.2.0 \
nu-ansi-term-0.46.0 \
num-0.2.1 \
num-bigint-0.2.6 \
num-complex-0.2.4 \
+ num-conv-0.1.0 \
num-integer-0.1.45 \
num-iter-0.1.43 \
num-rational-0.2.4 \
- num-traits-0.2.16 \
+ num-traits-0.2.17 \
num_cpus-1.16.0 \
- object-0.32.0 \
- once_cell-1.18.0 \
+ object-0.32.2 \
+ once_cell-1.19.0 \
+ opaque-debug-0.3.1 \
openssl-probe-0.1.5 \
opentelemetry-0.17.0 \
opentelemetry-contrib-0.9.0 \
opentelemetry-otlp-0.10.0 \
opentelemetry-prometheus-0.10.0 \
- ordered-float-2.10.0 \
+ ordered-float-2.10.1 \
outref-0.5.1 \
overload-0.1.1 \
+ p256-0.11.1 \
page_size-0.4.2 \
parking_lot-0.11.2 \
parking_lot-0.12.1 \
parking_lot_core-0.8.6 \
- parking_lot_core-0.9.8 \
+ parking_lot_core-0.9.9 \
parse_duration-2.1.1 \
+ password-hash-0.5.0 \
paste-1.0.14 \
- pem-1.1.1 \
- percent-encoding-2.3.0 \
+ pem-3.0.3 \
+ percent-encoding-2.3.1 \
+ pest-2.7.7 \
+ pest_derive-2.7.7 \
+ pest_generator-2.7.7 \
+ pest_meta-2.7.7 \
petgraph-0.6.4 \
- pin-project-1.1.3 \
- pin-project-internal-1.1.3 \
+ pin-project-1.1.4 \
+ pin-project-internal-1.1.4 \
pin-project-lite-0.2.13 \
pin-utils-0.1.0 \
- pkg-config-0.3.27 \
- pnet_base-0.33.0 \
- pnet_datalink-0.33.0 \
- pnet_sys-0.33.0 \
+ pkcs8-0.9.0 \
+ pkg-config-0.3.29 \
+ pnet_base-0.34.0 \
+ pnet_datalink-0.34.0 \
+ pnet_sys-0.34.0 \
+ polyval-0.6.2 \
+ powerfmt-0.2.0 \
ppv-lite86-0.2.17 \
pretty_env_logger-0.5.0 \
proc-macro-error-1.0.4 \
proc-macro-error-attr-1.0.4 \
- proc-macro-hack-0.5.20+deprecated \
- proc-macro2-1.0.66 \
+ proc-macro2-1.0.78 \
prometheus-0.13.3 \
prost-0.9.0 \
prost-build-0.9.0 \
@@ -241,64 +265,72 @@ CARGO_CRATES= addr2line-0.21.0 \
prost-types-0.9.0 \
protobuf-2.28.0 \
quick-xml-0.26.0 \
- quote-1.0.33 \
+ quote-1.0.35 \
+ r2d2-0.8.10 \
+ r2d2_sqlite-0.24.0 \
rand-0.8.5 \
rand_chacha-0.3.1 \
rand_core-0.6.4 \
redox_syscall-0.2.16 \
- redox_syscall-0.3.5 \
- redox_users-0.4.3 \
- regex-1.9.4 \
+ redox_syscall-0.4.1 \
+ regex-1.10.3 \
regex-automata-0.1.10 \
- regex-automata-0.3.7 \
+ regex-automata-0.4.5 \
+ regex-lite-0.1.5 \
regex-syntax-0.6.29 \
- regex-syntax-0.7.5 \
- reqwest-0.11.20 \
- ring-0.16.20 \
+ regex-syntax-0.8.2 \
+ reqwest-0.11.24 \
+ rfc6979-0.3.1 \
+ ring-0.17.7 \
rmp-0.8.12 \
rmp-serde-1.1.2 \
- roxmltree-0.18.0 \
- rusqlite-0.29.0 \
+ roxmltree-0.19.0 \
+ rusqlite-0.31.0 \
rustc-demangle-0.1.23 \
rustc_version-0.4.0 \
- rustix-0.38.9 \
- rustls-0.20.8 \
- rustls-0.21.6 \
+ rustix-0.38.31 \
+ rustls-0.21.10 \
+ rustls-0.22.2 \
rustls-native-certs-0.6.3 \
- rustls-pemfile-1.0.3 \
- rustls-webpki-0.101.4 \
+ rustls-native-certs-0.7.0 \
+ rustls-pemfile-1.0.4 \
+ rustls-pemfile-2.0.0 \
+ rustls-pki-types-1.2.0 \
+ rustls-webpki-0.101.7 \
+ rustls-webpki-0.102.2 \
rustversion-1.0.14 \
- ryu-1.0.15 \
+ ryu-1.0.16 \
same-file-1.0.6 \
- schannel-0.1.22 \
- schemars-0.8.12 \
- schemars_derive-0.8.12 \
+ schannel-0.1.23 \
+ scheduled-thread-pool-0.2.7 \
+ schemars-0.8.16 \
+ schemars_derive-0.8.16 \
scopeguard-1.2.0 \
- sct-0.7.0 \
+ sct-0.7.1 \
+ sec1-0.3.0 \
secrecy-0.8.0 \
security-framework-2.9.2 \
security-framework-sys-2.9.1 \
- semver-1.0.18 \
- serde-1.0.188 \
+ semver-1.0.21 \
+ serde-1.0.196 \
serde-value-0.7.0 \
- serde_bytes-0.11.12 \
- serde_derive-1.0.188 \
+ serde_bytes-0.11.14 \
+ serde_derive-1.0.196 \
serde_derive_internals-0.26.0 \
- serde_json-1.0.105 \
- serde_spanned-0.6.3 \
+ serde_json-1.0.113 \
+ serde_spanned-0.6.5 \
serde_urlencoded-0.7.1 \
- serde_yaml-0.8.26 \
- sha1-0.10.5 \
- sha2-0.10.7 \
- sharded-slab-0.1.4 \
+ serde_yaml-0.9.31 \
+ sha1-0.10.6 \
+ sha2-0.10.8 \
+ sharded-slab-0.1.7 \
signal-hook-registry-1.4.1 \
+ signature-1.6.4 \
slab-0.4.9 \
- sled-0.34.7 \
- smallvec-1.11.0 \
- socket2-0.4.9 \
- socket2-0.5.3 \
- spin-0.5.2 \
+ smallvec-1.13.1 \
+ socket2-0.5.5 \
spin-0.9.8 \
+ spki-0.6.0 \
static_init-1.0.3 \
static_init_macro-1.0.2 \
strsim-0.10.0 \
@@ -306,95 +338,110 @@ CARGO_CRATES= addr2line-0.21.0 \
structopt-derive-0.4.18 \
subtle-2.5.0 \
syn-1.0.109 \
- syn-2.0.29 \
+ syn-2.0.48 \
+ sync_wrapper-0.1.2 \
synchronoise-1.0.1 \
synstructure-0.12.6 \
- tempfile-3.8.0 \
- termcolor-1.2.0 \
+ syslog-tracing-0.3.0 \
+ system-configuration-0.5.1 \
+ system-configuration-sys-0.5.0 \
+ tempfile-3.9.0 \
+ termcolor-1.4.1 \
textwrap-0.11.0 \
- thiserror-1.0.47 \
- thiserror-impl-1.0.47 \
+ thiserror-1.0.56 \
+ thiserror-impl-1.0.56 \
thread_local-1.1.7 \
- time-0.1.45 \
- time-0.3.28 \
- time-core-0.1.1 \
- time-macros-0.2.14 \
- timeago-0.4.1 \
+ time-0.3.34 \
+ time-core-0.1.2 \
+ time-macros-0.2.17 \
+ timeago-0.4.2 \
tinyvec-1.6.0 \
tinyvec_macros-0.1.1 \
- tokio-1.32.0 \
+ tokio-1.36.0 \
tokio-io-timeout-1.2.0 \
- tokio-macros-2.1.0 \
- tokio-rustls-0.23.4 \
+ tokio-macros-2.2.0 \
tokio-rustls-0.24.1 \
+ tokio-rustls-0.25.0 \
tokio-stream-0.1.14 \
tokio-util-0.6.10 \
- tokio-util-0.7.8 \
- toml-0.6.0 \
- toml_datetime-0.5.1 \
- toml_edit-0.18.1 \
+ tokio-util-0.7.10 \
+ toml-0.8.10 \
+ toml_datetime-0.6.5 \
+ toml_edit-0.22.5 \
tonic-0.6.2 \
tonic-build-0.6.2 \
tower-0.4.13 \
- tower-http-0.3.5 \
+ tower-http-0.4.4 \
tower-layer-0.3.2 \
tower-service-0.3.2 \
- tracing-0.1.37 \
- tracing-attributes-0.1.26 \
- tracing-core-0.1.31 \
+ tracing-0.1.40 \
+ tracing-attributes-0.1.27 \
+ tracing-core-0.1.32 \
tracing-futures-0.2.5 \
- tracing-log-0.1.3 \
- tracing-subscriber-0.3.17 \
- treediff-3.0.2 \
- try-lock-0.2.4 \
- typenum-1.16.0 \
- unicode-bidi-0.3.13 \
- unicode-ident-1.0.11 \
+ tracing-log-0.2.0 \
+ tracing-subscriber-0.3.18 \
+ treediff-4.0.3 \
+ try-lock-0.2.5 \
+ typenum-1.17.0 \
+ ucd-trie-0.1.6 \
+ unicode-bidi-0.3.15 \
+ unicode-ident-1.0.12 \
unicode-normalization-0.1.22 \
unicode-segmentation-1.10.1 \
- unicode-width-0.1.10 \
+ unicode-width-0.1.11 \
unicode-xid-0.2.4 \
- untrusted-0.7.1 \
- url-2.4.0 \
+ universal-hash-0.5.1 \
+ unsafe-libyaml-0.2.10 \
+ untrusted-0.9.0 \
+ url-2.5.0 \
urlencoding-2.1.3 \
utf8parse-0.2.1 \
- uuid-1.2.2 \
+ uuid-1.4.1 \
valuable-0.1.0 \
vcpkg-0.2.15 \
version_check-0.9.4 \
vsimd-0.8.0 \
- walkdir-2.3.3 \
+ walkdir-2.4.0 \
want-0.3.1 \
- wasi-0.10.0+wasi-snapshot-preview1 \
wasi-0.11.0+wasi-snapshot-preview1 \
- wasm-bindgen-0.2.87 \
- wasm-bindgen-backend-0.2.87 \
- wasm-bindgen-futures-0.4.37 \
- wasm-bindgen-macro-0.2.87 \
- wasm-bindgen-macro-support-0.2.87 \
- wasm-bindgen-shared-0.2.87 \
- web-sys-0.3.64 \
- webpki-0.22.0 \
- which-4.4.0 \
+ wasm-bindgen-0.2.90 \
+ wasm-bindgen-backend-0.2.90 \
+ wasm-bindgen-futures-0.4.40 \
+ wasm-bindgen-macro-0.2.90 \
+ wasm-bindgen-macro-support-0.2.90 \
+ wasm-bindgen-shared-0.2.90 \
+ web-sys-0.3.67 \
+ which-4.4.2 \
winapi-0.3.9 \
winapi-i686-pc-windows-gnu-0.4.0 \
- winapi-util-0.1.5 \
+ winapi-util-0.1.6 \
winapi-x86_64-pc-windows-gnu-0.4.0 \
- windows-0.48.0 \
+ windows-core-0.52.0 \
windows-sys-0.48.0 \
+ windows-sys-0.52.0 \
windows-targets-0.48.5 \
+ windows-targets-0.52.0 \
windows_aarch64_gnullvm-0.48.5 \
+ windows_aarch64_gnullvm-0.52.0 \
windows_aarch64_msvc-0.48.5 \
+ windows_aarch64_msvc-0.52.0 \
windows_i686_gnu-0.48.5 \
+ windows_i686_gnu-0.52.0 \
windows_i686_msvc-0.48.5 \
+ windows_i686_msvc-0.52.0 \
windows_x86_64_gnu-0.48.5 \
+ windows_x86_64_gnu-0.52.0 \
windows_x86_64_gnullvm-0.48.5 \
+ windows_x86_64_gnullvm-0.52.0 \
windows_x86_64_msvc-0.48.5 \
+ windows_x86_64_msvc-0.52.0 \
+ winnow-0.6.1 \
winreg-0.50.0 \
- xmlparser-0.13.5 \
- xxhash-rust-0.8.6 \
- yaml-rust-0.4.5 \
- zeroize-1.6.0 \
- zstd-0.12.4 \
- zstd-safe-6.0.6 \
- zstd-sys-2.0.8+zstd.1.5.5
+ xmlparser-0.13.6 \
+ xxhash-rust-0.8.8 \
+ zerocopy-0.7.32 \
+ zerocopy-derive-0.7.32 \
+ zeroize-1.7.0 \
+ zstd-0.13.0 \
+ zstd-safe-7.0.0 \
+ zstd-sys-2.0.9+zstd.1.5.5
diff --git a/www/garage/distinfo b/www/garage/distinfo
index b8522b7f8c1c..d652771df3a1 100644
--- a/www/garage/distinfo
+++ b/www/garage/distinfo
@@ -1,118 +1,130 @@
-TIMESTAMP = 1703162342
-SHA256 (garage-0.9.0.tar.gz) = 1d0d09053dd0b5bba89c73e11c568ea28aaedd92db7af618a4dd514d3a7e6222
-SIZE (garage-0.9.0.tar.gz) = 25350015
+TIMESTAMP = 1715865289
+SHA256 (garage-1.0.0.tar.gz) = 70fa89f732a3de4bb2d1158a2e89c521a993a734eb24b6bd65e79c207c2e8868
+SIZE (garage-1.0.0.tar.gz) = 42459468
SHA256 (rust/crates/addr2line-0.21.0.crate) = 8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb
SIZE (rust/crates/addr2line-0.21.0.crate) = 40807
SHA256 (rust/crates/adler-1.0.2.crate) = f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe
SIZE (rust/crates/adler-1.0.2.crate) = 12778
-SHA256 (rust/crates/ahash-0.8.3.crate) = 2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f
-SIZE (rust/crates/ahash-0.8.3.crate) = 42416
-SHA256 (rust/crates/aho-corasick-1.0.4.crate) = 6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a
-SIZE (rust/crates/aho-corasick-1.0.4.crate) = 171175
+SHA256 (rust/crates/aead-0.5.2.crate) = d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0
+SIZE (rust/crates/aead-0.5.2.crate) = 15509
+SHA256 (rust/crates/aes-0.8.4.crate) = b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0
+SIZE (rust/crates/aes-0.8.4.crate) = 124812
+SHA256 (rust/crates/aes-gcm-0.10.3.crate) = 831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1
+SIZE (rust/crates/aes-gcm-0.10.3.crate) = 148991
+SHA256 (rust/crates/ahash-0.8.7.crate) = 77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01
+SIZE (rust/crates/ahash-0.8.7.crate) = 42894
+SHA256 (rust/crates/aho-corasick-1.1.2.crate) = b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0
+SIZE (rust/crates/aho-corasick-1.1.2.crate) = 183136
SHA256 (rust/crates/allocator-api2-0.2.16.crate) = 0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5
SIZE (rust/crates/allocator-api2-0.2.16.crate) = 59025
SHA256 (rust/crates/android-tzdata-0.1.1.crate) = e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0
SIZE (rust/crates/android-tzdata-0.1.1.crate) = 7674
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.5.0.crate) = b1f58811cfac344940f1a400b6e6231ce35171f614f26439e80f8c1465c5cc0c
-SIZE (rust/crates/anstream-0.5.0.crate) = 19646
-SHA256 (rust/crates/anstyle-1.0.2.crate) = 15c4c2c83f81532e5845a733998b6971faca23490340a418e9b72a3ec9de12ea
-SIZE (rust/crates/anstyle-1.0.2.crate) = 13983
-SHA256 (rust/crates/anstyle-parse-0.2.1.crate) = 938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333
-SIZE (rust/crates/anstyle-parse-0.2.1.crate) = 24802
-SHA256 (rust/crates/anstyle-query-1.0.0.crate) = 5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b
-SIZE (rust/crates/anstyle-query-1.0.0.crate) = 8620
-SHA256 (rust/crates/anstyle-wincon-2.1.0.crate) = 58f54d10c6dfa51283a066ceab3ec1ab78d13fae00aa49243a45e4571fb79dfd
-SIZE (rust/crates/anstyle-wincon-2.1.0.crate) = 11757
-SHA256 (rust/crates/anyhow-1.0.75.crate) = a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6
-SIZE (rust/crates/anyhow-1.0.75.crate) = 43901
+SHA256 (rust/crates/anstream-0.6.11.crate) = 6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5
+SIZE (rust/crates/anstream-0.6.11.crate) = 30239
+SHA256 (rust/crates/anstyle-1.0.5.crate) = 2faccea4cc4ab4a667ce676a30e8ec13922a692c99bb8f5b11f1502c72e04220
+SIZE (rust/crates/anstyle-1.0.5.crate) = 14371
+SHA256 (rust/crates/anstyle-parse-0.2.3.crate) = c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c
+SIZE (rust/crates/anstyle-parse-0.2.3.crate) = 24699
+SHA256 (rust/crates/anstyle-query-1.0.2.crate) = e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648
+SIZE (rust/crates/anstyle-query-1.0.2.crate) = 8739
+SHA256 (rust/crates/anstyle-wincon-3.0.2.crate) = 1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7
+SIZE (rust/crates/anstyle-wincon-3.0.2.crate) = 11272
+SHA256 (rust/crates/anyhow-1.0.79.crate) = 080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca
+SIZE (rust/crates/anyhow-1.0.79.crate) = 44931
SHA256 (rust/crates/arc-swap-1.6.0.crate) = bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6
SIZE (rust/crates/arc-swap-1.6.0.crate) = 67342
+SHA256 (rust/crates/argon2-0.5.3.crate) = 3c3610892ee6e0cbce8ae2700349fcf8f98adb0dbfbee85aec3c9179d29cc072
+SIZE (rust/crates/argon2-0.5.3.crate) = 28795
SHA256 (rust/crates/arrayvec-0.5.2.crate) = 23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b
SIZE (rust/crates/arrayvec-0.5.2.crate) = 27838
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/async-compression-0.4.1.crate) = 62b74f44609f0f91493e3082d3734d98497e094777144380ea4db9f9905dd5b6
-SIZE (rust/crates/async-compression-0.4.1.crate) = 97688
+SHA256 (rust/crates/async-compression-0.4.6.crate) = a116f46a969224200a0a97f29cfd4c50e7534e4b4826bd23ea2c3c533039c82c
+SIZE (rust/crates/async-compression-0.4.6.crate) = 99437
SHA256 (rust/crates/async-stream-0.3.5.crate) = cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51
SIZE (rust/crates/async-stream-0.3.5.crate) = 11916
SHA256 (rust/crates/async-stream-impl-0.3.5.crate) = 16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193
SIZE (rust/crates/async-stream-impl-0.3.5.crate) = 4173
-SHA256 (rust/crates/async-trait-0.1.73.crate) = bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0
-SIZE (rust/crates/async-trait-0.1.73.crate) = 28654
+SHA256 (rust/crates/async-trait-0.1.77.crate) = c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9
+SIZE (rust/crates/async-trait-0.1.77.crate) = 29986
SHA256 (rust/crates/autocfg-1.1.0.crate) = d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa
SIZE (rust/crates/autocfg-1.1.0.crate) = 13272
-SHA256 (rust/crates/aws-config-0.55.3.crate) = bcdcf0d683fe9c23d32cf5b53c9918ea0a500375a9fb20109802552658e576c9
-SIZE (rust/crates/aws-config-0.55.3.crate) = 113897
-SHA256 (rust/crates/aws-credential-types-0.55.3.crate) = 1fcdb2f7acbc076ff5ad05e7864bdb191ca70a6fd07668dc3a1a8bcd051de5ae
-SIZE (rust/crates/aws-credential-types-0.55.3.crate) = 18279
-SHA256 (rust/crates/aws-endpoint-0.55.3.crate) = 8cce1c41a6cfaa726adee9ebb9a56fcd2bbfd8be49fd8a04c5e20fd968330b04
-SIZE (rust/crates/aws-endpoint-0.55.3.crate) = 6942
-SHA256 (rust/crates/aws-http-0.55.3.crate) = aadbc44e7a8f3e71c8b374e03ecd972869eb91dd2bc89ed018954a52ba84bc44
-SIZE (rust/crates/aws-http-0.55.3.crate) = 22987
-SHA256 (rust/crates/aws-sdk-s3-0.28.0.crate) = fba197193cbb4bcb6aad8d99796b2291f36fa89562ded5d4501363055b0de89f
-SIZE (rust/crates/aws-sdk-s3-0.28.0.crate) = 887780
-SHA256 (rust/crates/aws-sdk-sso-0.28.0.crate) = c8b812340d86d4a766b2ca73f740dfd47a97c2dff0c06c8517a16d88241957e4
-SIZE (rust/crates/aws-sdk-sso-0.28.0.crate) = 54460
-SHA256 (rust/crates/aws-sdk-sts-0.28.0.crate) = 265fac131fbfc188e5c3d96652ea90ecc676a934e3174eaaee523c6cec040b3b
-SIZE (rust/crates/aws-sdk-sts-0.28.0.crate) = 113575
-SHA256 (rust/crates/aws-sig-auth-0.55.3.crate) = 3b94acb10af0c879ecd5c7bdf51cda6679a0a4f4643ce630905a77673bfa3c61
-SIZE (rust/crates/aws-sig-auth-0.55.3.crate) = 12433
-SHA256 (rust/crates/aws-sigv4-0.55.3.crate) = 9d2ce6f507be68e968a33485ced670111d1cbad161ddbbab1e313c03d37d8f4c
-SIZE (rust/crates/aws-sigv4-0.55.3.crate) = 28037
-SHA256 (rust/crates/aws-smithy-async-0.55.3.crate) = 13bda3996044c202d75b91afeb11a9afae9db9a721c6a7a427410018e286b880
-SIZE (rust/crates/aws-smithy-async-0.55.3.crate) = 12869
-SHA256 (rust/crates/aws-smithy-checksums-0.55.3.crate) = 07ed8b96d95402f3f6b8b57eb4e0e45ee365f78b1a924faf20ff6e97abf1eae6
-SIZE (rust/crates/aws-smithy-checksums-0.55.3.crate) = 11742
-SHA256 (rust/crates/aws-smithy-client-0.55.3.crate) = 0a86aa6e21e86c4252ad6a0e3e74da9617295d8d6e374d552be7d3059c41cedd
-SIZE (rust/crates/aws-smithy-client-0.55.3.crate) = 49914
-SHA256 (rust/crates/aws-smithy-eventstream-0.55.3.crate) = 460c8da5110835e3d9a717c61f5556b20d03c32a1dec57f8fc559b360f733bb8
-SIZE (rust/crates/aws-smithy-eventstream-0.55.3.crate) = 16753
-SHA256 (rust/crates/aws-smithy-http-0.55.3.crate) = 2b3b693869133551f135e1f2c77cb0b8277d9e3e17feaf2213f735857c4f0d28
-SIZE (rust/crates/aws-smithy-http-0.55.3.crate) = 54480
-SHA256 (rust/crates/aws-smithy-http-tower-0.55.3.crate) = 3ae4f6c5798a247fac98a867698197d9ac22643596dc3777f0c76b91917616b9
-SIZE (rust/crates/aws-smithy-http-tower-0.55.3.crate) = 8848
-SHA256 (rust/crates/aws-smithy-json-0.55.3.crate) = 23f9f42fbfa96d095194a632fbac19f60077748eba536eb0b9fecc28659807f8
-SIZE (rust/crates/aws-smithy-json-0.55.3.crate) = 22924
-SHA256 (rust/crates/aws-smithy-query-0.55.3.crate) = 98819eb0b04020a1c791903533b638534ae6c12e2aceda3e6e6fba015608d51d
-SIZE (rust/crates/aws-smithy-query-0.55.3.crate) = 7301
-SHA256 (rust/crates/aws-smithy-types-0.55.3.crate) = 16a3d0bf4f324f4ef9793b86a1701d9700fbcdbd12a846da45eed104c634c6e8
-SIZE (rust/crates/aws-smithy-types-0.55.3.crate) = 43942
-SHA256 (rust/crates/aws-smithy-xml-0.55.3.crate) = b1b9d12875731bd07e767be7baad95700c3137b56730ec9ddeedb52a5e5ca63b
-SIZE (rust/crates/aws-smithy-xml-0.55.3.crate) = 15634
-SHA256 (rust/crates/aws-types-0.55.3.crate) = 6dd209616cc8d7bfb82f87811a5c655dc97537f592689b18743bddf5dc5c4829
-SIZE (rust/crates/aws-types-0.55.3.crate) = 14357
+SHA256 (rust/crates/aws-config-1.1.4.crate) = 8b30c39ebe61f75d1b3785362b1586b41991873c9ab3e317a9181c246fb71d82
+SIZE (rust/crates/aws-config-1.1.4.crate) = 125748
+SHA256 (rust/crates/aws-credential-types-1.1.4.crate) = 33cc49dcdd31c8b6e79850a179af4c367669150c7ac0135f176c61bec81a70f7
+SIZE (rust/crates/aws-credential-types-1.1.4.crate) = 11694
+SHA256 (rust/crates/aws-runtime-1.1.4.crate) = eb031bff99877c26c28895766f7bb8484a05e24547e370768d6cc9db514662aa
+SIZE (rust/crates/aws-runtime-1.1.4.crate) = 31598
+SHA256 (rust/crates/aws-sdk-config-1.13.0.crate) = 4af4f5b0f64563ada272e009cc95027effb546110ed85d014611420ac0d97858
+SIZE (rust/crates/aws-sdk-config-1.13.0.crate) = 873779
+SHA256 (rust/crates/aws-sdk-s3-1.14.0.crate) = 951f7730f51a2155c711c85c79f337fbc02a577fa99d2a0a8059acfce5392113
+SIZE (rust/crates/aws-sdk-s3-1.14.0.crate) = 1256161
+SHA256 (rust/crates/aws-sdk-sso-1.12.0.crate) = f486420a66caad72635bc2ce0ff6581646e0d32df02aa39dc983bfe794955a5b
+SIZE (rust/crates/aws-sdk-sso-1.12.0.crate) = 68425
+SHA256 (rust/crates/aws-sdk-ssooidc-1.12.0.crate) = 39ddccf01d82fce9b4a15c8ae8608211ee7db8ed13a70b514bbfe41df3d24841
+SIZE (rust/crates/aws-sdk-ssooidc-1.12.0.crate) = 81130
+SHA256 (rust/crates/aws-sdk-sts-1.12.0.crate) = 1a591f8c7e6a621a501b2b5d2e88e1697fcb6274264523a6ad4d5959889a41ce
+SIZE (rust/crates/aws-sdk-sts-1.12.0.crate) = 142845
+SHA256 (rust/crates/aws-sigv4-1.1.4.crate) = c371c6b0ac54d4605eb6f016624fb5c7c2925d315fdf600ac1bf21b19d5f1742
+SIZE (rust/crates/aws-sigv4-1.1.4.crate) = 45798
+SHA256 (rust/crates/aws-smithy-async-1.1.4.crate) = 72ee2d09cce0ef3ae526679b522835d63e75fb427aca5413cd371e490d52dcc6
+SIZE (rust/crates/aws-smithy-async-1.1.4.crate) = 18219
+SHA256 (rust/crates/aws-smithy-checksums-0.60.4.crate) = be2acd1b9c6ae5859999250ed5a62423aedc5cf69045b844432de15fa2f31f2b
+SIZE (rust/crates/aws-smithy-checksums-0.60.4.crate) = 11736
+SHA256 (rust/crates/aws-smithy-eventstream-0.60.4.crate) = e6363078f927f612b970edf9d1903ef5cef9a64d1e8423525ebb1f0a1633c858
+SIZE (rust/crates/aws-smithy-eventstream-0.60.4.crate) = 17166
+SHA256 (rust/crates/aws-smithy-http-0.60.4.crate) = dab56aea3cd9e1101a0a999447fb346afb680ab1406cebc44b32346e25b4117d
+SIZE (rust/crates/aws-smithy-http-0.60.4.crate) = 23646
+SHA256 (rust/crates/aws-smithy-json-0.60.4.crate) = fd3898ca6518f9215f62678870064398f00031912390efd03f1f6ef56d83aa8e
+SIZE (rust/crates/aws-smithy-json-0.60.4.crate) = 23037
+SHA256 (rust/crates/aws-smithy-query-0.60.4.crate) = bda4b1dfc9810e35fba8a620e900522cd1bd4f9578c446e82f49d1ce41d2e9f9
+SIZE (rust/crates/aws-smithy-query-0.60.4.crate) = 7403
+SHA256 (rust/crates/aws-smithy-runtime-1.1.4.crate) = fafdab38f40ad7816e7da5dec279400dd505160780083759f01441af1bbb10ea
+SIZE (rust/crates/aws-smithy-runtime-1.1.4.crate) = 97050
+SHA256 (rust/crates/aws-smithy-runtime-api-1.1.4.crate) = c18276dd28852f34b3bf501f4f3719781f4999a51c7bff1a5c6dc8c4529adc29
+SIZE (rust/crates/aws-smithy-runtime-api-1.1.4.crate) = 60892
+SHA256 (rust/crates/aws-smithy-types-1.1.4.crate) = bb3e134004170d3303718baa2a4eb4ca64ee0a1c0a7041dca31b38be0fb414f3
+SIZE (rust/crates/aws-smithy-types-1.1.4.crate) = 77923
+SHA256 (rust/crates/aws-smithy-xml-0.60.4.crate) = 8604a11b25e9ecaf32f9aa56b9fe253c5e2f606a3477f0071e96d3155a5ed218
+SIZE (rust/crates/aws-smithy-xml-0.60.4.crate) = 15760
+SHA256 (rust/crates/aws-types-1.1.4.crate) = 789bbe008e65636fe1b6dbbb374c40c8960d1232b96af5ff4aec349f9c4accf4
+SIZE (rust/crates/aws-types-1.1.4.crate) = 17610
SHA256 (rust/crates/backoff-0.4.0.crate) = b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1
SIZE (rust/crates/backoff-0.4.0.crate) = 26738
SHA256 (rust/crates/backtrace-0.3.69.crate) = 2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837
SIZE (rust/crates/backtrace-0.3.69.crate) = 77299
+SHA256 (rust/crates/base16ct-0.1.1.crate) = 349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce
+SIZE (rust/crates/base16ct-0.1.1.crate) = 10186
SHA256 (rust/crates/base64-0.13.1.crate) = 9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8
SIZE (rust/crates/base64-0.13.1.crate) = 61002
-SHA256 (rust/crates/base64-0.21.3.crate) = 414dcefbc63d77c526a76b3afcf6fbb9b5e2791c19c3aa2297733208750c6e53
-SIZE (rust/crates/base64-0.21.3.crate) = 76898
+SHA256 (rust/crates/base64-0.21.7.crate) = 9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567
+SIZE (rust/crates/base64-0.21.7.crate) = 82576
SHA256 (rust/crates/base64-simd-0.8.0.crate) = 339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195
SIZE (rust/crates/base64-simd-0.8.0.crate) = 12531
+SHA256 (rust/crates/base64ct-1.6.0.crate) = 8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b
+SIZE (rust/crates/base64ct-1.6.0.crate) = 28870
SHA256 (rust/crates/bincode-1.3.3.crate) = b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad
SIZE (rust/crates/bincode-1.3.3.crate) = 28958
SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
SIZE (rust/crates/bitflags-1.3.2.crate) = 23021
-SHA256 (rust/crates/bitflags-2.4.0.crate) = b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635
-SIZE (rust/crates/bitflags-2.4.0.crate) = 36954
+SHA256 (rust/crates/bitflags-2.4.2.crate) = ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf
+SIZE (rust/crates/bitflags-2.4.2.crate) = 42602
SHA256 (rust/crates/blake2-0.10.6.crate) = 46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe
SIZE (rust/crates/blake2-0.10.6.crate) = 47234
SHA256 (rust/crates/block-buffer-0.10.4.crate) = 3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71
SIZE (rust/crates/block-buffer-0.10.4.crate) = 10538
-SHA256 (rust/crates/bumpalo-3.13.0.crate) = a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1
-SIZE (rust/crates/bumpalo-3.13.0.crate) = 82114
-SHA256 (rust/crates/bytemuck-1.13.1.crate) = 17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea
-SIZE (rust/crates/bytemuck-1.13.1.crate) = 42309
-SHA256 (rust/crates/byteorder-1.4.3.crate) = 14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610
-SIZE (rust/crates/byteorder-1.4.3.crate) = 22512
-SHA256 (rust/crates/bytes-1.4.0.crate) = 89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be
-SIZE (rust/crates/bytes-1.4.0.crate) = 58080
-SHA256 (rust/crates/bytes-utils-0.1.3.crate) = e47d3a8076e283f3acd27400535992edb3ba4b5bb72f8891ad8fbe7932a7d4b9
-SIZE (rust/crates/bytes-utils-0.1.3.crate) = 20252
+SHA256 (rust/crates/bumpalo-3.14.0.crate) = 7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec
+SIZE (rust/crates/bumpalo-3.14.0.crate) = 82400
+SHA256 (rust/crates/bytemuck-1.14.1.crate) = ed2490600f404f2b94c167e31d3ed1d5f3c225a0f3b80230053b3e0b7b962bd9
+SIZE (rust/crates/bytemuck-1.14.1.crate) = 46840
+SHA256 (rust/crates/byteorder-1.5.0.crate) = 1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b
+SIZE (rust/crates/byteorder-1.5.0.crate) = 23288
+SHA256 (rust/crates/bytes-1.5.0.crate) = a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223
+SIZE (rust/crates/bytes-1.5.0.crate) = 58909
+SHA256 (rust/crates/bytes-utils-0.1.4.crate) = 7dafe3a8757b027e2be6e4e5601ed563c55989fcf1546e933c66c8eb3a058d35
+SIZE (rust/crates/bytes-utils-0.1.4.crate) = 20703
SHA256 (rust/crates/bytesize-1.3.0.crate) = a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc
SIZE (rust/crates/bytesize-1.3.0.crate) = 10164
SHA256 (rust/crates/cc-1.0.83.crate) = f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0
@@ -121,130 +133,140 @@ SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582eb
SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
SHA256 (rust/crates/cfg_aliases-0.1.1.crate) = fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e
SIZE (rust/crates/cfg_aliases-0.1.1.crate) = 6009
-SHA256 (rust/crates/chrono-0.4.26.crate) = ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5
-SIZE (rust/crates/chrono-0.4.26.crate) = 191501
+SHA256 (rust/crates/chrono-0.4.33.crate) = 9f13690e35a5e4ace198e7beea2895d29f3a9cc55015fcebe6336bd2010af9eb
+SIZE (rust/crates/chrono-0.4.33.crate) = 221279
+SHA256 (rust/crates/cipher-0.4.4.crate) = 773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad
+SIZE (rust/crates/cipher-0.4.4.crate) = 19073
SHA256 (rust/crates/clap-2.34.0.crate) = a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c
SIZE (rust/crates/clap-2.34.0.crate) = 202210
-SHA256 (rust/crates/clap-4.4.0.crate) = 1d5f1946157a96594eb2d2c10eb7ad9a2b27518cb3000209dec700c35df9197d
-SIZE (rust/crates/clap-4.4.0.crate) = 54523
-SHA256 (rust/crates/clap_builder-4.4.0.crate) = 78116e32a042dd73c2901f0dc30790d20ff3447f3e3472fad359e8c3d282bcd6
-SIZE (rust/crates/clap_builder-4.4.0.crate) = 162489
-SHA256 (rust/crates/clap_derive-4.4.0.crate) = c9fd1a5729c4548118d7d70ff234a44868d00489a4b6597b0b020918a0e91a1a
-SIZE (rust/crates/clap_derive-4.4.0.crate) = 29055
-SHA256 (rust/crates/clap_lex-0.5.1.crate) = cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961
-SIZE (rust/crates/clap_lex-0.5.1.crate) = 11793
+SHA256 (rust/crates/clap-4.4.18.crate) = 1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c
+SIZE (rust/crates/clap-4.4.18.crate) = 55269
+SHA256 (rust/crates/clap_builder-4.4.18.crate) = 4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7
+SIZE (rust/crates/clap_builder-4.4.18.crate) = 163538
+SHA256 (rust/crates/clap_derive-4.4.7.crate) = cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442
+SIZE (rust/crates/clap_derive-4.4.7.crate) = 29046
+SHA256 (rust/crates/clap_lex-0.6.0.crate) = 702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1
+SIZE (rust/crates/clap_lex-0.6.0.crate) = 12272
SHA256 (rust/crates/colorchoice-1.0.0.crate) = acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7
SIZE (rust/crates/colorchoice-1.0.0.crate) = 6857
-SHA256 (rust/crates/core-foundation-0.9.3.crate) = 194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146
-SIZE (rust/crates/core-foundation-0.9.3.crate) = 27059
-SHA256 (rust/crates/core-foundation-sys-0.8.4.crate) = e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa
-SIZE (rust/crates/core-foundation-sys-0.8.4.crate) = 17725
-SHA256 (rust/crates/cpufeatures-0.2.9.crate) = a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1
-SIZE (rust/crates/cpufeatures-0.2.9.crate) = 11895
+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.6.crate) = 06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f
+SIZE (rust/crates/core-foundation-sys-0.8.6.crate) = 37629
+SHA256 (rust/crates/cpufeatures-0.2.12.crate) = 53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504
+SIZE (rust/crates/cpufeatures-0.2.12.crate) = 12837
SHA256 (rust/crates/crc32c-0.6.4.crate) = d8f48d60e5b4d2c53d5c2b1d8a58c849a70ae5e5509b08a48d047e3b65714a74
SIZE (rust/crates/crc32c-0.6.4.crate) = 9661
-SHA256 (rust/crates/crc32fast-1.3.2.crate) = b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d
-SIZE (rust/crates/crc32fast-1.3.2.crate) = 38661
-SHA256 (rust/crates/crossbeam-channel-0.5.8.crate) = a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200
-SIZE (rust/crates/crossbeam-channel-0.5.8.crate) = 90455
-SHA256 (rust/crates/crossbeam-epoch-0.9.15.crate) = ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7
-SIZE (rust/crates/crossbeam-epoch-0.9.15.crate) = 48553
-SHA256 (rust/crates/crossbeam-queue-0.3.8.crate) = d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add
-SIZE (rust/crates/crossbeam-queue-0.3.8.crate) = 16731
-SHA256 (rust/crates/crossbeam-utils-0.8.16.crate) = 5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294
-SIZE (rust/crates/crossbeam-utils-0.8.16.crate) = 42508
+SHA256 (rust/crates/crc32fast-1.4.0.crate) = b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa
+SIZE (rust/crates/crc32fast-1.4.0.crate) = 38665
+SHA256 (rust/crates/crossbeam-channel-0.5.11.crate) = 176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b
+SIZE (rust/crates/crossbeam-channel-0.5.11.crate) = 90434
+SHA256 (rust/crates/crossbeam-queue-0.3.11.crate) = df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35
+SIZE (rust/crates/crossbeam-queue-0.3.11.crate) = 15581
+SHA256 (rust/crates/crossbeam-utils-0.8.19.crate) = 248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345
+SIZE (rust/crates/crossbeam-utils-0.8.19.crate) = 42328
+SHA256 (rust/crates/crypto-bigint-0.4.9.crate) = ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef
+SIZE (rust/crates/crypto-bigint-0.4.9.crate) = 46826
+SHA256 (rust/crates/crypto-bigint-0.5.5.crate) = 0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76
+SIZE (rust/crates/crypto-bigint-0.5.5.crate) = 83384
SHA256 (rust/crates/crypto-common-0.1.6.crate) = 1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3
SIZE (rust/crates/crypto-common-0.1.6.crate) = 8760
-SHA256 (rust/crates/darling-0.14.4.crate) = 7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850
-SIZE (rust/crates/darling-0.14.4.crate) = 25168
-SHA256 (rust/crates/darling_core-0.14.4.crate) = 109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0
-SIZE (rust/crates/darling_core-0.14.4.crate) = 57485
-SHA256 (rust/crates/darling_macro-0.14.4.crate) = a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e
-SIZE (rust/crates/darling_macro-0.14.4.crate) = 1896
+SHA256 (rust/crates/ctr-0.9.2.crate) = 0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835
+SIZE (rust/crates/ctr-0.9.2.crate) = 18344
+SHA256 (rust/crates/darling-0.20.5.crate) = fc5d6b04b3fd0ba9926f945895de7d806260a2d7431ba82e7edaecb043c4c6b8
+SIZE (rust/crates/darling-0.20.5.crate) = 27737
+SHA256 (rust/crates/darling_core-0.20.5.crate) = 04e48a959bcd5c761246f5d090ebc2fbf7b9cd527a492b07a67510c108f1e7e3
+SIZE (rust/crates/darling_core-0.20.5.crate) = 61089
+SHA256 (rust/crates/darling_macro-0.20.5.crate) = 1d1545d67a2149e1d93b7e5c7752dce5a7426eb5d1357ddcfd89336b94444f77
+SIZE (rust/crates/darling_macro-0.20.5.crate) = 1857
SHA256 (rust/crates/dashmap-4.0.2.crate) = e77a43b28d0668df09411cb0bc9a8c2adc40f9a048afe863e05fd43251e8e39c
SIZE (rust/crates/dashmap-4.0.2.crate) = 21066
-SHA256 (rust/crates/deranged-0.3.8.crate) = f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946
-SIZE (rust/crates/deranged-0.3.8.crate) = 15314
+SHA256 (rust/crates/der-0.6.1.crate) = f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de
+SIZE (rust/crates/der-0.6.1.crate) = 74205
+SHA256 (rust/crates/deranged-0.3.11.crate) = b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4
+SIZE (rust/crates/deranged-0.3.11.crate) = 18043
SHA256 (rust/crates/derivative-2.2.0.crate) = fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b
SIZE (rust/crates/derivative-2.2.0.crate) = 48076
SHA256 (rust/crates/digest-0.10.7.crate) = 9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292
SIZE (rust/crates/digest-0.10.7.crate) = 19557
-SHA256 (rust/crates/dirs-next-2.0.0.crate) = b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1
-SIZE (rust/crates/dirs-next-2.0.0.crate) = 11689
-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/dyn-clone-1.0.13.crate) = bbfc4744c1b8f2a09adc0e55242f60b1af195d88596bd8700be74418c056c555
-SIZE (rust/crates/dyn-clone-1.0.13.crate) = 11813
+SHA256 (rust/crates/dyn-clone-1.0.16.crate) = 545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d
+SIZE (rust/crates/dyn-clone-1.0.16.crate) = 11766
+SHA256 (rust/crates/ecdsa-0.14.8.crate) = 413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c
+SIZE (rust/crates/ecdsa-0.14.8.crate) = 24720
SHA256 (rust/crates/either-1.9.0.crate) = a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07
SIZE (rust/crates/either-1.9.0.crate) = 16660
+SHA256 (rust/crates/elliptic-curve-0.12.3.crate) = e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3
+SIZE (rust/crates/elliptic-curve-0.12.3.crate) = 58374
SHA256 (rust/crates/encoding_rs-0.8.33.crate) = 7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1
SIZE (rust/crates/encoding_rs-0.8.33.crate) = 1370071
-SHA256 (rust/crates/env_logger-0.10.0.crate) = 85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0
-SIZE (rust/crates/env_logger-0.10.0.crate) = 36574
+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.1.crate) = 5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5
SIZE (rust/crates/equivalent-1.0.1.crate) = 6615
SHA256 (rust/crates/err-derive-0.3.1.crate) = c34a887c8df3ed90498c1c437ce21f211c8e27672921a8ffa293cb8d6d4caa9e
SIZE (rust/crates/err-derive-0.3.1.crate) = 15063
-SHA256 (rust/crates/errno-0.3.2.crate) = 6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f
-SIZE (rust/crates/errno-0.3.2.crate) = 10424
-SHA256 (rust/crates/errno-dragonfly-0.1.2.crate) = aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf
-SIZE (rust/crates/errno-dragonfly-0.1.2.crate) = 1810
-SHA256 (rust/crates/fallible-iterator-0.2.0.crate) = 4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7
-SIZE (rust/crates/fallible-iterator-0.2.0.crate) = 18509
+SHA256 (rust/crates/errno-0.3.8.crate) = a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245
+SIZE (rust/crates/errno-0.3.8.crate) = 10645
+SHA256 (rust/crates/fallible-iterator-0.3.0.crate) = 2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649
+SIZE (rust/crates/fallible-iterator-0.3.0.crate) = 19639
SHA256 (rust/crates/fallible-streaming-iterator-0.1.9.crate) = 7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a
SIZE (rust/crates/fallible-streaming-iterator-0.1.9.crate) = 9249
-SHA256 (rust/crates/fastrand-1.9.0.crate) = e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be
-SIZE (rust/crates/fastrand-1.9.0.crate) = 11910
-SHA256 (rust/crates/fastrand-2.0.0.crate) = 6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764
-SIZE (rust/crates/fastrand-2.0.0.crate) = 14402
+SHA256 (rust/crates/fastrand-2.0.1.crate) = 25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5
+SIZE (rust/crates/fastrand-2.0.1.crate) = 14664
+SHA256 (rust/crates/ff-0.12.1.crate) = d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160
+SIZE (rust/crates/ff-0.12.1.crate) = 12956
SHA256 (rust/crates/fixedbitset-0.4.2.crate) = 0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80
SIZE (rust/crates/fixedbitset-0.4.2.crate) = 15954
SHA256 (rust/crates/fnv-1.0.7.crate) = 3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1
SIZE (rust/crates/fnv-1.0.7.crate) = 11266
-SHA256 (rust/crates/form_urlencoded-1.2.0.crate) = a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652
-SIZE (rust/crates/form_urlencoded-1.2.0.crate) = 8923
-SHA256 (rust/crates/fs2-0.4.3.crate) = 9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213
-SIZE (rust/crates/fs2-0.4.3.crate) = 13138
-SHA256 (rust/crates/futures-0.3.28.crate) = 23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40
-SIZE (rust/crates/futures-0.3.28.crate) = 53229
-SHA256 (rust/crates/futures-channel-0.3.28.crate) = 955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2
-SIZE (rust/crates/futures-channel-0.3.28.crate) = 32281
-SHA256 (rust/crates/futures-core-0.3.28.crate) = 4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c
-SIZE (rust/crates/futures-core-0.3.28.crate) = 14780
-SHA256 (rust/crates/futures-executor-0.3.28.crate) = ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0
-SIZE (rust/crates/futures-executor-0.3.28.crate) = 17743
-SHA256 (rust/crates/futures-io-0.3.28.crate) = 4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964
-SIZE (rust/crates/futures-io-0.3.28.crate) = 8910
-SHA256 (rust/crates/futures-macro-0.3.28.crate) = 89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72
-SIZE (rust/crates/futures-macro-0.3.28.crate) = 11272
-SHA256 (rust/crates/futures-sink-0.3.28.crate) = f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e
-SIZE (rust/crates/futures-sink-0.3.28.crate) = 7852
-SHA256 (rust/crates/futures-task-0.3.28.crate) = 76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65
-SIZE (rust/crates/futures-task-0.3.28.crate) = 11848
-SHA256 (rust/crates/futures-util-0.3.28.crate) = 26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533
-SIZE (rust/crates/futures-util-0.3.28.crate) = 158510
-SHA256 (rust/crates/fxhash-0.2.1.crate) = c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c
-SIZE (rust/crates/fxhash-0.2.1.crate) = 4102
+SHA256 (rust/crates/form_urlencoded-1.2.1.crate) = e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456
+SIZE (rust/crates/form_urlencoded-1.2.1.crate) = 8969
+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-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/generic-array-0.14.7.crate) = 85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a
SIZE (rust/crates/generic-array-0.14.7.crate) = 15950
SHA256 (rust/crates/gethostname-0.4.3.crate) = 0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818
SIZE (rust/crates/gethostname-0.4.3.crate) = 9336
-SHA256 (rust/crates/getrandom-0.2.10.crate) = be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427
-SIZE (rust/crates/getrandom-0.2.10.crate) = 34955
-SHA256 (rust/crates/gimli-0.28.0.crate) = 6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0
-SIZE (rust/crates/gimli-0.28.0.crate) = 269277
-SHA256 (rust/crates/git-version-0.3.5.crate) = f6b0decc02f4636b9ccad390dcbe77b722a77efedfa393caf8379a51d5c61899
-SIZE (rust/crates/git-version-0.3.5.crate) = 3203
-SHA256 (rust/crates/git-version-macro-0.3.5.crate) = fe69f1cbdb6e28af2bac214e943b99ce8a0a06b447d15d3e61161b0423139f3f
-SIZE (rust/crates/git-version-macro-0.3.5.crate) = 4302
-SHA256 (rust/crates/h2-0.3.21.crate) = 91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833
-SIZE (rust/crates/h2-0.3.21.crate) = 166581
+SHA256 (rust/crates/getrandom-0.2.12.crate) = 190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5
+SIZE (rust/crates/getrandom-0.2.12.crate) = 36163
+SHA256 (rust/crates/ghash-0.5.1.crate) = f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1
+SIZE (rust/crates/ghash-0.5.1.crate) = 9482
+SHA256 (rust/crates/gimli-0.28.1.crate) = 4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253
+SIZE (rust/crates/gimli-0.28.1.crate) = 270497
+SHA256 (rust/crates/git-version-0.3.9.crate) = 1ad568aa3db0fcbc81f2f116137f263d7304f512a1209b35b85150d3ef88ad19
+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/group-0.12.1.crate) = 5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7
+SIZE (rust/crates/group-0.12.1.crate) = 16516
+SHA256 (rust/crates/h2-0.3.24.crate) = bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9
+SIZE (rust/crates/h2-0.3.24.crate) = 167814
+SHA256 (rust/crates/h2-0.4.2.crate) = 31d030e59af851932b72ceebadf4a2b5986dba4c3b99dd2493f8273a0f151943
+SIZE (rust/crates/h2-0.4.2.crate) = 168108
SHA256 (rust/crates/hashbrown-0.12.3.crate) = 8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888
SIZE (rust/crates/hashbrown-0.12.3.crate) = 102968
-SHA256 (rust/crates/hashbrown-0.14.0.crate) = 2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a
-SIZE (rust/crates/hashbrown-0.14.0.crate) = 116103
-SHA256 (rust/crates/hashlink-0.8.3.crate) = 312f66718a2d7789ffef4f4b7b213138ed9f1eb3aa1d0d82fc99f88fb3ffd26f
-SIZE (rust/crates/hashlink-0.8.3.crate) = 26438
+SHA256 (rust/crates/hashbrown-0.14.3.crate) = 290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604
+SIZE (rust/crates/hashbrown-0.14.3.crate) = 141425
+SHA256 (rust/crates/hashlink-0.9.0.crate) = 692eaaf7f7607518dd3cef090f1474b61edc5301d8012f09579920df68b725ee
+SIZE (rust/crates/hashlink-0.9.0.crate) = 26390
SHA256 (rust/crates/heck-0.3.3.crate) = 6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c
SIZE (rust/crates/heck-0.3.3.crate) = 10260
SHA256 (rust/crates/heck-0.4.1.crate) = 95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8
@@ -255,18 +277,26 @@ SHA256 (rust/crates/heed-traits-0.8.0.crate) = a53a94e5b2fd60417e83ffdfe136c39af
SIZE (rust/crates/heed-traits-0.8.0.crate) = 997
SHA256 (rust/crates/heed-types-0.8.0.crate) = 9a6cf0a6952fcedc992602d5cddd1e3fff091fbe87d38636e3ec23a31f32acbd
SIZE (rust/crates/heed-types-0.8.0.crate) = 7043
-SHA256 (rust/crates/hermit-abi-0.3.2.crate) = 443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b
-SIZE (rust/crates/hermit-abi-0.3.2.crate) = 13783
+SHA256 (rust/crates/hermit-abi-0.3.4.crate) = 5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f
+SIZE (rust/crates/hermit-abi-0.3.4.crate) = 14445
SHA256 (rust/crates/hex-0.4.3.crate) = 7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70
SIZE (rust/crates/hex-0.4.3.crate) = 13299
SHA256 (rust/crates/hexdump-0.1.1.crate) = e40283dadb02f3af778878be1d717b17b4e4ab92e1d935ab03a730b0542905f2
SIZE (rust/crates/hexdump-0.1.1.crate) = 7965
SHA256 (rust/crates/hmac-0.12.1.crate) = 6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e
SIZE (rust/crates/hmac-0.12.1.crate) = 42657
-SHA256 (rust/crates/http-0.2.9.crate) = bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482
-SIZE (rust/crates/http-0.2.9.crate) = 100146
-SHA256 (rust/crates/http-body-0.4.5.crate) = d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1
-SIZE (rust/crates/http-body-0.4.5.crate) = 9242
+SHA256 (rust/crates/home-0.5.9.crate) = e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5
+SIZE (rust/crates/home-0.5.9.crate) = 8760
+SHA256 (rust/crates/http-0.2.11.crate) = 8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb
+SIZE (rust/crates/http-0.2.11.crate) = 100478
+SHA256 (rust/crates/http-1.0.0.crate) = b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea
+SIZE (rust/crates/http-1.0.0.crate) = 100981
+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.0.crate) = 1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643
+SIZE (rust/crates/http-body-1.0.0.crate) = 5411
+SHA256 (rust/crates/http-body-util-0.1.0.crate) = 41cb79eb393015dadd30fc252023adb0b2400a0caee0fa2a077e6e21a551e840
+SIZE (rust/crates/http-body-util-0.1.0.crate) = 10368
SHA256 (rust/crates/http-range-0.1.5.crate) = 21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573
SIZE (rust/crates/http-range-0.1.5.crate) = 4871
SHA256 (rust/crates/http-range-header-0.3.1.crate) = add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f
@@ -277,116 +307,114 @@ SHA256 (rust/crates/httpdate-1.0.3.crate) = df3b46402a9d5adb4c86a0cf463f42e19994
SIZE (rust/crates/httpdate-1.0.3.crate) = 10639
SHA256 (rust/crates/humantime-2.1.0.crate) = 9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4
SIZE (rust/crates/humantime-2.1.0.crate) = 16749
-SHA256 (rust/crates/hyper-0.14.27.crate) = ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468
-SIZE (rust/crates/hyper-0.14.27.crate) = 195700
-SHA256 (rust/crates/hyper-rustls-0.23.2.crate) = 1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c
-SIZE (rust/crates/hyper-rustls-0.23.2.crate) = 30993
-SHA256 (rust/crates/hyper-rustls-0.24.1.crate) = 8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97
-SIZE (rust/crates/hyper-rustls-0.24.1.crate) = 30224
+SHA256 (rust/crates/hyper-0.14.28.crate) = bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80
+SIZE (rust/crates/hyper-0.14.28.crate) = 197204
+SHA256 (rust/crates/hyper-1.1.0.crate) = fb5aa53871fc917b1a9ed87b683a5d86db645e23acb32c2e0785a353e522fb75
+SIZE (rust/crates/hyper-1.1.0.crate) = 145893
+SHA256 (rust/crates/hyper-rustls-0.24.2.crate) = ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590
+SIZE (rust/crates/hyper-rustls-0.24.2.crate) = 30195
+SHA256 (rust/crates/hyper-rustls-0.26.0.crate) = a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c
+SIZE (rust/crates/hyper-rustls-0.26.0.crate) = 29538
SHA256 (rust/crates/hyper-timeout-0.4.1.crate) = bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1
SIZE (rust/crates/hyper-timeout-0.4.1.crate) = 13805
-SHA256 (rust/crates/hyperlocal-0.8.0.crate) = 0fafdf7b2b2de7c9784f76e02c0935e65a8117ec3b768644379983ab333ac98c
-SIZE (rust/crates/hyperlocal-0.8.0.crate) = 11626
-SHA256 (rust/crates/iana-time-zone-0.1.57.crate) = 2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613
-SIZE (rust/crates/iana-time-zone-0.1.57.crate) = 19785
+SHA256 (rust/crates/hyper-util-0.1.3.crate) = ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa
+SIZE (rust/crates/hyper-util-0.1.3.crate) = 61647
+SHA256 (rust/crates/iana-time-zone-0.1.60.crate) = e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141
+SIZE (rust/crates/iana-time-zone-0.1.60.crate) = 27074
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/ident_case-1.0.1.crate) = b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39
SIZE (rust/crates/ident_case-1.0.1.crate) = 3492
-SHA256 (rust/crates/idna-0.4.0.crate) = 7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c
-SIZE (rust/crates/idna-0.4.0.crate) = 271429
+SHA256 (rust/crates/idna-0.5.0.crate) = 634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6
+SIZE (rust/crates/idna-0.5.0.crate) = 271940
SHA256 (rust/crates/indexmap-1.9.3.crate) = bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99
SIZE (rust/crates/indexmap-1.9.3.crate) = 54653
-SHA256 (rust/crates/indexmap-2.0.0.crate) = d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d
-SIZE (rust/crates/indexmap-2.0.0.crate) = 64038
+SHA256 (rust/crates/indexmap-2.2.2.crate) = 824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520
+SIZE (rust/crates/indexmap-2.2.2.crate) = 76160
+SHA256 (rust/crates/inout-0.1.3.crate) = a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5
+SIZE (rust/crates/inout-0.1.3.crate) = 10743
SHA256 (rust/crates/instant-0.1.12.crate) = 7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c
SIZE (rust/crates/instant-0.1.12.crate) = 6128
-SHA256 (rust/crates/ipnet-2.8.0.crate) = 28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6
-SIZE (rust/crates/ipnet-2.8.0.crate) = 27474
+SHA256 (rust/crates/ipnet-2.9.0.crate) = 8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3
+SIZE (rust/crates/ipnet-2.9.0.crate) = 27627
SHA256 (rust/crates/ipnetwork-0.20.0.crate) = bf466541e9d546596ee94f9f69590f89473455f88372423e0008fc1a7daf100e
SIZE (rust/crates/ipnetwork-0.20.0.crate) = 16556
-SHA256 (rust/crates/is-terminal-0.4.9.crate) = cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b
-SIZE (rust/crates/is-terminal-0.4.9.crate) = 8109
+SHA256 (rust/crates/is-terminal-0.4.12.crate) = f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b
+SIZE (rust/crates/is-terminal-0.4.12.crate) = 7470
SHA256 (rust/crates/itertools-0.4.19.crate) = c4a9b56eb56058f43dc66e58f40a214b2ccbc9f3df51861b63d51dec7b65bc3f
SIZE (rust/crates/itertools-0.4.19.crate) = 64212
SHA256 (rust/crates/itertools-0.10.5.crate) = b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473
SIZE (rust/crates/itertools-0.10.5.crate) = 115354
-SHA256 (rust/crates/itoa-1.0.9.crate) = af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38
-SIZE (rust/crates/itoa-1.0.9.crate) = 10492
-SHA256 (rust/crates/jobserver-0.1.26.crate) = 936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2
-SIZE (rust/crates/jobserver-0.1.26.crate) = 22645
-SHA256 (rust/crates/js-sys-0.3.64.crate) = c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a
-SIZE (rust/crates/js-sys-0.3.64.crate) = 80313
-SHA256 (rust/crates/json-patch-0.2.7.crate) = eb3fa5a61630976fc4c353c70297f2e93f1930e3ccee574d59d618ccbd5154ce
-SIZE (rust/crates/json-patch-0.2.7.crate) = 18839
-SHA256 (rust/crates/jsonpath_lib-0.3.0.crate) = eaa63191d68230cccb81c5aa23abd53ed64d83337cacbb25a7b8c7979523774f
-SIZE (rust/crates/jsonpath_lib-0.3.0.crate) = 284419
-SHA256 (rust/crates/k8s-openapi-0.16.0.crate) = 6d9455388f4977de4d0934efa9f7d36296295537d774574113a20f6082de03da
-SIZE (rust/crates/k8s-openapi-0.16.0.crate) = 5430865
-SHA256 (rust/crates/kube-0.75.0.crate) = 9bb19108692aeafebb108fd0a1c381c06ac4c03859652599420975165e939b8a
-SIZE (rust/crates/kube-0.75.0.crate) = 10097
-SHA256 (rust/crates/kube-client-0.75.0.crate) = 97e1a80ecd1b1438a2fc004549e155d47250b9e01fbfcf4cfbe9c8b56a085593
-SIZE (rust/crates/kube-client-0.75.0.crate) = 65623
-SHA256 (rust/crates/kube-core-0.75.0.crate) = f4d780f2bb048eeef64a4c6b2582d26a0fe19e30b4d3cc9e081616e1779c5d47
-SIZE (rust/crates/kube-core-0.75.0.crate) = 39208
-SHA256 (rust/crates/kube-derive-0.75.0.crate) = 98459d53b2841237392cd6959956185b2df15c19d32c3b275ed6ca7b7ee1adae
-SIZE (rust/crates/kube-derive-0.75.0.crate) = 13986
-SHA256 (rust/crates/kube-runtime-0.75.0.crate) = 7769af142ee2e46bfa44bd393cf7f40b9d8b80d2e11f6317399551ed17760beb
-SIZE (rust/crates/kube-runtime-0.75.0.crate) = 42773
+SHA256 (rust/crates/itertools-0.12.1.crate) = ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569
+SIZE (rust/crates/itertools-0.12.1.crate) = 137761
+SHA256 (rust/crates/itoa-1.0.10.crate) = b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c
+SIZE (rust/crates/itoa-1.0.10.crate) = 10534
+SHA256 (rust/crates/jobserver-0.1.27.crate) = 8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d
+SIZE (rust/crates/jobserver-0.1.27.crate) = 24774
+SHA256 (rust/crates/js-sys-0.3.67.crate) = 9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1
+SIZE (rust/crates/js-sys-0.3.67.crate) = 80764
+SHA256 (rust/crates/json-patch-1.2.0.crate) = 55ff1e1486799e3f64129f8ccad108b38290df9cd7015cd31bed17239f0789d6
+SIZE (rust/crates/json-patch-1.2.0.crate) = 21265
+SHA256 (rust/crates/jsonpath-rust-0.4.0.crate) = 96acbc6188d3bd83519d053efec756aa4419de62ec47be7f28dec297f7dc9eb0
+SIZE (rust/crates/jsonpath-rust-0.4.0.crate) = 28881
+SHA256 (rust/crates/k8s-openapi-0.21.0.crate) = 301f367a36090b7dfdaac248ee3ed4f14a6a8292e7bec0f1c5e6e2e1f181cd33
+SIZE (rust/crates/k8s-openapi-0.21.0.crate) = 2846668
+SHA256 (rust/crates/kube-0.88.1.crate) = 462fe330a0617b276ec864c2255810adcdf519ecb6844253c54074b2086a97bc
+SIZE (rust/crates/kube-0.88.1.crate) = 11661
+SHA256 (rust/crates/kube-client-0.88.1.crate) = 7fe0d65dd6f3adba29cfb84f19dfe55449c7f6c35425f9d8294bec40313e0b64
+SIZE (rust/crates/kube-client-0.88.1.crate) = 78696
+SHA256 (rust/crates/kube-core-0.88.1.crate) = a6b42844e9172f631b8263ea9ce003b9251da13beb1401580937ad206dd82f4c
+SIZE (rust/crates/kube-core-0.88.1.crate) = 49879
+SHA256 (rust/crates/kube-derive-0.88.1.crate) = f5b5a111ee287bd237b8190b8c39543ea9fd22f79e9c32a36c24e08234bcda22
+SIZE (rust/crates/kube-derive-0.88.1.crate) = 15153
+SHA256 (rust/crates/kube-runtime-0.88.1.crate) = 2bc06275064c81056fbb28ea876b3fb339d970e8132282119359afca0835c0ea
+SIZE (rust/crates/kube-runtime-0.88.1.crate) = 62751
SHA256 (rust/crates/kuska-handshake-0.2.0.crate) = e33da4b69f23c2ece0b3e729d079cebdc2c0206e493e42f510f500ad81c631d5
SIZE (rust/crates/kuska-handshake-0.2.0.crate) = 32285
SHA256 (rust/crates/kuska-sodiumoxide-0.2.5-0.crate) = ae0f8eafdd240b722243787b51fdaf8df6693fb8621d0f7061cdba574214cf88
SIZE (rust/crates/kuska-sodiumoxide-0.2.5-0.crate) = 2119501
SHA256 (rust/crates/lazy_static-1.4.0.crate) = e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646
SIZE (rust/crates/lazy_static-1.4.0.crate) = 10443
-SHA256 (rust/crates/libc-0.2.147.crate) = b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3
-SIZE (rust/crates/libc-0.2.147.crate) = 686772
+SHA256 (rust/crates/libc-0.2.153.crate) = 9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd
+SIZE (rust/crates/libc-0.2.153.crate) = 740614
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.26.0.crate) = afc22eff61b133b115c6e8c74e818c628d6d5e7a502afea6f64dee076dd94326
-SIZE (rust/crates/libsqlite3-sys-0.26.0.crate) = 4840390
-SHA256 (rust/crates/linked-hash-map-0.5.6.crate) = 0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f
-SIZE (rust/crates/linked-hash-map-0.5.6.crate) = 15049
-SHA256 (rust/crates/linux-raw-sys-0.4.5.crate) = 57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503
-SIZE (rust/crates/linux-raw-sys-0.4.5.crate) = 1274380
+SHA256 (rust/crates/libsqlite3-sys-0.28.0.crate) = 0c10584274047cb335c23d3e61bcef8e323adae7c5c8c760540f73610177fc3f
+SIZE (rust/crates/libsqlite3-sys-0.28.0.crate) = 4975624
+SHA256 (rust/crates/linux-raw-sys-0.4.13.crate) = 01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c
+SIZE (rust/crates/linux-raw-sys-0.4.13.crate) = 1493855
SHA256 (rust/crates/lmdb-rkv-sys-0.11.2.crate) = 61b9ce6b3be08acefa3003c57b7565377432a89ec24476bbe72e11d101f852fe
SIZE (rust/crates/lmdb-rkv-sys-0.11.2.crate) = 164681
-SHA256 (rust/crates/lock_api-0.4.10.crate) = c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16
-SIZE (rust/crates/lock_api-0.4.10.crate) = 26713
+SHA256 (rust/crates/lock_api-0.4.11.crate) = 3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45
+SIZE (rust/crates/lock_api-0.4.11.crate) = 27487
SHA256 (rust/crates/log-0.4.20.crate) = b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f
SIZE (rust/crates/log-0.4.20.crate) = 38307
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.5.crate) = 6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca
-SIZE (rust/crates/md-5-0.10.5.crate) = 14573
-SHA256 (rust/crates/memchr-2.5.0.crate) = 2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d
-SIZE (rust/crates/memchr-2.5.0.crate) = 65812
-SHA256 (rust/crates/memoffset-0.9.0.crate) = 5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c
-SIZE (rust/crates/memoffset-0.9.0.crate) = 9033
+SHA256 (rust/crates/md-5-0.10.6.crate) = d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf
+SIZE (rust/crates/md-5-0.10.6.crate) = 16161
+SHA256 (rust/crates/memchr-2.7.1.crate) = 523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149
+SIZE (rust/crates/memchr-2.7.1.crate) = 96307
SHA256 (rust/crates/mime-0.3.17.crate) = 6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a
SIZE (rust/crates/mime-0.3.17.crate) = 15712
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.7.1.crate) = e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7
-SIZE (rust/crates/miniz_oxide-0.7.1.crate) = 55194
-SHA256 (rust/crates/mio-0.8.8.crate) = 927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2
-SIZE (rust/crates/mio-0.8.8.crate) = 94264
-SHA256 (rust/crates/mktemp-0.5.0.crate) = 4bdc1f74dd7bb717d39f784f844e490d935b3aa7e383008006dbbf29c1f7820a
-SIZE (rust/crates/mktemp-0.5.0.crate) = 8752
-SHA256 (rust/crates/multer-2.1.0.crate) = 01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2
-SIZE (rust/crates/multer-2.1.0.crate) = 23976
+SHA256 (rust/crates/miniz_oxide-0.7.2.crate) = 9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7
+SIZE (rust/crates/miniz_oxide-0.7.2.crate) = 55731
+SHA256 (rust/crates/mio-0.8.10.crate) = 8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09
+SIZE (rust/crates/mio-0.8.10.crate) = 102345
+SHA256 (rust/crates/mktemp-0.5.1.crate) = 69fed8fbcd01affec44ac226784c6476a6006d98d13e33bc0ca7977aaf046bd8
+SIZE (rust/crates/mktemp-0.5.1.crate) = 8822
+SHA256 (rust/crates/multer-3.0.0.crate) = a15d522be0a9c3e46fd2632e272d178f56387bdb5c9fbb3a36c649062e9b5219
+SIZE (rust/crates/multer-3.0.0.crate) = 25772
SHA256 (rust/crates/multimap-0.8.3.crate) = e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a
SIZE (rust/crates/multimap-0.8.3.crate) = 13518
-SHA256 (rust/crates/netapp-0.10.0.crate) = 0a00b76cec93e3ae68c9ed5f08e27a1507424987ee23d5ec961ebd4da820a265
-SIZE (rust/crates/netapp-0.10.0.crate) = 43846
SHA256 (rust/crates/nix-0.27.1.crate) = 2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053
SIZE (rust/crates/nix-0.27.1.crate) = 286494
SHA256 (rust/crates/no-std-net-0.6.0.crate) = 43794a0ace135be66a25d3ae77d41b91615fb68ae937f904090203e81f755b65
SIZE (rust/crates/no-std-net-0.6.0.crate) = 30191
SHA256 (rust/crates/nom-7.1.3.crate) = d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a
SIZE (rust/crates/nom-7.1.3.crate) = 117570
-SHA256 (rust/crates/nom8-0.2.0.crate) = ae01545c9c7fc4486ab7debaf2aad7003ac19431791868fb2e8066df97fad2f8
-SIZE (rust/crates/nom8-0.2.0.crate) = 162020
SHA256 (rust/crates/nu-ansi-term-0.46.0.crate) = 77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84
SIZE (rust/crates/nu-ansi-term-0.46.0.crate) = 24311
SHA256 (rust/crates/num-0.2.1.crate) = b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36
@@ -395,20 +423,24 @@ SHA256 (rust/crates/num-bigint-0.2.6.crate) = 090c7f9998ee0ff65aa5b723e4009f7b21
SIZE (rust/crates/num-bigint-0.2.6.crate) = 87275
SHA256 (rust/crates/num-complex-0.2.4.crate) = b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95
SIZE (rust/crates/num-complex-0.2.4.crate) = 24679
+SHA256 (rust/crates/num-conv-0.1.0.crate) = 51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9
+SIZE (rust/crates/num-conv-0.1.0.crate) = 7444
SHA256 (rust/crates/num-integer-0.1.45.crate) = 225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9
SIZE (rust/crates/num-integer-0.1.45.crate) = 22529
SHA256 (rust/crates/num-iter-0.1.43.crate) = 7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252
SIZE (rust/crates/num-iter-0.1.43.crate) = 10655
SHA256 (rust/crates/num-rational-0.2.4.crate) = 5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef
SIZE (rust/crates/num-rational-0.2.4.crate) = 21694
-SHA256 (rust/crates/num-traits-0.2.16.crate) = f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2
-SIZE (rust/crates/num-traits-0.2.16.crate) = 50130
+SHA256 (rust/crates/num-traits-0.2.17.crate) = 39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c
+SIZE (rust/crates/num-traits-0.2.17.crate) = 50190
SHA256 (rust/crates/num_cpus-1.16.0.crate) = 4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43
SIZE (rust/crates/num_cpus-1.16.0.crate) = 15713
-SHA256 (rust/crates/object-0.32.0.crate) = 77ac5bbd07aea88c60a577a1ce218075ffd59208b2d7ca97adf9bfc5aeb21ebe
-SIZE (rust/crates/object-0.32.0.crate) = 275335
-SHA256 (rust/crates/once_cell-1.18.0.crate) = dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d
-SIZE (rust/crates/once_cell-1.18.0.crate) = 32969
+SHA256 (rust/crates/object-0.32.2.crate) = a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441
+SIZE (rust/crates/object-0.32.2.crate) = 286994
+SHA256 (rust/crates/once_cell-1.19.0.crate) = 3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92
+SIZE (rust/crates/once_cell-1.19.0.crate) = 33046
+SHA256 (rust/crates/opaque-debug-0.3.1.crate) = c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381
+SIZE (rust/crates/opaque-debug-0.3.1.crate) = 7066
SHA256 (rust/crates/openssl-probe-0.1.5.crate) = ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf
SIZE (rust/crates/openssl-probe-0.1.5.crate) = 7227
SHA256 (rust/crates/opentelemetry-0.17.0.crate) = 6105e89802af13fdf48c49d7646d3b533a70e536d818aae7e78ba0433d01acb8
@@ -419,12 +451,14 @@ SHA256 (rust/crates/opentelemetry-otlp-0.10.0.crate) = 9d1a6ca9de4c8b00aa7f1a153
SIZE (rust/crates/opentelemetry-otlp-0.10.0.crate) = 86499
SHA256 (rust/crates/opentelemetry-prometheus-0.10.0.crate) = 9328977e479cebe12ce0d3fcecdaea4721d234895a9440c5b5dfd113f0594ac6
SIZE (rust/crates/opentelemetry-prometheus-0.10.0.crate) = 12401
-SHA256 (rust/crates/ordered-float-2.10.0.crate) = 7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87
-SIZE (rust/crates/ordered-float-2.10.0.crate) = 15589
+SHA256 (rust/crates/ordered-float-2.10.1.crate) = 68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c
+SIZE (rust/crates/ordered-float-2.10.1.crate) = 16029
SHA256 (rust/crates/outref-0.5.1.crate) = 4030760ffd992bef45b0ae3f10ce1aba99e33464c90d14dd7c039884963ddc7a
SIZE (rust/crates/outref-0.5.1.crate) = 3957
SHA256 (rust/crates/overload-0.1.1.crate) = b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39
SIZE (rust/crates/overload-0.1.1.crate) = 24439
+SHA256 (rust/crates/p256-0.11.1.crate) = 51f44edd08f51e2ade572f141051021c5af22677e42b7dd28a88155151c33594
+SIZE (rust/crates/p256-0.11.1.crate) = 67282
SHA256 (rust/crates/page_size-0.4.2.crate) = eebde548fbbf1ea81a99b128872779c437752fb99f217c45245e1a61dcd9edcd
SIZE (rust/crates/page_size-0.4.2.crate) = 8386
SHA256 (rust/crates/parking_lot-0.11.2.crate) = 7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99
@@ -433,34 +467,50 @@ SHA256 (rust/crates/parking_lot-0.12.1.crate) = 3742b2c103b9f06bc9fff0a37ff49129
SIZE (rust/crates/parking_lot-0.12.1.crate) = 40967
SHA256 (rust/crates/parking_lot_core-0.8.6.crate) = 60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc
SIZE (rust/crates/parking_lot_core-0.8.6.crate) = 32567
-SHA256 (rust/crates/parking_lot_core-0.9.8.crate) = 93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447
-SIZE (rust/crates/parking_lot_core-0.9.8.crate) = 32383
+SHA256 (rust/crates/parking_lot_core-0.9.9.crate) = 4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e
+SIZE (rust/crates/parking_lot_core-0.9.9.crate) = 32445
SHA256 (rust/crates/parse_duration-2.1.1.crate) = 7037e5e93e0172a5a96874380bf73bc6ecef022e26fa25f2be26864d6b3ba95d
SIZE (rust/crates/parse_duration-2.1.1.crate) = 9451
+SHA256 (rust/crates/password-hash-0.5.0.crate) = 346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166
+SIZE (rust/crates/password-hash-0.5.0.crate) = 26884
SHA256 (rust/crates/paste-1.0.14.crate) = de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c
SIZE (rust/crates/paste-1.0.14.crate) = 18157
-SHA256 (rust/crates/pem-1.1.1.crate) = a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8
-SIZE (rust/crates/pem-1.1.1.crate) = 11352
-SHA256 (rust/crates/percent-encoding-2.3.0.crate) = 9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94
-SIZE (rust/crates/percent-encoding-2.3.0.crate) = 10196
+SHA256 (rust/crates/pem-3.0.3.crate) = 1b8fcc794035347fb64beda2d3b462595dd2753e3f268d89c5aae77e8cf2c310
+SIZE (rust/crates/pem-3.0.3.crate) = 13035
+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.7.crate) = 219c0dcc30b6a27553f9cc242972b67f75b60eb0db71f0b5462f38b058c41546
+SIZE (rust/crates/pest-2.7.7.crate) = 118478
+SHA256 (rust/crates/pest_derive-2.7.7.crate) = 22e1288dbd7786462961e69bfd4df7848c1e37e8b74303dbdab82c3a9cdd2809
+SIZE (rust/crates/pest_derive-2.7.7.crate) = 35839
+SHA256 (rust/crates/pest_generator-2.7.7.crate) = 1381c29a877c6d34b8c176e734f35d7f7f5b3adaefe940cb4d1bb7af94678e2e
+SIZE (rust/crates/pest_generator-2.7.7.crate) = 18184
+SHA256 (rust/crates/pest_meta-2.7.7.crate) = d0934d6907f148c22a3acbda520c7eed243ad7487a30f51f6ce52b58b7077a8a
+SIZE (rust/crates/pest_meta-2.7.7.crate) = 41562
SHA256 (rust/crates/petgraph-0.6.4.crate) = e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9
SIZE (rust/crates/petgraph-0.6.4.crate) = 185895
-SHA256 (rust/crates/pin-project-1.1.3.crate) = fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422
-SIZE (rust/crates/pin-project-1.1.3.crate) = 57740
-SHA256 (rust/crates/pin-project-internal-1.1.3.crate) = 4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405
-SIZE (rust/crates/pin-project-internal-1.1.3.crate) = 27824
+SHA256 (rust/crates/pin-project-1.1.4.crate) = 0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0
+SIZE (rust/crates/pin-project-1.1.4.crate) = 54230
+SHA256 (rust/crates/pin-project-internal-1.1.4.crate) = 266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690
+SIZE (rust/crates/pin-project-internal-1.1.4.crate) = 28249
SHA256 (rust/crates/pin-project-lite-0.2.13.crate) = 8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58
SIZE (rust/crates/pin-project-lite-0.2.13.crate) = 29141
SHA256 (rust/crates/pin-utils-0.1.0.crate) = 8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184
SIZE (rust/crates/pin-utils-0.1.0.crate) = 7580
-SHA256 (rust/crates/pkg-config-0.3.27.crate) = 26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964
-SIZE (rust/crates/pkg-config-0.3.27.crate) = 18838
-SHA256 (rust/crates/pnet_base-0.33.0.crate) = 872e46346144ebf35219ccaa64b1dffacd9c6f188cd7d012bd6977a2a838f42e
-SIZE (rust/crates/pnet_base-0.33.0.crate) = 10228
-SHA256 (rust/crates/pnet_datalink-0.33.0.crate) = c302da22118d2793c312a35fb3da6846cb0fab6c3ad53fd67e37809b06cdafce
-SIZE (rust/crates/pnet_datalink-0.33.0.crate) = 28267
-SHA256 (rust/crates/pnet_sys-0.33.0.crate) = faf7a58b2803d818a374be9278a1fe8f88fce14b936afbe225000cfcd9c73f16
-SIZE (rust/crates/pnet_sys-0.33.0.crate) = 11600
+SHA256 (rust/crates/pkcs8-0.9.0.crate) = 9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba
+SIZE (rust/crates/pkcs8-0.9.0.crate) = 26214
+SHA256 (rust/crates/pkg-config-0.3.29.crate) = 2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb
+SIZE (rust/crates/pkg-config-0.3.29.crate) = 20563
+SHA256 (rust/crates/pnet_base-0.34.0.crate) = fe4cf6fb3ab38b68d01ab2aea03ed3d1132b4868fa4e06285f29f16da01c5f4c
+SIZE (rust/crates/pnet_base-0.34.0.crate) = 10239
+SHA256 (rust/crates/pnet_datalink-0.34.0.crate) = ad5854abf0067ebbd3967f7d45ebc8976ff577ff0c7bd101c4973ae3c70f98fe
+SIZE (rust/crates/pnet_datalink-0.34.0.crate) = 28287
+SHA256 (rust/crates/pnet_sys-0.34.0.crate) = 417c0becd1b573f6d544f73671070b039051e5ad819cc64aa96377b536128d00
+SIZE (rust/crates/pnet_sys-0.34.0.crate) = 11592
+SHA256 (rust/crates/polyval-0.6.2.crate) = 9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25
+SIZE (rust/crates/polyval-0.6.2.crate) = 18425
+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.17.crate) = 5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de
SIZE (rust/crates/ppv-lite86-0.2.17.crate) = 22242
SHA256 (rust/crates/pretty_env_logger-0.5.0.crate) = 865724d4dbe39d9f3dd3b52b88d859d66bcb2d6a0acfd5ea68a65fb66d4bdc1c
@@ -469,10 +519,8 @@ SHA256 (rust/crates/proc-macro-error-1.0.4.crate) = da25490ff9892aab3fcf7c36f08c
SIZE (rust/crates/proc-macro-error-1.0.4.crate) = 25293
SHA256 (rust/crates/proc-macro-error-attr-1.0.4.crate) = a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869
SIZE (rust/crates/proc-macro-error-attr-1.0.4.crate) = 7971
-SHA256 (rust/crates/proc-macro-hack-0.5.20+deprecated.crate) = dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068
-SIZE (rust/crates/proc-macro-hack-0.5.20+deprecated.crate) = 15045
-SHA256 (rust/crates/proc-macro2-1.0.66.crate) = 18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9
-SIZE (rust/crates/proc-macro2-1.0.66.crate) = 43575
+SHA256 (rust/crates/proc-macro2-1.0.78.crate) = e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae
+SIZE (rust/crates/proc-macro2-1.0.78.crate) = 47158
SHA256 (rust/crates/prometheus-0.13.3.crate) = 449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c
SIZE (rust/crates/prometheus-0.13.3.crate) = 82457
SHA256 (rust/crates/prost-0.9.0.crate) = 444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001
@@ -487,8 +535,12 @@ 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/quote-1.0.33.crate) = 5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae
-SIZE (rust/crates/quote-1.0.33.crate) = 28090
+SHA256 (rust/crates/quote-1.0.35.crate) = 291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef
+SIZE (rust/crates/quote-1.0.35.crate) = 28136
+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/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404
SIZE (rust/crates/rand-0.8.5.crate) = 87113
SHA256 (rust/crates/rand_chacha-0.3.1.crate) = e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88
@@ -497,112 +549,124 @@ SHA256 (rust/crates/rand_core-0.6.4.crate) = ec0be4795e2f6a28069bec0b5ff3e2ac9ba
SIZE (rust/crates/rand_core-0.6.4.crate) = 22666
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.3.5.crate) = 567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29
-SIZE (rust/crates/redox_syscall-0.3.5.crate) = 23404
-SHA256 (rust/crates/redox_users-0.4.3.crate) = b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b
-SIZE (rust/crates/redox_users-0.4.3.crate) = 15353
-SHA256 (rust/crates/regex-1.9.4.crate) = 12de2eff854e5fa4b1295edd650e227e9d8fb0c9e90b12e7f36d6a6811791a29
-SIZE (rust/crates/regex-1.9.4.crate) = 253112
+SHA256 (rust/crates/redox_syscall-0.4.1.crate) = 4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa
+SIZE (rust/crates/redox_syscall-0.4.1.crate) = 24858
+SHA256 (rust/crates/regex-1.10.3.crate) = b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15
+SIZE (rust/crates/regex-1.10.3.crate) = 253101
SHA256 (rust/crates/regex-automata-0.1.10.crate) = 6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132
SIZE (rust/crates/regex-automata-0.1.10.crate) = 114533
-SHA256 (rust/crates/regex-automata-0.3.7.crate) = 49530408a136e16e5b486e883fbb6ba058e8e4e8ae6621a77b048b314336e629
-SIZE (rust/crates/regex-automata-0.3.7.crate) = 607421
+SHA256 (rust/crates/regex-automata-0.4.5.crate) = 5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd
+SIZE (rust/crates/regex-automata-0.4.5.crate) = 617406
+SHA256 (rust/crates/regex-lite-0.1.5.crate) = 30b661b2f27137bdbc16f00eda72866a92bb28af1753ffbd56744fb6e2e9cd8e
+SIZE (rust/crates/regex-lite-0.1.5.crate) = 95262
SHA256 (rust/crates/regex-syntax-0.6.29.crate) = f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1
SIZE (rust/crates/regex-syntax-0.6.29.crate) = 299752
-SHA256 (rust/crates/regex-syntax-0.7.5.crate) = dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da
-SIZE (rust/crates/regex-syntax-0.7.5.crate) = 343366
-SHA256 (rust/crates/reqwest-0.11.20.crate) = 3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1
-SIZE (rust/crates/reqwest-0.11.20.crate) = 155122
-SHA256 (rust/crates/ring-0.16.20.crate) = 3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc
-SIZE (rust/crates/ring-0.16.20.crate) = 5082615
+SHA256 (rust/crates/regex-syntax-0.8.2.crate) = c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f
+SIZE (rust/crates/regex-syntax-0.8.2.crate) = 347228
+SHA256 (rust/crates/reqwest-0.11.24.crate) = c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251
+SIZE (rust/crates/reqwest-0.11.24.crate) = 160972
+SHA256 (rust/crates/rfc6979-0.3.1.crate) = 7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb
+SIZE (rust/crates/rfc6979-0.3.1.crate) = 8460
+SHA256 (rust/crates/ring-0.17.7.crate) = 688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74
+SIZE (rust/crates/ring-0.17.7.crate) = 4146482
SHA256 (rust/crates/rmp-0.8.12.crate) = 7f9860a6cc38ed1da53456442089b4dfa35e7cedaa326df63017af88385e6b20
SIZE (rust/crates/rmp-0.8.12.crate) = 28844
SHA256 (rust/crates/rmp-serde-1.1.2.crate) = bffea85eea980d8a74453e5d02a8d93028f3c34725de143085a844ebe953258a
SIZE (rust/crates/rmp-serde-1.1.2.crate) = 30388
-SHA256 (rust/crates/roxmltree-0.18.0.crate) = d8f595a457b6b8c6cda66a48503e92ee8d19342f905948f29c383200ec9eb1d8
-SIZE (rust/crates/roxmltree-0.18.0.crate) = 42463
-SHA256 (rust/crates/rusqlite-0.29.0.crate) = 549b9d036d571d42e6e85d1c1425e2ac83491075078ca9a15be021c56b1641f2
-SIZE (rust/crates/rusqlite-0.29.0.crate) = 137156
+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/rustc-demangle-0.1.23.crate) = d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76
SIZE (rust/crates/rustc-demangle-0.1.23.crate) = 28970
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.38.9.crate) = 9bfe0f2582b4931a45d1fa608f8a8722e8b3c7ac54dd6d5f3b3212791fedef49
-SIZE (rust/crates/rustix-0.38.9.crate) = 340102
-SHA256 (rust/crates/rustls-0.20.8.crate) = fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f
-SIZE (rust/crates/rustls-0.20.8.crate) = 270142
-SHA256 (rust/crates/rustls-0.21.6.crate) = 1d1feddffcfcc0b33f5c6ce9a29e341e4cd59c3f78e7ee45f4a40c038b1d6cbb
-SIZE (rust/crates/rustls-0.21.6.crate) = 282907
+SHA256 (rust/crates/rustix-0.38.31.crate) = 6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949
+SIZE (rust/crates/rustix-0.38.31.crate) = 375443
+SHA256 (rust/crates/rustls-0.21.10.crate) = f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba
+SIZE (rust/crates/rustls-0.21.10.crate) = 284920
+SHA256 (rust/crates/rustls-0.22.2.crate) = e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41
+SIZE (rust/crates/rustls-0.22.2.crate) = 332080
SHA256 (rust/crates/rustls-native-certs-0.6.3.crate) = a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00
SIZE (rust/crates/rustls-native-certs-0.6.3.crate) = 24438
-SHA256 (rust/crates/rustls-pemfile-1.0.3.crate) = 2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2
-SIZE (rust/crates/rustls-pemfile-1.0.3.crate) = 20432
-SHA256 (rust/crates/rustls-webpki-0.101.4.crate) = 7d93931baf2d282fff8d3a532bbfd7653f734643161b87e3e01e59a04439bf0d
-SIZE (rust/crates/rustls-webpki-0.101.4.crate) = 164324
+SHA256 (rust/crates/rustls-native-certs-0.7.0.crate) = 8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792
+SIZE (rust/crates/rustls-native-certs-0.7.0.crate) = 25071
+SHA256 (rust/crates/rustls-pemfile-1.0.4.crate) = 1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c
+SIZE (rust/crates/rustls-pemfile-1.0.4.crate) = 22092
+SHA256 (rust/crates/rustls-pemfile-2.0.0.crate) = 35e4980fa29e4c4b212ffb3db068a564cbf560e51d3944b7c88bd8bf5bec64f4
+SIZE (rust/crates/rustls-pemfile-2.0.0.crate) = 23799
+SHA256 (rust/crates/rustls-pki-types-1.2.0.crate) = 0a716eb65e3158e90e17cd93d855216e27bde02745ab842f2cab4a39dba1bacf
+SIZE (rust/crates/rustls-pki-types-1.2.0.crate) = 21303
+SHA256 (rust/crates/rustls-webpki-0.101.7.crate) = 8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765
+SIZE (rust/crates/rustls-webpki-0.101.7.crate) = 168808
+SHA256 (rust/crates/rustls-webpki-0.102.2.crate) = faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610
+SIZE (rust/crates/rustls-webpki-0.102.2.crate) = 196881
SHA256 (rust/crates/rustversion-1.0.14.crate) = 7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4
SIZE (rust/crates/rustversion-1.0.14.crate) = 17261
-SHA256 (rust/crates/ryu-1.0.15.crate) = 1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741
-SIZE (rust/crates/ryu-1.0.15.crate) = 46906
+SHA256 (rust/crates/ryu-1.0.16.crate) = f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c
+SIZE (rust/crates/ryu-1.0.16.crate) = 47351
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.22.crate) = 0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88
-SIZE (rust/crates/schannel-0.1.22.crate) = 41642
-SHA256 (rust/crates/schemars-0.8.12.crate) = 02c613288622e5f0c3fdc5dbd4db1c5fbe752746b1d1a56a0630b78fd00de44f
-SIZE (rust/crates/schemars-0.8.12.crate) = 54931
-SHA256 (rust/crates/schemars_derive-0.8.12.crate) = 109da1e6b197438deb6db99952990c7f959572794b80ff93707d55a232545e7c
-SIZE (rust/crates/schemars_derive-0.8.12.crate) = 18331
+SHA256 (rust/crates/schannel-0.1.23.crate) = fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534
+SIZE (rust/crates/schannel-0.1.23.crate) = 41667
+SHA256 (rust/crates/scheduled-thread-pool-0.2.7.crate) = 3cbc66816425a074528352f5789333ecff06ca41b36b0b0efdfbb29edc391a19
+SIZE (rust/crates/scheduled-thread-pool-0.2.7.crate) = 10554
+SHA256 (rust/crates/schemars-0.8.16.crate) = 45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29
+SIZE (rust/crates/schemars-0.8.16.crate) = 57072
+SHA256 (rust/crates/schemars_derive-0.8.16.crate) = c767fd6fa65d9ccf9cf026122c1b555f2ef9a4f0cea69da4d7dbc3e258d30967
+SIZE (rust/crates/schemars_derive-0.8.16.crate) = 19064
SHA256 (rust/crates/scopeguard-1.2.0.crate) = 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49
SIZE (rust/crates/scopeguard-1.2.0.crate) = 11619
-SHA256 (rust/crates/sct-0.7.0.crate) = d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4
-SIZE (rust/crates/sct-0.7.0.crate) = 27502
+SHA256 (rust/crates/sct-0.7.1.crate) = da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414
+SIZE (rust/crates/sct-0.7.1.crate) = 27501
+SHA256 (rust/crates/sec1-0.3.0.crate) = 3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928
+SIZE (rust/crates/sec1-0.3.0.crate) = 17615
SHA256 (rust/crates/secrecy-0.8.0.crate) = 9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e
SIZE (rust/crates/secrecy-0.8.0.crate) = 11916
SHA256 (rust/crates/security-framework-2.9.2.crate) = 05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de
SIZE (rust/crates/security-framework-2.9.2.crate) = 79295
SHA256 (rust/crates/security-framework-sys-2.9.1.crate) = e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a
SIZE (rust/crates/security-framework-sys-2.9.1.crate) = 18284
-SHA256 (rust/crates/semver-1.0.18.crate) = b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918
-SIZE (rust/crates/semver-1.0.18.crate) = 29703
-SHA256 (rust/crates/serde-1.0.188.crate) = cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e
-SIZE (rust/crates/serde-1.0.188.crate) = 76230
+SHA256 (rust/crates/semver-1.0.21.crate) = b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0
+SIZE (rust/crates/semver-1.0.21.crate) = 30445
+SHA256 (rust/crates/serde-1.0.196.crate) = 870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32
+SIZE (rust/crates/serde-1.0.196.crate) = 77097
SHA256 (rust/crates/serde-value-0.7.0.crate) = f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c
SIZE (rust/crates/serde-value-0.7.0.crate) = 10249
-SHA256 (rust/crates/serde_bytes-0.11.12.crate) = ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff
-SIZE (rust/crates/serde_bytes-0.11.12.crate) = 10910
-SHA256 (rust/crates/serde_derive-1.0.188.crate) = 4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2
-SIZE (rust/crates/serde_derive-1.0.188.crate) = 55563
+SHA256 (rust/crates/serde_bytes-0.11.14.crate) = 8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734
+SIZE (rust/crates/serde_bytes-0.11.14.crate) = 12018
+SHA256 (rust/crates/serde_derive-1.0.196.crate) = 33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67
+SIZE (rust/crates/serde_derive-1.0.196.crate) = 55775
SHA256 (rust/crates/serde_derive_internals-0.26.0.crate) = 85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c
SIZE (rust/crates/serde_derive_internals-0.26.0.crate) = 25382
-SHA256 (rust/crates/serde_json-1.0.105.crate) = 693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360
-SIZE (rust/crates/serde_json-1.0.105.crate) = 146316
-SHA256 (rust/crates/serde_spanned-0.6.3.crate) = 96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186
-SIZE (rust/crates/serde_spanned-0.6.3.crate) = 7737
+SHA256 (rust/crates/serde_json-1.0.113.crate) = 69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79
+SIZE (rust/crates/serde_json-1.0.113.crate) = 146970
+SHA256 (rust/crates/serde_spanned-0.6.5.crate) = eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1
+SIZE (rust/crates/serde_spanned-0.6.5.crate) = 8349
SHA256 (rust/crates/serde_urlencoded-0.7.1.crate) = d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd
SIZE (rust/crates/serde_urlencoded-0.7.1.crate) = 12822
-SHA256 (rust/crates/serde_yaml-0.8.26.crate) = 578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b
-SIZE (rust/crates/serde_yaml-0.8.26.crate) = 40670
-SHA256 (rust/crates/sha1-0.10.5.crate) = f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3
-SIZE (rust/crates/sha1-0.10.5.crate) = 12146
-SHA256 (rust/crates/sha2-0.10.7.crate) = 479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8
-SIZE (rust/crates/sha2-0.10.7.crate) = 22541
-SHA256 (rust/crates/sharded-slab-0.1.4.crate) = 900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31
-SIZE (rust/crates/sharded-slab-0.1.4.crate) = 52479
+SHA256 (rust/crates/serde_yaml-0.9.31.crate) = adf8a49373e98a4c5f0ceb5d05aa7c648d75f63774981ed95b7c7443bbd50c6e
+SIZE (rust/crates/serde_yaml-0.9.31.crate) = 65200
+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/sharded-slab-0.1.7.crate) = f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6
+SIZE (rust/crates/sharded-slab-0.1.7.crate) = 58227
SHA256 (rust/crates/signal-hook-registry-1.4.1.crate) = d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1
SIZE (rust/crates/signal-hook-registry-1.4.1.crate) = 17987
+SHA256 (rust/crates/signature-1.6.4.crate) = 74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c
+SIZE (rust/crates/signature-1.6.4.crate) = 16012
SHA256 (rust/crates/slab-0.4.9.crate) = 8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67
SIZE (rust/crates/slab-0.4.9.crate) = 17108
-SHA256 (rust/crates/sled-0.34.7.crate) = 7f96b4737c2ce5987354855aed3797279def4ebf734436c6aa4552cf8e169935
-SIZE (rust/crates/sled-0.34.7.crate) = 485296
-SHA256 (rust/crates/smallvec-1.11.0.crate) = 62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9
-SIZE (rust/crates/smallvec-1.11.0.crate) = 34680
-SHA256 (rust/crates/socket2-0.4.9.crate) = 64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662
-SIZE (rust/crates/socket2-0.4.9.crate) = 45421
-SHA256 (rust/crates/socket2-0.5.3.crate) = 2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877
-SIZE (rust/crates/socket2-0.5.3.crate) = 52588
-SHA256 (rust/crates/spin-0.5.2.crate) = 6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d
-SIZE (rust/crates/spin-0.5.2.crate) = 12004
+SHA256 (rust/crates/smallvec-1.13.1.crate) = e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7
+SIZE (rust/crates/smallvec-1.13.1.crate) = 34952
+SHA256 (rust/crates/socket2-0.5.5.crate) = 7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9
+SIZE (rust/crates/socket2-0.5.5.crate) = 54863
SHA256 (rust/crates/spin-0.9.8.crate) = 6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67
SIZE (rust/crates/spin-0.9.8.crate) = 38958
+SHA256 (rust/crates/spki-0.6.0.crate) = 67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b
+SIZE (rust/crates/spki-0.6.0.crate) = 14791
SHA256 (rust/crates/static_init-1.0.3.crate) = 8a2a1c578e98c1c16fc3b8ec1328f7659a500737d7a0c6d625e73e830ff9c1f6
SIZE (rust/crates/static_init-1.0.3.crate) = 78543
SHA256 (rust/crates/static_init_macro-1.0.2.crate) = 70a2595fc3aa78f2d0e45dd425b22282dd863273761cc77780914b2cf3003acf
@@ -617,112 +681,124 @@ SHA256 (rust/crates/subtle-2.5.0.crate) = 81cdd64d312baedb58e21336b31bc043b77e01
SIZE (rust/crates/subtle-2.5.0.crate) = 13909
SHA256 (rust/crates/syn-1.0.109.crate) = 72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237
SIZE (rust/crates/syn-1.0.109.crate) = 237611
-SHA256 (rust/crates/syn-2.0.29.crate) = c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a
-SIZE (rust/crates/syn-2.0.29.crate) = 241664
+SHA256 (rust/crates/syn-2.0.48.crate) = 0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f
+SIZE (rust/crates/syn-2.0.48.crate) = 250566
+SHA256 (rust/crates/sync_wrapper-0.1.2.crate) = 2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160
+SIZE (rust/crates/sync_wrapper-0.1.2.crate) = 6933
SHA256 (rust/crates/synchronoise-1.0.1.crate) = 3dbc01390fc626ce8d1cffe3376ded2b72a11bb70e1c75f404a210e4daa4def2
SIZE (rust/crates/synchronoise-1.0.1.crate) = 15084
SHA256 (rust/crates/synstructure-0.12.6.crate) = f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f
SIZE (rust/crates/synstructure-0.12.6.crate) = 18429
-SHA256 (rust/crates/tempfile-3.8.0.crate) = cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef
-SIZE (rust/crates/tempfile-3.8.0.crate) = 31720
-SHA256 (rust/crates/termcolor-1.2.0.crate) = be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6
-SIZE (rust/crates/termcolor-1.2.0.crate) = 17917
+SHA256 (rust/crates/syslog-tracing-0.3.0.crate) = 340b1540dcdb6b066bc2966e7974f977ab1a38f21b2be189014ffb0cc2405768
+SIZE (rust/crates/syslog-tracing-0.3.0.crate) = 7932
+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.9.0.crate) = 01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa
+SIZE (rust/crates/tempfile-3.9.0.crate) = 32182
+SHA256 (rust/crates/termcolor-1.4.1.crate) = 06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755
+SIZE (rust/crates/termcolor-1.4.1.crate) = 18773
SHA256 (rust/crates/textwrap-0.11.0.crate) = d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060
SIZE (rust/crates/textwrap-0.11.0.crate) = 17322
-SHA256 (rust/crates/thiserror-1.0.47.crate) = 97a802ec30afc17eee47b2855fc72e0c4cd62be9b4efe6591edde0ec5bd68d8f
-SIZE (rust/crates/thiserror-1.0.47.crate) = 18811
-SHA256 (rust/crates/thiserror-impl-1.0.47.crate) = 6bb623b56e39ab7dcd4b1b98bb6c8f8d907ed255b18de254088016b27a8ee19b
-SIZE (rust/crates/thiserror-impl-1.0.47.crate) = 15080
+SHA256 (rust/crates/thiserror-1.0.56.crate) = d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad
+SIZE (rust/crates/thiserror-1.0.56.crate) = 20592
+SHA256 (rust/crates/thiserror-impl-1.0.56.crate) = fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471
+SIZE (rust/crates/thiserror-impl-1.0.56.crate) = 15367
SHA256 (rust/crates/thread_local-1.1.7.crate) = 3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152
SIZE (rust/crates/thread_local-1.1.7.crate) = 13585
-SHA256 (rust/crates/time-0.1.45.crate) = 1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a
-SIZE (rust/crates/time-0.1.45.crate) = 28911
-SHA256 (rust/crates/time-0.3.28.crate) = 17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48
-SIZE (rust/crates/time-0.3.28.crate) = 117447
-SHA256 (rust/crates/time-core-0.1.1.crate) = 7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb
-SIZE (rust/crates/time-core-0.1.1.crate) = 7197
-SHA256 (rust/crates/time-macros-0.2.14.crate) = 1a942f44339478ef67935ab2bbaec2fb0322496cf3cbe84b261e06ac3814c572
-SIZE (rust/crates/time-macros-0.2.14.crate) = 23766
-SHA256 (rust/crates/timeago-0.4.1.crate) = 5082dc942361cdfb74eab98bf995762d6015e5bb3a20bf7c5c71213778b4fcb4
-SIZE (rust/crates/timeago-0.4.1.crate) = 15419
+SHA256 (rust/crates/time-0.3.34.crate) = c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749
+SIZE (rust/crates/time-0.3.34.crate) = 118430
+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.17.crate) = 7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774
+SIZE (rust/crates/time-macros-0.2.17.crate) = 24443
+SHA256 (rust/crates/timeago-0.4.2.crate) = a1710e589de0a76aaf295cd47a6699f6405737dbfd3cf2b75c92d000b548d0e6
+SIZE (rust/crates/timeago-0.4.2.crate) = 18821
SHA256 (rust/crates/tinyvec-1.6.0.crate) = 87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50
SIZE (rust/crates/tinyvec-1.6.0.crate) = 45991
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.32.0.crate) = 17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9
-SIZE (rust/crates/tokio-1.32.0.crate) = 725004
+SHA256 (rust/crates/tokio-1.36.0.crate) = 61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931
+SIZE (rust/crates/tokio-1.36.0.crate) = 757286
SHA256 (rust/crates/tokio-io-timeout-1.2.0.crate) = 30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf
SIZE (rust/crates/tokio-io-timeout-1.2.0.crate) = 8993
-SHA256 (rust/crates/tokio-macros-2.1.0.crate) = 630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e
-SIZE (rust/crates/tokio-macros-2.1.0.crate) = 11472
-SHA256 (rust/crates/tokio-rustls-0.23.4.crate) = c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59
-SIZE (rust/crates/tokio-rustls-0.23.4.crate) = 27024
+SHA256 (rust/crates/tokio-macros-2.2.0.crate) = 5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b
+SIZE (rust/crates/tokio-macros-2.2.0.crate) = 11520
SHA256 (rust/crates/tokio-rustls-0.24.1.crate) = c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081
SIZE (rust/crates/tokio-rustls-0.24.1.crate) = 33049
+SHA256 (rust/crates/tokio-rustls-0.25.0.crate) = 775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f
+SIZE (rust/crates/tokio-rustls-0.25.0.crate) = 30541
SHA256 (rust/crates/tokio-stream-0.1.14.crate) = 397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842
SIZE (rust/crates/tokio-stream-0.1.14.crate) = 35881
SHA256 (rust/crates/tokio-util-0.6.10.crate) = 36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507
SIZE (rust/crates/tokio-util-0.6.10.crate) = 71140
-SHA256 (rust/crates/tokio-util-0.7.8.crate) = 806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d
-SIZE (rust/crates/tokio-util-0.7.8.crate) = 101644
-SHA256 (rust/crates/toml-0.6.0.crate) = 4fb9d890e4dc9298b70f740f615f2e05b9db37dce531f6b24fb77ac993f9f217
-SIZE (rust/crates/toml-0.6.0.crate) = 47246
-SHA256 (rust/crates/toml_datetime-0.5.1.crate) = 4553f467ac8e3d374bc9a177a26801e5d0f9b211aa1673fb137a403afd1c9cf5
-SIZE (rust/crates/toml_datetime-0.5.1.crate) = 10593
-SHA256 (rust/crates/toml_edit-0.18.1.crate) = 56c59d8dd7d0dcbc6428bf7aa2f0e823e26e43b3c9aca15bbc9475d23e5fa12b
-SIZE (rust/crates/toml_edit-0.18.1.crate) = 102542
+SHA256 (rust/crates/tokio-util-0.7.10.crate) = 5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15
+SIZE (rust/crates/tokio-util-0.7.10.crate) = 110508
+SHA256 (rust/crates/toml-0.8.10.crate) = 9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290
+SIZE (rust/crates/toml-0.8.10.crate) = 50667
+SHA256 (rust/crates/toml_datetime-0.6.5.crate) = 3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1
+SIZE (rust/crates/toml_datetime-0.6.5.crate) = 10910
+SHA256 (rust/crates/toml_edit-0.22.5.crate) = 99e68c159e8f5ba8a28c4eb7b0c0c190d77bb479047ca713270048145a9ad28a
+SIZE (rust/crates/toml_edit-0.22.5.crate) = 103292
SHA256 (rust/crates/tonic-0.6.2.crate) = ff08f4649d10a70ffa3522ca559031285d8e421d727ac85c60825761818f5d0a
SIZE (rust/crates/tonic-0.6.2.crate) = 83750
SHA256 (rust/crates/tonic-build-0.6.2.crate) = 9403f1bafde247186684b230dc6f38b5cd514584e8bec1dd32514be4745fa757
SIZE (rust/crates/tonic-build-0.6.2.crate) = 12516
SHA256 (rust/crates/tower-0.4.13.crate) = b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c
SIZE (rust/crates/tower-0.4.13.crate) = 106906
-SHA256 (rust/crates/tower-http-0.3.5.crate) = f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858
-SIZE (rust/crates/tower-http-0.3.5.crate) = 107116
+SHA256 (rust/crates/tower-http-0.4.4.crate) = 61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140
+SIZE (rust/crates/tower-http-0.4.4.crate) = 115612
SHA256 (rust/crates/tower-layer-0.3.2.crate) = c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0
SIZE (rust/crates/tower-layer-0.3.2.crate) = 6023
SHA256 (rust/crates/tower-service-0.3.2.crate) = b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52
SIZE (rust/crates/tower-service-0.3.2.crate) = 6847
-SHA256 (rust/crates/tracing-0.1.37.crate) = 8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8
-SIZE (rust/crates/tracing-0.1.37.crate) = 73888
-SHA256 (rust/crates/tracing-attributes-0.1.26.crate) = 5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab
-SIZE (rust/crates/tracing-attributes-0.1.26.crate) = 32060
-SHA256 (rust/crates/tracing-core-0.1.31.crate) = 0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a
-SIZE (rust/crates/tracing-core-0.1.31.crate) = 61263
+SHA256 (rust/crates/tracing-0.1.40.crate) = c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef
+SIZE (rust/crates/tracing-0.1.40.crate) = 79459
+SHA256 (rust/crates/tracing-attributes-0.1.27.crate) = 34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7
+SIZE (rust/crates/tracing-attributes-0.1.27.crate) = 32241
+SHA256 (rust/crates/tracing-core-0.1.32.crate) = c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54
+SIZE (rust/crates/tracing-core-0.1.32.crate) = 61221
SHA256 (rust/crates/tracing-futures-0.2.5.crate) = 97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2
SIZE (rust/crates/tracing-futures-0.2.5.crate) = 11637
-SHA256 (rust/crates/tracing-log-0.1.3.crate) = 78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922
-SIZE (rust/crates/tracing-log-0.1.3.crate) = 20549
-SHA256 (rust/crates/tracing-subscriber-0.3.17.crate) = 30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77
-SIZE (rust/crates/tracing-subscriber-0.3.17.crate) = 191711
-SHA256 (rust/crates/treediff-3.0.2.crate) = 761e8d5ad7ce14bb82b7e61ccc0ca961005a275a060b9644a2431aa11553c2ff
-SIZE (rust/crates/treediff-3.0.2.crate) = 8205
-SHA256 (rust/crates/try-lock-0.2.4.crate) = 3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed
-SIZE (rust/crates/try-lock-0.2.4.crate) = 4467
-SHA256 (rust/crates/typenum-1.16.0.crate) = 497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba
-SIZE (rust/crates/typenum-1.16.0.crate) = 42477
-SHA256 (rust/crates/unicode-bidi-0.3.13.crate) = 92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460
-SIZE (rust/crates/unicode-bidi-0.3.13.crate) = 44477
-SHA256 (rust/crates/unicode-ident-1.0.11.crate) = 301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c
-SIZE (rust/crates/unicode-ident-1.0.11.crate) = 42067
+SHA256 (rust/crates/tracing-log-0.2.0.crate) = ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3
+SIZE (rust/crates/tracing-log-0.2.0.crate) = 17561
+SHA256 (rust/crates/tracing-subscriber-0.3.18.crate) = ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b
+SIZE (rust/crates/tracing-subscriber-0.3.18.crate) = 196312
+SHA256 (rust/crates/treediff-4.0.3.crate) = 4d127780145176e2b5d16611cc25a900150e86e9fd79d3bde6ff3a37359c9cb5
+SIZE (rust/crates/treediff-4.0.3.crate) = 19968
+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/ucd-trie-0.1.6.crate) = ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9
+SIZE (rust/crates/ucd-trie-0.1.6.crate) = 45790
+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.22.crate) = 5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921
SIZE (rust/crates/unicode-normalization-0.1.22.crate) = 122604
SHA256 (rust/crates/unicode-segmentation-1.10.1.crate) = 1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36
SIZE (rust/crates/unicode-segmentation-1.10.1.crate) = 98416
-SHA256 (rust/crates/unicode-width-0.1.10.crate) = c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b
-SIZE (rust/crates/unicode-width-0.1.10.crate) = 18968
+SHA256 (rust/crates/unicode-width-0.1.11.crate) = e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85
+SIZE (rust/crates/unicode-width-0.1.11.crate) = 19187
SHA256 (rust/crates/unicode-xid-0.2.4.crate) = f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c
SIZE (rust/crates/unicode-xid-0.2.4.crate) = 15352
-SHA256 (rust/crates/untrusted-0.7.1.crate) = a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a
-SIZE (rust/crates/untrusted-0.7.1.crate) = 7924
-SHA256 (rust/crates/url-2.4.0.crate) = 50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb
-SIZE (rust/crates/url-2.4.0.crate) = 75670
+SHA256 (rust/crates/universal-hash-0.5.1.crate) = fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea
+SIZE (rust/crates/universal-hash-0.5.1.crate) = 9146
+SHA256 (rust/crates/unsafe-libyaml-0.2.10.crate) = ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b
+SIZE (rust/crates/unsafe-libyaml-0.2.10.crate) = 61964
+SHA256 (rust/crates/untrusted-0.9.0.crate) = 8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1
+SIZE (rust/crates/untrusted-0.9.0.crate) = 14447
+SHA256 (rust/crates/url-2.5.0.crate) = 31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633
+SIZE (rust/crates/url-2.5.0.crate) = 78605
SHA256 (rust/crates/urlencoding-2.1.3.crate) = daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da
SIZE (rust/crates/urlencoding-2.1.3.crate) = 6538
SHA256 (rust/crates/utf8parse-0.2.1.crate) = 711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a
SIZE (rust/crates/utf8parse-0.2.1.crate) = 13435
-SHA256 (rust/crates/uuid-1.2.2.crate) = 422ee0de9031b5b948b97a8fc04e3aa35230001a722ddd27943e0be31564ce4c
-SIZE (rust/crates/uuid-1.2.2.crate) = 53669
+SHA256 (rust/crates/uuid-1.4.1.crate) = 79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d
+SIZE (rust/crates/uuid-1.4.1.crate) = 55291
SHA256 (rust/crates/valuable-0.1.0.crate) = 830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d
SIZE (rust/crates/valuable-0.1.0.crate) = 27718
SHA256 (rust/crates/vcpkg-0.2.15.crate) = accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426
@@ -731,73 +807,91 @@ SHA256 (rust/crates/version_check-0.9.4.crate) = 49874b5167b65d7193b8aba1567f5c7
SIZE (rust/crates/version_check-0.9.4.crate) = 14895
SHA256 (rust/crates/vsimd-0.8.0.crate) = 5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64
SIZE (rust/crates/vsimd-0.8.0.crate) = 21377
-SHA256 (rust/crates/walkdir-2.3.3.crate) = 36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698
-SIZE (rust/crates/walkdir-2.3.3.crate) = 23125
+SHA256 (rust/crates/walkdir-2.4.0.crate) = d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee
+SIZE (rust/crates/walkdir-2.4.0.crate) = 23550
SHA256 (rust/crates/want-0.3.1.crate) = bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e
SIZE (rust/crates/want-0.3.1.crate) = 6398
-SHA256 (rust/crates/wasi-0.10.0+wasi-snapshot-preview1.crate) = 1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f
-SIZE (rust/crates/wasi-0.10.0+wasi-snapshot-preview1.crate) = 26964
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.87.crate) = 7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342
-SIZE (rust/crates/wasm-bindgen-0.2.87.crate) = 175052
-SHA256 (rust/crates/wasm-bindgen-backend-0.2.87.crate) = 5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd
-SIZE (rust/crates/wasm-bindgen-backend-0.2.87.crate) = 26821
-SHA256 (rust/crates/wasm-bindgen-futures-0.4.37.crate) = c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03
-SIZE (rust/crates/wasm-bindgen-futures-0.4.37.crate) = 15193
-SHA256 (rust/crates/wasm-bindgen-macro-0.2.87.crate) = dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d
-SIZE (rust/crates/wasm-bindgen-macro-0.2.87.crate) = 13897
-SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.87.crate) = 54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b
-SIZE (rust/crates/wasm-bindgen-macro-support-0.2.87.crate) = 20006
-SHA256 (rust/crates/wasm-bindgen-shared-0.2.87.crate) = ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1
-SIZE (rust/crates/wasm-bindgen-shared-0.2.87.crate) = 7248
-SHA256 (rust/crates/web-sys-0.3.64.crate) = 9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b
-SIZE (rust/crates/web-sys-0.3.64.crate) = 725584
-SHA256 (rust/crates/webpki-0.22.0.crate) = f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd
-SIZE (rust/crates/webpki-0.22.0.crate) = 58663
-SHA256 (rust/crates/which-4.4.0.crate) = 2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269
-SIZE (rust/crates/which-4.4.0.crate) = 10889
+SHA256 (rust/crates/wasm-bindgen-0.2.90.crate) = b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406
+SIZE (rust/crates/wasm-bindgen-0.2.90.crate) = 182529
+SHA256 (rust/crates/wasm-bindgen-backend-0.2.90.crate) = fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd
+SIZE (rust/crates/wasm-bindgen-backend-0.2.90.crate) = 28348
+SHA256 (rust/crates/wasm-bindgen-futures-0.4.40.crate) = bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461
+SIZE (rust/crates/wasm-bindgen-futures-0.4.40.crate) = 15375
+SHA256 (rust/crates/wasm-bindgen-macro-0.2.90.crate) = 3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999
+SIZE (rust/crates/wasm-bindgen-macro-0.2.90.crate) = 13904
+SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.90.crate) = bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7
+SIZE (rust/crates/wasm-bindgen-macro-support-0.2.90.crate) = 20008
+SHA256 (rust/crates/wasm-bindgen-shared-0.2.90.crate) = 4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b
+SIZE (rust/crates/wasm-bindgen-shared-0.2.90.crate) = 7264
+SHA256 (rust/crates/web-sys-0.3.67.crate) = 58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed
+SIZE (rust/crates/web-sys-0.3.67.crate) = 725967
+SHA256 (rust/crates/which-4.4.2.crate) = 87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7
+SIZE (rust/crates/which-4.4.2.crate) = 15953
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.5.crate) = 70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178
-SIZE (rust/crates/winapi-util-0.1.5.crate) = 10164
+SHA256 (rust/crates/winapi-util-0.1.6.crate) = f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596
+SIZE (rust/crates/winapi-util-0.1.6.crate) = 12234
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-0.48.0.crate) = e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f
-SIZE (rust/crates/windows-0.48.0.crate) = 11864177
+SHA256 (rust/crates/windows-core-0.52.0.crate) = 33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9
+SIZE (rust/crates/windows-core-0.52.0.crate) = 42154
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-targets-0.48.5.crate) = 9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c
SIZE (rust/crates/windows-targets-0.48.5.crate) = 6904
+SHA256 (rust/crates/windows-targets-0.52.0.crate) = 8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd
+SIZE (rust/crates/windows-targets-0.52.0.crate) = 6229
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.0.crate) = cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea
+SIZE (rust/crates/windows_aarch64_gnullvm-0.52.0.crate) = 430182
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.0.crate) = bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef
+SIZE (rust/crates/windows_aarch64_msvc-0.52.0.crate) = 821663
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.0.crate) = a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313
+SIZE (rust/crates/windows_i686_gnu-0.52.0.crate) = 870285
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.0.crate) = ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a
+SIZE (rust/crates/windows_i686_msvc-0.52.0.crate) = 888693
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.0.crate) = 3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd
+SIZE (rust/crates/windows_x86_64_gnu-0.52.0.crate) = 826213
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.0.crate) = 1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e
+SIZE (rust/crates/windows_x86_64_gnullvm-0.52.0.crate) = 430165
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.0.crate) = dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04
+SIZE (rust/crates/windows_x86_64_msvc-0.52.0.crate) = 821600
+SHA256 (rust/crates/winnow-0.6.1.crate) = d90f4e0f530c4c69f62b80d839e9ef3855edc9cba471a160c4d692deed62b401
+SIZE (rust/crates/winnow-0.6.1.crate) = 157139
SHA256 (rust/crates/winreg-0.50.0.crate) = 524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1
SIZE (rust/crates/winreg-0.50.0.crate) = 29703
-SHA256 (rust/crates/xmlparser-0.13.5.crate) = 4d25c75bf9ea12c4040a97f829154768bbbce366287e2dc044af160cd79a13fd
-SIZE (rust/crates/xmlparser-0.13.5.crate) = 26225
-SHA256 (rust/crates/xxhash-rust-0.8.6.crate) = 735a71d46c4d68d71d4b24d03fdc2b98e38cea81730595801db779c04fe80d70
-SIZE (rust/crates/xxhash-rust-0.8.6.crate) = 18569
-SHA256 (rust/crates/yaml-rust-0.4.5.crate) = 56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85
-SIZE (rust/crates/yaml-rust-0.4.5.crate) = 47783
-SHA256 (rust/crates/zeroize-1.6.0.crate) = 2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9
-SIZE (rust/crates/zeroize-1.6.0.crate) = 19049
-SHA256 (rust/crates/zstd-0.12.4.crate) = 1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c
-SIZE (rust/crates/zstd-0.12.4.crate) = 30434
-SHA256 (rust/crates/zstd-safe-6.0.6.crate) = ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581
-SIZE (rust/crates/zstd-safe-6.0.6.crate) = 20828
-SHA256 (rust/crates/zstd-sys-2.0.8+zstd.1.5.5.crate) = 5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c
-SIZE (rust/crates/zstd-sys-2.0.8+zstd.1.5.5.crate) = 736270
+SHA256 (rust/crates/xmlparser-0.13.6.crate) = 66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4
+SIZE (rust/crates/xmlparser-0.13.6.crate) = 26718
+SHA256 (rust/crates/xxhash-rust-0.8.8.crate) = 53be06678ed9e83edb1745eb72efc0bbcd7b5c3c35711a860906aed827a13d61
+SIZE (rust/crates/xxhash-rust-0.8.8.crate) = 18515
+SHA256 (rust/crates/zerocopy-0.7.32.crate) = 74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be
+SIZE (rust/crates/zerocopy-0.7.32.crate) = 151096
+SHA256 (rust/crates/zerocopy-derive-0.7.32.crate) = 9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6
+SIZE (rust/crates/zerocopy-derive-0.7.32.crate) = 37623
+SHA256 (rust/crates/zeroize-1.7.0.crate) = 525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d
+SIZE (rust/crates/zeroize-1.7.0.crate) = 19039
+SHA256 (rust/crates/zstd-0.13.0.crate) = bffb3309596d527cfcba7dfc6ed6052f1d39dfbd7c867aa2e865e4a449c10110
+SIZE (rust/crates/zstd-0.13.0.crate) = 28911
+SHA256 (rust/crates/zstd-safe-7.0.0.crate) = 43747c7422e2924c11144d5229878b98180ef8b06cca4ab5af37afc8a8d8ea3e
+SIZE (rust/crates/zstd-safe-7.0.0.crate) = 20463
+SHA256 (rust/crates/zstd-sys-2.0.9+zstd.1.5.5.crate) = 9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656
+SIZE (rust/crates/zstd-sys-2.0.9+zstd.1.5.5.crate) = 728791
diff --git a/www/garage/files/garage.in b/www/garage/files/garage.in
index 450497a37c4a..ebce1977d547 100644
--- a/www/garage/files/garage.in
+++ b/www/garage/files/garage.in
@@ -19,13 +19,14 @@ rcvar=${name}_enable
load_rc_config $name
: ${garage_enable="NO"}
: ${garage_config="%%PREFIX%%/etc/garage.toml"}
+: ${garage_log_file="/var/log/garage.log"}
-command="%%PREFIX%%/bin/${name}"
+command=/usr/sbin/daemon
+procname="%%PREFIX%%/bin/${name}"
required_files=${garage_config}
-command_args="-c ${garage_config} server"
+pidfile=/var/run/${name}.pid
+command_args="-p $pidfile -H -o ${garage_log_file} -f $procname -c ${garage_config} server"
-start_cmd="${command} -c ${garage_config} server"
-stop_cmd="pkill -15 ${name}"
-status_cmd="${command} status"
+status_cmd="$procname -c ${garage_config} status"
run_rc_command "$1"
diff --git a/www/geckodriver/Makefile b/www/geckodriver/Makefile
index bb23a5055fa1..bacece792c29 100644
--- a/www/geckodriver/Makefile
+++ b/www/geckodriver/Makefile
@@ -1,6 +1,6 @@
PORTNAME= geckodriver
DISTVERSION= 0.26.0
-PORTREVISION= 42
+PORTREVISION= 43
CATEGORIES= www
MASTER_SITES= https://hg.mozilla.org/mozilla-central/archive/${DISTNAME}.zip/testing/geckodriver/?dummy=/
DISTNAME= e9783a644016aa9b317887076618425586730d73
diff --git a/www/ghostunnel/Makefile b/www/ghostunnel/Makefile
index 71007d6b9268..3c31db39a871 100644
--- a/www/ghostunnel/Makefile
+++ b/www/ghostunnel/Makefile
@@ -1,7 +1,7 @@
PORTNAME= ghostunnel
DISTVERSIONPREFIX= v
DISTVERSION= 1.7.3
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= www
MAINTAINER= yuri@FreeBSD.org
diff --git a/www/gitea/Makefile b/www/gitea/Makefile
index 3cf76ed025e7..388256b0a2ad 100644
--- a/www/gitea/Makefile
+++ b/www/gitea/Makefile
@@ -1,6 +1,6 @@
PORTNAME= gitea
DISTVERSIONPREFIX= v
-DISTVERSION= 1.21.10
+DISTVERSION= 1.21.11
PORTREVISION= 1
CATEGORIES= www
MASTER_SITES= https://github.com/go-gitea/gitea/releases/download/${DISTVERSIONPREFIX}${DISTVERSION}/ \
@@ -54,9 +54,9 @@ DAEMONARGS= -f
SUB_LIST+= DAEMONARGS="${DAEMONARGS}"
SSP_UNSAFE= true
-# Default LDFLAGS are incompatible with build
-MAKE_ENV= LDFLAGS="${LDFLAGS} ${EXTRA_LDFLAGS}"
-MAKE_ARGS= GOPATH=${WRKDIR} TAGS="${GO_TAGS}"
+LDFLAGS+= "'-X "code.gitea.io/gitea/modules/setting.CustomPath=${PREFIX}/etc/gitea"'"
+LDFLAGS+= "'-X "code.gitea.io/gitea/modules/setting.AppWorkPath=${PREFIX}/share/gitea"'"
+MAKE_ARGS= GOPATH=${WRKDIR} TAGS="${GO_TAGS}" GOFLAGS="-buildvcs=false"
ALL_TARGET= backend
MAKE_JOBS_UNSAFE= yes
diff --git a/www/gitea/distinfo b/www/gitea/distinfo
index dc9d1ba1ea14..def33049cfee 100644
--- a/www/gitea/distinfo
+++ b/www/gitea/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1712013611
-SHA256 (gitea-src-1.21.10.tar.gz) = 83f68344800a68f8bc0165892f837c099b763781c11162bbc5206f8eb70f0c3f
-SIZE (gitea-src-1.21.10.tar.gz) = 53972181
+TIMESTAMP = 1715269556
+SHA256 (gitea-src-1.21.11.tar.gz) = 4f1cac5f0de555d57f86520bced33e0fbc08a5ea977e0940cbb024d80c679443
+SIZE (gitea-src-1.21.11.tar.gz) = 54029294
diff --git a/www/gitea/files/app.ini.sample.in b/www/gitea/files/app.ini.sample.in
index f0e6c811ee60..71cccbf31650 100644
--- a/www/gitea/files/app.ini.sample.in
+++ b/www/gitea/files/app.ini.sample.in
@@ -10,10 +10,10 @@
# 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 the token using for example:
# openssl rand -base64 64
-#
+#
# You can let Gitea add these to the config for you; you need to make
# app.ini writeable by the git user.
#
@@ -24,15 +24,15 @@
# If you'd rather use the web-based installer, remove this conf/app.ini file
# and make %%PREFIX%%/etc/gitea/conf writeable to the git user.
-APP_NAME = Gitea: Git with a cup of tea
-RUN_USER = %%GITUSER%%
+APP_NAME = Gitea: A self-hosted lightweight software forge
RUN_MODE = prod
+RUN_USER = %%GITUSER%%
[database]
DB_TYPE = sqlite3
HOST = 127.0.0.1:3306
NAME = gitea
-PASSWD =
+PASSWD =
PATH = /var/db/gitea/gitea.db
SSL_MODE = disable
USER = root
@@ -41,19 +41,19 @@ USER = root
ISSUE_INDEXER_PATH = /var/db/gitea/indexers/issues.bleve
[log]
-ROOT_PATH = /var/log/gitea
-MODE = file
LEVEL = Info
+MODE = file
+ROOT_PATH = /var/log/gitea
[mailer]
ENABLED = false
[oauth2]
-JWT_SECRET = D56bmu6xCtEKs9vKKgMKnsa4X9FDwo64HVyaS4fQ4mY
+JWT_SECRET = CHANGE_ME
[picture]
AVATAR_UPLOAD_PATH = /var/db/gitea/data/avatars
-DISABLE_GRAVATAR = false
+DISABLE_GRAVATAR = true
ENABLE_FEDERATED_AVATAR = false
[repository]
@@ -66,28 +66,28 @@ SCRIPT_TYPE = sh
TEMP_PATH = /var/db/gitea/data/tmp/uploads
[security]
-INSTALL_LOCK = true
-INTERNAL_TOKEN = 1FFhAklka01JhgJTRUrFujWYiv4ijqcTIfXJ9o4n1fWxz+XVQdXhrqDTlsnD7fvz7gugdhgkx0FY2Lx6IBdPQw==
-SECRET_KEY = ChangeMeBeforeRunning
+INSTALL_LOCK = true
+INTERNAL_TOKEN = CHANGE_ME
+SECRET_KEY = CHANGE_ME
[session]
-PROVIDER = file
+PROVIDER = file
PROVIDER_CONFIG = /var/db/gitea/data/sessions
[server]
-DOMAIN = localhost
-HTTP_ADDR = 127.0.0.1
-HTTP_PORT = 3000
-ROOT_URL = http://localhost:3000/
-DISABLE_SSH = false
-SSH_DOMAIN = %(DOMAIN)s
-SSH_PORT = 22
-OFFLINE_MODE = false
APP_DATA_PATH = /var/db/gitea/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]
-REGISTER_EMAIL_CONFIRM = false
-ENABLE_NOTIFY_MAIL = false
DISABLE_REGISTRATION = false
ENABLE_CAPTCHA = true
+ENABLE_NOTIFY_MAIL = false
+REGISTER_EMAIL_CONFIRM = false
REQUIRE_SIGNIN_VIEW = false
diff --git a/www/gitea/files/gitea.in b/www/gitea/files/gitea.in
index 5e75ad5d5143..566a4b46ef93 100644
--- a/www/gitea/files/gitea.in
+++ b/www/gitea/files/gitea.in
@@ -17,8 +17,9 @@ load_rc_config $name
: ${gitea_user:="%%GITUSER%%"}
: ${gitea_enable:="NO"}
+: ${gitea_configcheck_enable:="YES"}
: ${gitea_facility:="daemon"}
-: ${gitea_priority:="debug"}
+: ${gitea_priority:="info"}
: ${gitea_shared:="%%PREFIX%%/share/${name}"}
: ${gitea_custom:="%%PREFIX%%/etc/${name}"}
@@ -29,6 +30,7 @@ githome="$(eval echo ~${gitea_user})"
pidfile="/var/run/${name}.pid"
start_cmd="${name}_start"
+start_precmd="${name}_prestart"
gitea_start() {
for d in /var/db/gitea /var/log/gitea; do
@@ -48,4 +50,16 @@ gitea_start() {
$command
}
+gitea_prestart() {
+ if checkyesno gitea_configcheck_enable; then
+ if su -m ${gitea_user} -c "%%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
+ fi
+ fi
+}
+
run_rc_command "$1"
diff --git a/www/gitlab-pages/Makefile b/www/gitlab-pages/Makefile
index 3e2e381a9b8e..a18542f43cfa 100644
--- a/www/gitlab-pages/Makefile
+++ b/www/gitlab-pages/Makefile
@@ -1,7 +1,6 @@
PORTNAME= gitlab-pages
-PORTVERSION= 16.11.0
+PORTVERSION= 17.0.0
DISTVERSIONPREFIX= v
-PORTREVISION= 1
CATEGORIES= www
MASTER_SITES+= https://gitlab.com/gitlab-org/gitlab-pages/-/raw/v${DISTVERSION}/
DISTFILES+= go.mod
diff --git a/www/gitlab-pages/distinfo b/www/gitlab-pages/distinfo
index 1acd35b85cba..372f6cb8936a 100644
--- a/www/gitlab-pages/distinfo
+++ b/www/gitlab-pages/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1713633989
-SHA256 (go/www_gitlab-pages/gitlab-pages-v16.11.0/go.mod) = de0926d06d56e5cdb84c2c4fd4bc05bb9c8c3724a8e1cf8c0f775856958540ba
-SIZE (go/www_gitlab-pages/gitlab-pages-v16.11.0/go.mod) = 3328
-SHA256 (go/www_gitlab-pages/gitlab-pages-v16.11.0/gitlab-pages-v16.11.0.tar.bz2) = d9180a31353be2e9c41d22e2a9d91cad62cc4ef00ef7ae202170fde0aea2c9fc
-SIZE (go/www_gitlab-pages/gitlab-pages-v16.11.0/gitlab-pages-v16.11.0.tar.bz2) = 212557
+TIMESTAMP = 1716142216
+SHA256 (go/www_gitlab-pages/gitlab-pages-v17.0.0/go.mod) = de0926d06d56e5cdb84c2c4fd4bc05bb9c8c3724a8e1cf8c0f775856958540ba
+SIZE (go/www_gitlab-pages/gitlab-pages-v17.0.0/go.mod) = 3328
+SHA256 (go/www_gitlab-pages/gitlab-pages-v17.0.0/gitlab-pages-v17.0.0.tar.bz2) = cc73f2d8055c117bce32a7e4927e9f24b400e75949351764438dbd394e5929d8
+SIZE (go/www_gitlab-pages/gitlab-pages-v17.0.0/gitlab-pages-v17.0.0.tar.bz2) = 212538
diff --git a/www/gitlab-workhorse/Makefile b/www/gitlab-workhorse/Makefile
index edd5eea933ed..9367d2cdedc0 100644
--- a/www/gitlab-workhorse/Makefile
+++ b/www/gitlab-workhorse/Makefile
@@ -1,5 +1,5 @@
PORTNAME= gitlab-workhorse
-PORTVERSION= 16.11.0
+PORTVERSION= 17.0.0
DISTVERSIONPREFIX= v
CATEGORIES= www
diff --git a/www/gitlab-workhorse/distinfo b/www/gitlab-workhorse/distinfo
index 9012462a1600..035ced8802a7 100644
--- a/www/gitlab-workhorse/distinfo
+++ b/www/gitlab-workhorse/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1713633714
-SHA256 (go/www_gitlab-workhorse/gitlab-foss-v16.11.0/go.mod) = 2c1ff4ba288aa4bf72cc93438b6dda7660257f50eeb7823f9acc0dde5412c499
-SIZE (go/www_gitlab-workhorse/gitlab-foss-v16.11.0/go.mod) = 7010
-SHA256 (go/www_gitlab-workhorse/gitlab-foss-v16.11.0/gitlab-foss-v16.11.0.tar.bz2) = f37af6af67c0d281000098519dec8b62acd678c633c121cf6135d4874f6319c8
-SIZE (go/www_gitlab-workhorse/gitlab-foss-v16.11.0/gitlab-foss-v16.11.0.tar.bz2) = 102630775
+TIMESTAMP = 1716138943
+SHA256 (go/www_gitlab-workhorse/gitlab-foss-v17.0.0/go.mod) = 01accf76d651c177faba180d5d544c1509d3af644af5acb5a7c40268b744f99e
+SIZE (go/www_gitlab-workhorse/gitlab-foss-v17.0.0/go.mod) = 7030
+SHA256 (go/www_gitlab-workhorse/gitlab-foss-v17.0.0/gitlab-foss-v17.0.0.tar.bz2) = b4c809cf09846f3dff3c55cba6a6e6a7d16c0e790b2f2c86bf3cf89a67b7bd9f
+SIZE (go/www_gitlab-workhorse/gitlab-foss-v17.0.0/gitlab-foss-v17.0.0.tar.bz2) = 103670734
diff --git a/www/gitlab/Makefile b/www/gitlab/Makefile
index 106abedfe63a..2b4b3be37543 100644
--- a/www/gitlab/Makefile
+++ b/www/gitlab/Makefile
@@ -1,6 +1,7 @@
PORTNAME= gitlab-${FLAVOR:Uce}
-PORTVERSION= 16.11.0
+PORTVERSION= 17.0.0
DISTVERSIONPREFIX= v
+PORTREVISION= 1
.if ${FLAVOR:U} == ee
DISTVERSIONSUFFIX= -ee
.endif
@@ -8,9 +9,9 @@ DISTVERSIONSUFFIX= -ee
CATEGORIES= www devel
# include patch to fix database migration
-#https://gitlab.com/gitlab-org/gitlab/-/merge_requests/138018.patch
-#PATCH_SITES= https://gitlab.com/gitlab-org/gitlab/-/merge_requests/
-#PATCHFILES+= 138018.patch:-p1 # https://gitlab.com/gitlab-org/gitlab/-/merge_requests/138018
+#https://gitlab.com/gitlab-org/gitlab/-/merge_requests/153560.patch
+PATCH_SITES= https://gitlab.com/gitlab-org/gitlab/-/merge_requests/
+PATCHFILES+= 153560.patch:-p1 # https://gitlab.com/gitlab-org/gitlab/-/merge_requests/153560
MAINTAINER= mfechner@FreeBSD.org
COMMENT= Web GUI for managing git repositories
@@ -29,7 +30,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
MY_DEPENDS= git>=2.41.0:devel/git \
gitaly>=${PORTVERSION}:devel/gitaly \
gitlab-elasticsearch-indexer>=4.8.0:textproc/gitlab-elasticsearch-indexer \
- gitlab-agent>=16.10.1:net/gitlab-agent \
+ gitlab-agent>=${PORTVERSION}:net/gitlab-agent \
gitlab-pages>=${PORTVERSION}:www/gitlab-pages \
gitlab-shell>=14.35.0:devel/gitlab-shell \
gitlab-workhorse>=${PORTVERSION}:www/gitlab-workhorse \
@@ -46,7 +47,7 @@ MY_DEPENDS= git>=2.41.0:devel/git \
rubygem-ipaddr>=1.2.5<1.3:net/rubygem-ipaddr \
rubygem-responders-rails70>=3.0<4.0:www/rubygem-responders-rails70 \
rubygem-sprockets3>=3.7<3.8:devel/rubygem-sprockets3 \
- rubygem-view_component-rails70>=3.11.0<3.12:devel/rubygem-view_component-rails70 \
+ rubygem-view_component-rails70>=3.12.1<3.13:devel/rubygem-view_component-rails70 \
rubygem-pg>=1.5.6<1.6:databases/rubygem-pg \
rubygem-neighbor>=0.2.3<0.3:databases/rubygem-neighbor \
rubygem-rugged>=1.6<2:devel/rubygem-rugged \
@@ -62,15 +63,12 @@ MY_DEPENDS= git>=2.41.0:devel/git \
rubygem-omniauth>=2.1.0<3:security/rubygem-omniauth \
rubygem-omniauth-auth0>=3.1.0<3.2.0:net/rubygem-omniauth-auth0 \
rubygem-omniauth-azure-activedirectory-v2>=2.0<3:net/rubygem-omniauth-azure-activedirectory-v2 \
- rubygem-omniauth-dingtalk-oauth2>=1.0.1<2:security/rubygem-omniauth-dingtalk-oauth2 \
rubygem-omniauth-alicloud>=3.0.0<3.1:security/rubygem-omniauth-alicloud \
- rubygem-omniauth-facebook>=4.0.0:net/rubygem-omniauth-facebook \
rubygem-omniauth-github>=2.0.1<2.1:net/rubygem-omniauth-github \
rubygem-omniauth-google-oauth2>=1.1<2:net/rubygem-omniauth-google-oauth2 \
rubygem-omniauth-oauth2-generic>=0.2.2<0.3.0:security/rubygem-omniauth-oauth2-generic \
rubygem-omniauth-saml>=2.1.0<3:security/rubygem-omniauth-saml \
rubygem-omniauth-shibboleth-redux>=2.0<3:security/rubygem-omniauth-shibboleth-redux \
- rubygem-omniauth-twitter>=1.4<2.0:net/rubygem-omniauth-twitter \
rubygem-omniauth_openid_connect>=0.6.1<0.7.0:net/rubygem-omniauth_openid_connect \
rubygem-openid_connect>=1.3.1<1.3.2:net/rubygem-openid_connect \
rubygem-omniauth-atlassian-oauth2>=0.2.0<0.3:security/rubygem-omniauth-atlassian-oauth2 \
@@ -85,18 +83,18 @@ MY_DEPENDS= git>=2.41.0:devel/git \
rubygem-validates_hostname>=1.0.13<1.1.0:dns/rubygem-validates_hostname \
rubygem-rubyzip>=2.3.2<2.4:archivers/rubygem-rubyzip \
rubygem-acme-client>=2.0.9<3:security/rubygem-acme-client \
- rubygem-browser>=5.3.1<5.4:www/rubygem-browser \
+ rubygem-browser5>=5.3.1<5.4:www/rubygem-browser5 \
rubygem-ohai>=18.1<19:sysutils/rubygem-ohai \
rubygem-gpgme>=2.0.23<2.1.0:security/rubygem-gpgme \
rubygem-gitlab_omniauth-ldap>=2.2.0<2.3.0:net/rubygem-gitlab_omniauth-ldap \
rubygem-net-ldap017>=0.17.1<0.18:net/rubygem-net-ldap017 \
rubygem-grape>=2.0.0<2.1:devel/rubygem-grape \
- rubygem-grape-entity>=0.10.2<0.11.0,1:devel/rubygem-grape-entity \
- rubygem-grape-swagger>=2.0.2<2.1:devel/rubygem-grape-swagger \
+ rubygem-grape-entity>=1.0.1<1.1,1:devel/rubygem-grape-entity \
+ rubygem-grape-swagger20>=2.0.2<2.1:devel/rubygem-grape-swagger20 \
rubygem-grape-swagger-entity>=0.5.1<0.6:devel/rubygem-grape-swagger-entity \
rubygem-grape-path-helpers>=2.0.1<2.1:devel/rubygem-grape-path-helpers \
rubygem-rack-cors>=2.0.1<2.1:www/rubygem-rack-cors \
- rubygem-graphql>=2.2.5<2.3:devel/rubygem-graphql \
+ rubygem-graphql>=2.3.2<2.4:devel/rubygem-graphql \
rubygem-graphql-docs>=4.0.0<4.1.0:devel/rubygem-graphql-docs \
rubygem-graphiql-rails>=1.8.0<1.9:devel/rubygem-graphiql-rails \
rubygem-apollo_upload_server>=2.1.5<2.2:net/rubygem-apollo_upload_server \
@@ -109,7 +107,7 @@ MY_DEPENDS= git>=2.41.0:devel/git \
rubygem-mini_magick>=4.12<5:graphics/rubygem-mini_magick \
rubygem-fog-aws>=3.18<4:net/rubygem-fog-aws \
rubygem-fog-core210>=2.1.0<2.1.1:devel/rubygem-fog-core210 \
- rubygem-fog-google>=1.19<2:net/rubygem-fog-google \
+ rubygem-fog-google>=1.24.1<1.25:net/rubygem-fog-google \
rubygem-fog-local>=0.8<1.0:net/rubygem-fog-local \
rubygem-fog-aliyun>=0.4<1.0:net/rubygem-fog-aliyun \
rubygem-gitlab-fog-azure-rm>=1.9.1<1.10:net/rubygem-gitlab-fog-azure-rm \
@@ -132,9 +130,9 @@ MY_DEPENDS= git>=2.41.0:devel/git \
rubygem-elasticsearch-model713>=7.2<8:textproc/rubygem-elasticsearch-model713 \
rubygem-elasticsearch-rails>=7.2<8:textproc/rubygem-elasticsearch-rails \
rubygem-elasticsearch-api713>=7.13.3<7.13.4:textproc/rubygem-elasticsearch-api713 \
- rubygem-aws-sdk-core>=3.191.6<4:devel/rubygem-aws-sdk-core \
+ rubygem-aws-sdk-core>=3.194.2<4:devel/rubygem-aws-sdk-core \
rubygem-aws-sdk-cloudformation>=1<2:devel/rubygem-aws-sdk-cloudformation \
- rubygem-aws-sdk-s3>=1.146.1<2:devel/rubygem-aws-sdk-s3 \
+ rubygem-aws-sdk-s3>=1.149.1<2:devel/rubygem-aws-sdk-s3 \
rubygem-faraday_middleware-aws-sigv403>=0.3.0<0.4:devel/rubygem-faraday_middleware-aws-sigv403 \
rubygem-typhoeus>=1.4.0<1.5:www/rubygem-typhoeus \
rubygem-html-pipeline>=2.14.3<2.15:textproc/rubygem-html-pipeline \
@@ -153,7 +151,7 @@ MY_DEPENDS= git>=2.41.0:devel/git \
rubygem-rouge>=4.2.0<4.3:textproc/rubygem-rouge \
rubygem-truncato>=0.7.12<0.8.0:textproc/rubygem-truncato \
rubygem-nokogiri>=1.16<2:textproc/rubygem-nokogiri \
- rubygem-gitlab-glfm-markdown>=0.0.14<0.1:textproc/rubygem-gitlab-glfm-markdown \
+ rubygem-gitlab-glfm-markdown>=0.0.16<0.1:textproc/rubygem-gitlab-glfm-markdown \
rubygem-icalendar>=0:devel/rubygem-icalendar \
rubygem-diffy>=3.4<4:textproc/rubygem-diffy \
rubygem-rack22>=2.2.8.1,3<2.3,3:www/rubygem-rack22 \
@@ -165,17 +163,17 @@ MY_DEPENDS= git>=2.41.0:devel/git \
rubygem-sidekiq71>=7.1.6<7.2:devel/rubygem-sidekiq71 \
rubygem-sidekiq-cron-rails70>=1.12.0<1.13:devel/rubygem-sidekiq-cron-rails70 \
rubygem-fugit18>=1.8.1<1.9:devel/rubygem-fugit18 \
- rubygem-httparty>=0.21.0<0.22:www/rubygem-httparty \
+ rubygem-httparty021>=0.21.0<0.22:www/rubygem-httparty021 \
rubygem-rainbow>=3.1.1<4.0:devel/rubygem-rainbow \
rubygem-ruby-progressbar>=1.11<2:devel/rubygem-ruby-progressbar \
rubygem-re2>=2.7.0<2.8:devel/rubygem-re2 \
- rubygem-semver_dialects>=2.0.2<3:devel/rubygem-semver_dialects \
+ rubygem-semver_dialects2>=2.0.2<3:devel/rubygem-semver_dialects2 \
rubygem-version_sorter>=2.3<3:textproc/rubygem-version_sorter \
rubygem-js_regex>=3.8<4.0:textproc/rubygem-js_regex \
rubygem-device_detector>=0:devel/rubygem-device_detector \
- rubygem-redis-namespace110>=1.10.0<1.11:databases/rubygem-redis-namespace110 \
- rubygem-redis50>=5.0.0<5.1:databases/rubygem-redis50 \
- rubygem-redis-clustering50>=5.0.0<5.1:databases/rubygem-redis-clustering50 \
+ rubygem-redis-namespace>=1.11.0<1.12:databases/rubygem-redis-namespace \
+ rubygem-redis>=5.2.0<5.3:databases/rubygem-redis \
+ rubygem-redis-clustering>=5.2.0<5.3:databases/rubygem-redis-clustering \
rubygem-connection_pool>=2.4.1<3.0:net/rubygem-connection_pool \
rubygem-redis-actionpack-rails70>=5.4.0<5.5:databases/rubygem-redis-actionpack-rails70 \
rubygem-discordrb-webhooks>=3.5<4.0:net-im/rubygem-discordrb-webhooks \
@@ -205,22 +203,44 @@ MY_DEPENDS= git>=2.41.0:devel/git \
rubygem-base32>=0.3.0<0.4.0:converters/rubygem-base32 \
rubygem-gitlab-license>=2.4<3:devel/rubygem-gitlab-license \
rubygem-rack-attack>=6.7.0<6.8:www/rubygem-rack-attack \
- rubygem-sentry-raven>=3.1<4.0:devel/rubygem-sentry-raven \
- rubygem-sentry-ruby>=5.10.0<5.11:devel/rubygem-sentry-ruby \
- rubygem-sentry-rails>=5.10.0<5.11:devel/rubygem-sentry-rails \
- rubygem-sentry-sidekiq>=5.10.0<5.11:devel/rubygem-sentry-sidekiq \
+ rubygem-sentry-ruby>=5.17.3<5.18:devel/rubygem-sentry-ruby \
+ rubygem-sentry-rails>=5.17.3<5.18:devel/rubygem-sentry-rails \
+ rubygem-sentry-sidekiq>=5.17.3<5.18:devel/rubygem-sentry-sidekiq \
rubygem-pg_query>=5.1.0<5.2:databases/rubygem-pg_query \
rubygem-premailer-rails110-rails70>=1.10.3<1.11:mail/rubygem-premailer-rails110-rails70 \
- rubygem-gitlab-labkit>=0.35.1<0.36:devel/rubygem-gitlab-labkit \
+ rubygem-gitlab-labkit>=0.36.0<0.37:devel/rubygem-gitlab-labkit \
rubygem-thrift>=0.16.0:devel/rubygem-thrift \
- rubygem-rails-i18n-rails70>=7.0<8:devel/rubygem-rails-i18n-rails70 \
+ rubygem-rails-i18n-rails70>=7.0.9<8:devel/rubygem-rails-i18n-rails70 \
rubygem-gettext_i18n_rails>=1.12.0<1.13:devel/rubygem-gettext_i18n_rails \
rubygem-gettext>=3.4<4:devel/rubygem-gettext \
- rubygem-batch-loader>=2.0.1<2.1:devel/rubygem-batch-loader \
+ rubygem-batch-loader>=2.0.5<2.1:devel/rubygem-batch-loader \
rubygem-peek-rails70>=1.1<2.0:devel/rubygem-peek-rails70 \
rubygem-snowplow-tracker>=0.8.0<1:devel/rubygem-snowplow-tracker \
rubygem-webrick>=1.8.1<1.9:www/rubygem-webrick \
rubygem-prometheus-client-mmap>=1.1.1<2:devel/rubygem-prometheus-client-mmap \
+ rubygem-opentelemetry-sdk>=1.4.0:devel/rubygem-opentelemetry-sdk \
+ rubygem-opentelemetry-exporter-otlp>=0.26.3:devel/rubygem-opentelemetry-exporter-otlp \
+ rubygem-opentelemetry-instrumentation-active_support>=0.5.1:devel/rubygem-opentelemetry-instrumentation-active_support \
+ rubygem-opentelemetry-instrumentation-action_pack>=0.9.0:devel/rubygem-opentelemetry-instrumentation-action_pack \
+ rubygem-opentelemetry-instrumentation-active_job>=0.7.1:devel/rubygem-opentelemetry-instrumentation-active_job \
+ rubygem-opentelemetry-instrumentation-active_record>=0.7.0:devel/rubygem-opentelemetry-instrumentation-active_record \
+ rubygem-opentelemetry-instrumentation-action_view>=0.7.0:devel/rubygem-opentelemetry-instrumentation-action_view \
+ rubygem-opentelemetry-instrumentation-aws_sdk>=0.5.1:devel/rubygem-opentelemetry-instrumentation-aws_sdk \
+ rubygem-opentelemetry-instrumentation-http>=0.23.2:devel/rubygem-opentelemetry-instrumentation-http \
+ rubygem-opentelemetry-instrumentation-concurrent_ruby>=0.21.2:devel/rubygem-opentelemetry-instrumentation-concurrent_ruby \
+ rubygem-opentelemetry-instrumentation-ethon>=0.21.3:devel/rubygem-opentelemetry-instrumentation-ethon \
+ rubygem-opentelemetry-instrumentation-excon>=0.22.0:devel/rubygem-opentelemetry-instrumentation-excon \
+ rubygem-opentelemetry-instrumentation-faraday>=0.24.0:devel/rubygem-opentelemetry-instrumentation-faraday \
+ rubygem-opentelemetry-instrumentation-grape>=0.1.6:devel/rubygem-opentelemetry-instrumentation-grape \
+ rubygem-opentelemetry-instrumentation-graphql>=0.28.0:devel/rubygem-opentelemetry-instrumentation-graphql \
+ rubygem-opentelemetry-instrumentation-http_client>=0.22.3:devel/rubygem-opentelemetry-instrumentation-http_client \
+ rubygem-opentelemetry-instrumentation-net_http>=0.22.4:devel/rubygem-opentelemetry-instrumentation-net_http \
+ rubygem-opentelemetry-instrumentation-pg>=0.27.1:devel/rubygem-opentelemetry-instrumentation-pg \
+ rubygem-opentelemetry-instrumentation-rack>=0.24.0:devel/rubygem-opentelemetry-instrumentation-rack \
+ rubygem-opentelemetry-instrumentation-rails>=0.30.0:devel/rubygem-opentelemetry-instrumentation-rails \
+ rubygem-opentelemetry-instrumentation-rake>=0.2.1:devel/rubygem-opentelemetry-instrumentation-rake \
+ rubygem-opentelemetry-instrumentation-redis>=0.25.3:devel/rubygem-opentelemetry-instrumentation-redis \
+ rubygem-opentelemetry-instrumentation-sidekiq>=0.25.2:devel/rubygem-opentelemetry-instrumentation-sidekiq \
rubygem-warning>=1.3.0<1.4:devel/rubygem-warning \
rubygem-gitlab-dangerfiles>=4.7.0<4.8:devel/rubygem-gitlab-dangerfiles \
rubygem-license_finder>=7.0.0<8:devel/rubygem-license_finder \
@@ -240,9 +260,9 @@ MY_DEPENDS= git>=2.41.0:devel/git \
rubygem-net-ntp>0:net/rubygem-net-ntp \
rubygem-ssh_data>=1.3<2:security/rubygem-ssh_data \
rubygem-spamcheck>=1.3.0<1.4:net/rubygem-spamcheck \
- rubygem-gitaly>=16.11.0.pre.rc1<16.12.0:net/rubygem-gitaly \
- rubygem-kas-grpc>=0.4.0,1<0.5.0,1:net/rubygem-kas-grpc \
- rubygem-grpc>=1.60.0<2:net/rubygem-grpc \
+ rubygem-gitaly>=17.0.0.pre.rc2<17.1:net/rubygem-gitaly \
+ rubygem-kas-grpc>=0.5.0,1<0.6.0,1:net/rubygem-kas-grpc \
+ rubygem-grpc>=1.63.0<2:net/rubygem-grpc \
rubygem-google-protobuf>=3.25.3<4:devel/rubygem-google-protobuf \
rubygem-toml-rb>=2.2.0<3:www/rubygem-toml-rb \
rubygem-flipper026>=0.26.2<0.27:devel/rubygem-flipper026 \
diff --git a/www/gitlab/distinfo b/www/gitlab/distinfo
index 88ec868535d7..b0bc52a92852 100644
--- a/www/gitlab/distinfo
+++ b/www/gitlab/distinfo
@@ -1,6 +1,10 @@
-TIMESTAMP = 1713633902
-SHA256 (gitlab-foss-v16.11.0.tar.bz2) = f37af6af67c0d281000098519dec8b62acd678c633c121cf6135d4874f6319c8
-SIZE (gitlab-foss-v16.11.0.tar.bz2) = 102630775
-TIMESTAMP = 1713633967
-SHA256 (gitlab-v16.11.0-ee.tar.bz2) = 93d25af24702d173e52eee9ef2437c0b5faf688b675d9e8358d0f496e7fb960f
-SIZE (gitlab-v16.11.0-ee.tar.bz2) = 110296983
+TIMESTAMP = 1716264608
+SHA256 (gitlab-foss-v17.0.0.tar.bz2) = b4c809cf09846f3dff3c55cba6a6e6a7d16c0e790b2f2c86bf3cf89a67b7bd9f
+SIZE (gitlab-foss-v17.0.0.tar.bz2) = 103670734
+SHA256 (153560.patch) = 1303cf562fac571b092395cae264544156547ad15a99a9fdac3b27e7083b2027
+SIZE (153560.patch) = 1404
+TIMESTAMP = 1716264608
+SHA256 (gitlab-v17.0.0-ee.tar.bz2) = a83518a3edc711a91b9941f96365b2f869d8db411db4ee5bd5b1f27f42555672
+SIZE (gitlab-v17.0.0-ee.tar.bz2) = 111194012
+SHA256 (153560.patch) = 1303cf562fac571b092395cae264544156547ad15a99a9fdac3b27e7083b2027
+SIZE (153560.patch) = 1404
diff --git a/www/gitlab/files/patch-Gemfile b/www/gitlab/files/patch-Gemfile
index 19e303a3e6a7..cb36ba55d06e 100644
--- a/www/gitlab/files/patch-Gemfile
+++ b/www/gitlab/files/patch-Gemfile
@@ -1,4 +1,4 @@
---- Gemfile.orig 2024-04-17 11:47:15 UTC
+--- Gemfile.orig 2024-05-15 08:00:50 UTC
+++ Gemfile
@@ -58,7 +58,7 @@ gem 'rugged', '~> 1.6' # rubocop:todo Gemfile/MissingF
@@ -9,18 +9,16 @@
gem 'marginalia', '~> 1.11.1' # rubocop:todo Gemfile/MissingFeatureCategory
# Authorization
-@@ -78,8 +78,8 @@ gem 'omniauth-alicloud', '~> 3.0.0' # rubocop:todo Gem
- gem 'omniauth-azure-oauth2', '~> 0.0.9', path: 'vendor/gems/omniauth-azure-oauth2' # See gem README.md # rubocop:todo Gemfile/MissingFeatureCategory
- gem 'omniauth-dingtalk-oauth2', '~> 1.0' # rubocop:todo Gemfile/MissingFeatureCategory
+@@ -76,7 +76,7 @@ gem 'omniauth-alicloud', '~> 3.0.0' # rubocop:todo Gem
+ gem 'omniauth-auth0', '~> 3.1' # rubocop:todo Gemfile/MissingFeatureCategory
+ gem 'omniauth-azure-activedirectory-v2', '~> 2.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'omniauth-alicloud', '~> 3.0.0' # rubocop:todo Gemfile/MissingFeatureCategory
--gem 'omniauth-facebook', '~> 4.0.0' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'omniauth-github', '2.0.1' # rubocop:todo Gemfile/MissingFeatureCategory
-+gem 'omniauth-facebook', '>= 4.0.0' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'omniauth-github', '~> 2.0.1' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'omniauth-gitlab', '~> 4.0.0', path: 'vendor/gems/omniauth-gitlab' # See vendor/gems/omniauth-gitlab/README.md # rubocop:todo Gemfile/MissingFeatureCategory
gem 'omniauth-google-oauth2', '~> 1.1' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'omniauth-oauth2-generic', '~> 0.2.2' # rubocop:todo Gemfile/MissingFeatureCategory
-@@ -90,7 +90,7 @@ gem 'omniauth_openid_connect', '~> 0.6.1' # rubocop:to
+@@ -86,7 +86,7 @@ gem 'omniauth_openid_connect', '~> 0.6.1' # rubocop:to
gem 'omniauth_openid_connect', '~> 0.6.1' # rubocop:todo Gemfile/MissingFeatureCategory
# Locked until Ruby 3.0 upgrade since upgrading will pull in an updated net-smtp gem.
# See https://docs.gitlab.com/ee/development/emails.html#rationale.
@@ -29,7 +27,7 @@
gem 'omniauth-salesforce', '~> 1.0.5', path: 'vendor/gems/omniauth-salesforce' # See gem README.md # rubocop:todo Gemfile/MissingFeatureCategory
gem 'omniauth-atlassian-oauth2', '~> 0.2.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'rack-oauth2', '~> 1.21.3' # rubocop:todo Gemfile/MissingFeatureCategory
-@@ -185,7 +185,7 @@ gem 'google-cloud-storage', '~> 1.45.0' # rubocop:todo
+@@ -181,7 +181,7 @@ gem 'google-cloud-storage', '~> 1.45.0' # rubocop:todo
gem 'google-apis-storage_v1', '~> 0.29' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'google-cloud-storage', '~> 1.45.0' # rubocop:todo Gemfile/MissingFeatureCategory
# We need >= 0.11.1 because that's when match_glob support is added to list_objects
@@ -38,7 +36,7 @@
gem 'google-apis-compute_v1', '~> 0.57.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'google-apis-container_v1', '~> 0.43.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'google-apis-container_v1beta1', '~> 0.43.0' # rubocop:todo Gemfile/MissingFeatureCategory
-@@ -196,7 +196,7 @@ gem 'google-apis-androidpublisher_v3', '~> 0.34.0' # r
+@@ -192,7 +192,7 @@ gem 'google-apis-androidpublisher_v3', '~> 0.34.0' # r
gem 'google-apis-sqladmin_v1beta4', '~> 0.41.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'google-apis-androidpublisher_v3', '~> 0.34.0' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -47,19 +45,19 @@
gem 'google-cloud-artifact_registry-v1', '~> 0.11.0', feature_category: :shared
gem 'google-cloud-compute-v1', '~> 2.6.0', feature_category: :shared
-@@ -207,9 +207,9 @@ gem 'elasticsearch-api', '7.13.3' # rubocop:todo Gem
+@@ -203,9 +203,9 @@ gem 'elasticsearch-api', '7.13.3' # rubocop:todo Gem
gem 'elasticsearch-model', '~> 7.2' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'elasticsearch-rails', '~> 7.2', require: 'elasticsearch/rails/instrumentation' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'elasticsearch-api', '7.13.3' # rubocop:todo Gemfile/MissingFeatureCategory
--gem 'aws-sdk-core', '~> 3.191.6' # rubocop:todo Gemfile/MissingFeatureCategory
-+gem 'aws-sdk-core', '~> 3.191' # rubocop:todo Gemfile/MissingFeatureCategory
+-gem 'aws-sdk-core', '~> 3.194.2' # rubocop:todo Gemfile/MissingFeatureCategory
++gem 'aws-sdk-core', '~> 3.194' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'aws-sdk-cloudformation', '~> 1' # rubocop:todo Gemfile/MissingFeatureCategory
--gem 'aws-sdk-s3', '~> 1.146.1' # rubocop:todo Gemfile/MissingFeatureCategory
-+gem 'aws-sdk-s3', '~> 1.146' # rubocop:todo Gemfile/MissingFeatureCategory
+-gem 'aws-sdk-s3', '~> 1.149.1' # rubocop:todo Gemfile/MissingFeatureCategory
++gem 'aws-sdk-s3', '~> 1.149' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'faraday_middleware-aws-sigv4', '~>0.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'typhoeus', '~> 1.4.0' # Used with Elasticsearch to support http keep-alive connections # rubocop:todo Gemfile/MissingFeatureCategory
-@@ -240,12 +240,12 @@ gem 'diff_match_patch', '~> 0.1.0', path: 'vendor/gems
+@@ -236,12 +236,12 @@ gem 'diff_match_patch', '~> 0.1.0', path: 'vendor/gems
gem 'diff_match_patch', '~> 0.1.0', path: 'vendor/gems/diff_match_patch', feature_category: :team_planning
# Application server
@@ -74,7 +72,7 @@
gem 'sd_notify', '~> 0.1.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory
end
-@@ -256,7 +256,7 @@ gem 'acts-as-taggable-on', '~> 10.0' # rubocop:todo Ge
+@@ -252,7 +252,7 @@ gem 'acts-as-taggable-on', '~> 10.0' # rubocop:todo Ge
gem 'acts-as-taggable-on', '~> 10.0' # rubocop:todo Gemfile/MissingFeatureCategory
# Background jobs
@@ -83,7 +81,7 @@
gem 'sidekiq-cron', '~> 1.12.0', feature_category: :shared
gem 'gitlab-sidekiq-fetcher', path: 'vendor/gems/sidekiq-reliable-fetch', require: 'sidekiq-reliable-fetch' # rubocop:todo Gemfile/MissingFeatureCategory
-@@ -401,95 +401,10 @@ gem 'warning', '~> 1.3.0' # rubocop:todo Gemfile/Missi
+@@ -425,95 +425,10 @@ gem 'warning', '~> 1.3.0' # rubocop:todo Gemfile/Missi
gem 'warning', '~> 1.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -93,7 +91,7 @@
- gem 'solargraph', '~> 0.47.2', require: false # rubocop:todo Gemfile/MissingFeatureCategory
-
- gem 'letter_opener_web', '~> 2.0.0' # rubocop:todo Gemfile/MissingFeatureCategory
-- gem 'lookbook', '~> 2.2', '>= 2.2.2' # rubocop:todo Gemfile/MissingFeatureCategory
+- gem 'lookbook', '~> 2.3' # rubocop:todo Gemfile/MissingFeatureCategory
-
- # Better errors handler
- gem 'better_errors', '~> 2.10.1' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -102,7 +100,7 @@
-
- gem 'listen', '~> 3.7' # rubocop:todo Gemfile/MissingFeatureCategory
-
-- gem 'ruby-lsp', "~> 0.14.6", require: false, feature_category: :tooling
+- gem 'ruby-lsp', "~> 0.16.6", require: false, feature_category: :tooling
-
- gem 'ruby-lsp-rails', "~> 0.3.3", feature_category: :tooling
-
@@ -132,7 +130,7 @@
- gem 'spring-commands-rspec', '~> 1.0.4' # rubocop:todo Gemfile/MissingFeatureCategory
-
- gem 'gitlab-styles', '~> 11.0.0', feature_category: :tooling
-- gem 'haml_lint', '~> 0.53', feature_category: :tooling
+- gem 'haml_lint', '~> 0.57', feature_category: :tooling
-
- gem 'bundler-audit', '~> 0.9.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory
-
@@ -179,7 +177,7 @@
# Gems required in omnibus-gitlab pipeline
group :development, :test, :omnibus do
gem 'license_finder', '~> 7.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory
-@@ -501,36 +416,6 @@ end
+@@ -525,36 +440,6 @@ end
gem 'gitlab-rspec_flaky', path: 'gems/gitlab-rspec_flaky', feature_category: :tooling
end
@@ -202,7 +200,7 @@
- gem 'webmock', '~> 3.23.0', feature_category: :shared
- gem 'rails-controller-testing' # rubocop:todo Gemfile/MissingFeatureCategory
- gem 'concurrent-ruby', '~> 1.1' # rubocop:todo Gemfile/MissingFeatureCategory
-- gem 'test-prof', '~> 1.3.2', feature_category: :tooling
+- gem 'test-prof', '~> 1.3.3', feature_category: :tooling
- gem 'rspec_junit_formatter' # rubocop:todo Gemfile/MissingFeatureCategory
- gem 'guard-rspec' # rubocop:todo Gemfile/MissingFeatureCategory
- gem 'axe-core-rspec', '~> 4.9.0', feature_category: :tooling
@@ -210,22 +208,13 @@
- # Moved in `test` because https://gitlab.com/gitlab-org/gitlab/-/issues/217527
- gem 'derailed_benchmarks', require: false # rubocop:todo Gemfile/MissingFeatureCategory
-
-- gem 'gitlab_quality-test_tooling', '~> 1.21.1', require: false, feature_category: :tooling
+- gem 'gitlab_quality-test_tooling', '~> 1.24.0', require: false, feature_category: :tooling
-end
-
gem 'octokit', '~> 8.1', feature_category: :importers
gem 'gitlab-mail_room', '~> 0.0.24', require: 'mail_room', feature_category: :shared
-@@ -568,7 +453,7 @@ gem 'kas-grpc', '~> 0.4.0', feature_category: :deploym
- # KAS GRPC protocol definitions
- gem 'kas-grpc', '~> 0.4.0', feature_category: :deployment_management
-
--gem 'grpc', '~> 1.60.0' # rubocop:todo Gemfile/MissingFeatureCategory
-+gem 'grpc', '~> 1.60' # rubocop:todo Gemfile/MissingFeatureCategory
-
- gem 'google-protobuf', '~> 3.25', '>= 3.25.3' # rubocop:todo Gemfile/MissingFeatureCategory
-
-@@ -589,7 +474,7 @@ gem 'gitlab-net-dns', '~> 0.9.2' # rubocop:todo Gemfil
+@@ -613,7 +498,7 @@ gem 'gitlab-net-dns', '~> 0.9.2' # rubocop:todo Gemfil
gem 'gitlab-net-dns', '~> 0.9.2' # rubocop:todo Gemfile/MissingFeatureCategory
# Countries list
@@ -234,7 +223,7 @@
gem 'retriable', '~> 3.1.2' # rubocop:todo Gemfile/MissingFeatureCategory
-@@ -655,6 +540,7 @@ gem 'telesignenterprise', '~> 2.2' # rubocop:todo Gemf
+@@ -679,6 +564,7 @@ gem 'telesignenterprise', '~> 2.2' # rubocop:todo Gemf
gem 'telesignenterprise', '~> 2.2' # rubocop:todo Gemfile/MissingFeatureCategory
# BufferedIO patch
@@ -242,7 +231,7 @@
# Updating this version will require updating scripts/allowed_warnings.txt
gem 'net-protocol', '~> 0.1.3' # rubocop:todo Gemfile/MissingFeatureCategory
# Lock this until we make DNS rebinding work with the updated net-http:
-@@ -662,5 +548,11 @@ gem 'duo_api', '~> 1.3' # rubocop:todo Gemfile/Missing
+@@ -686,5 +572,11 @@ gem 'duo_api', '~> 1.3' # rubocop:todo Gemfile/Missing
gem 'net-http', '= 0.1.1' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'duo_api', '~> 1.3' # rubocop:todo Gemfile/MissingFeatureCategory
diff --git a/www/gitlab/files/patch-config_gitlab.yml.example b/www/gitlab/files/patch-config_gitlab.yml.example
index 45a8c89d5209..15a9fb52c93c 100644
--- a/www/gitlab/files/patch-config_gitlab.yml.example
+++ b/www/gitlab/files/patch-config_gitlab.yml.example
@@ -1,4 +1,4 @@
---- config/gitlab.yml.example.orig 2024-04-17 11:47:15 UTC
+--- config/gitlab.yml.example.orig 2024-05-15 08:00:50 UTC
+++ config/gitlab.yml.example
@@ -463,7 +463,7 @@ production: &base
## GitLab Pages
@@ -22,7 +22,7 @@
# File that contains the shared secret key for verifying access for gitlab-pages.
# Default is '.gitlab_pages_secret' relative to Rails.root (i.e. root of the GitLab app).
-@@ -1209,13 +1209,13 @@ production: &base
+@@ -1200,13 +1200,13 @@ production: &base
repositories:
storages: # You must have at least a `default` storage path.
default:
@@ -38,7 +38,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
-@@ -1250,12 +1250,12 @@ production: &base
+@@ -1241,12 +1241,12 @@ production: &base
## GitLab Shell settings
gitlab_shell:
@@ -54,7 +54,7 @@
# Git over HTTP
upload_pack: true
-@@ -1270,13 +1270,13 @@ production: &base
+@@ -1261,13 +1261,13 @@ 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).
@@ -70,7 +70,7 @@
# The URL to the external KAS API (used by the Kubernetes agents)
# external_url: wss://kas.example.com
-@@ -1300,13 +1300,13 @@ production: &base
+@@ -1291,13 +1291,13 @@ production: &base
## GitLab Elasticsearch settings
elasticsearch:
@@ -86,7 +86,7 @@
## Webpack settings
# If enabled, this will tell rails to serve frontend assets from the webpack-dev-server running
-@@ -1327,18 +1327,18 @@ production: &base
+@@ -1318,18 +1318,18 @@ production: &base
# Sidekiq exporter is a dedicated Prometheus metrics server optionally running alongside Sidekiq.
sidekiq_exporter:
@@ -112,7 +112,7 @@
# Web exporter is a dedicated Prometheus metrics server optionally running alongside Puma.
web_exporter:
-@@ -1565,13 +1565,13 @@ test:
+@@ -1556,13 +1556,13 @@ test:
gitaly_address: unix:tmp/tests/gitaly/praefect.socket
gitaly:
diff --git a/www/gitlab/pkg-message b/www/gitlab/pkg-message
index 039c61ef5679..edbd599c11e6 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.fechner.net/mfechner/Gitlab-docu/blob/master/install/16.10-freebsd.md
+https://gitlab.fechner.net/mfechner/Gitlab-docu/blob/master/install/17.0-freebsd.md
EOM
type: install
}
@@ -20,7 +20,7 @@ EOM
If you just installed an major upgrade of GitLab, for example you
switched from 14.5.x to 14.6.x, please follow the instructions in the guide at:
-https://gitlab.fechner.net/mfechner/Gitlab-docu/blob/master/update/16.10-16.11-freebsd.md
+https://gitlab.fechner.net/mfechner/Gitlab-docu/blob/master/update/16.11-17.0-freebsd.md
If you just installed an minor upgrade of GitLab please follow
the instructions in the guide at:
diff --git a/www/glpi/Makefile b/www/glpi/Makefile
index 7aa869f641ba..1d47a1ea29cf 100644
--- a/www/glpi/Makefile
+++ b/www/glpi/Makefile
@@ -1,5 +1,6 @@
PORTNAME= glpi
-PORTVERSION= 10.0.14
+PORTVERSION= 10.0.15
+PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= www
MASTER_SITES= https://github.com/glpi-project/glpi/releases/download/${PORTVERSION}/
diff --git a/www/glpi/distinfo b/www/glpi/distinfo
index 0b85cf397454..729d25574dea 100644
--- a/www/glpi/distinfo
+++ b/www/glpi/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1711956961
-SHA256 (glpi-10.0.14.tgz) = 69c7503c453a85ef47b47cbf08d3ebe8cb8bfe0d45f6aeb32d58c10321e911f5
-SIZE (glpi-10.0.14.tgz) = 59541870
+TIMESTAMP = 1714325306
+SHA256 (glpi-10.0.15.tgz) = 8ce94c1403c1143a5b503f18f7b7b9a5d29e83489fc81cc7287b719df0b97236
+SIZE (glpi-10.0.15.tgz) = 59757265
diff --git a/www/glpi/pkg-plist b/www/glpi/pkg-plist
index 2833fd3d9738..f8fefb667c40 100644
--- a/www/glpi/pkg-plist
+++ b/www/glpi/pkg-plist
@@ -711,6 +711,7 @@
%%WWWDIR%%/front/item_device.common.form.php
%%WWWDIR%%/front/item_device.php
%%WWWDIR%%/front/item_devicebattery.form.php
+%%WWWDIR%%/front/item_devicecamera.form.php
%%WWWDIR%%/front/item_devicecase.form.php
%%WWWDIR%%/front/item_devicecontrol.form.php
%%WWWDIR%%/front/item_devicedrive.form.php
@@ -1187,6 +1188,8 @@
%%WWWDIR%%/install/migrations/update_10.0.12_to_10.0.13.php
%%WWWDIR%%/install/migrations/update_10.0.12_to_10.0.13/configs.php
%%WWWDIR%%/install/migrations/update_10.0.12_to_10.0.13/location.php
+%%WWWDIR%%/install/migrations/update_10.0.14_to_10.0.15.php
+%%WWWDIR%%/install/migrations/update_10.0.14_to_10.0.15/user.php
%%WWWDIR%%/install/migrations/update_10.0.1_to_10.0.2.php
%%WWWDIR%%/install/migrations/update_10.0.1_to_10.0.2/agent.php
%%WWWDIR%%/install/migrations/update_10.0.1_to_10.0.2/configs.php
@@ -1203,6 +1206,7 @@
%%WWWDIR%%/install/migrations/update_10.0.3_to_10.0.4/inventory.php
%%WWWDIR%%/install/migrations/update_10.0.3_to_10.0.4/ticket.php
%%WWWDIR%%/install/migrations/update_10.0.4_to_10.0.5.php
+%%WWWDIR%%/install/migrations/update_10.0.4_to_10.0.5/items_disks.php
%%WWWDIR%%/install/migrations/update_10.0.5_to_10.0.6.php
%%WWWDIR%%/install/migrations/update_10.0.5_to_10.0.6/appliance.php
%%WWWDIR%%/install/migrations/update_10.0.5_to_10.0.6/blacklist.php
@@ -1360,6 +1364,7 @@
%%WWWDIR%%/install/mysql/glpi-10.0.11-empty.sql
%%WWWDIR%%/install/mysql/glpi-10.0.12-empty.sql
%%WWWDIR%%/install/mysql/glpi-10.0.13-empty.sql
+%%WWWDIR%%/install/mysql/glpi-10.0.14-empty.sql
%%WWWDIR%%/install/mysql/glpi-10.0.2-empty.sql
%%WWWDIR%%/install/mysql/glpi-10.0.3-empty.sql
%%WWWDIR%%/install/mysql/glpi-10.0.4-empty.sql
@@ -2544,49 +2549,93 @@
%%WWWDIR%%/public/lib/tinymce.js.map
%%WWWDIR%%/public/lib/tinymce.min.js
%%WWWDIR%%/public/lib/tinymce/skins/content/dark/content.css
+%%WWWDIR%%/public/lib/tinymce/skins/content/dark/content.js
%%WWWDIR%%/public/lib/tinymce/skins/content/dark/content.min.css
+%%WWWDIR%%/public/lib/tinymce/skins/content/dark/content.min.js
%%WWWDIR%%/public/lib/tinymce/skins/content/default/content.css
+%%WWWDIR%%/public/lib/tinymce/skins/content/default/content.js
%%WWWDIR%%/public/lib/tinymce/skins/content/default/content.min.css
+%%WWWDIR%%/public/lib/tinymce/skins/content/default/content.min.js
%%WWWDIR%%/public/lib/tinymce/skins/content/document/content.css
+%%WWWDIR%%/public/lib/tinymce/skins/content/document/content.js
%%WWWDIR%%/public/lib/tinymce/skins/content/document/content.min.css
+%%WWWDIR%%/public/lib/tinymce/skins/content/document/content.min.js
%%WWWDIR%%/public/lib/tinymce/skins/content/tinymce-5-dark/content.css
+%%WWWDIR%%/public/lib/tinymce/skins/content/tinymce-5-dark/content.js
%%WWWDIR%%/public/lib/tinymce/skins/content/tinymce-5-dark/content.min.css
+%%WWWDIR%%/public/lib/tinymce/skins/content/tinymce-5-dark/content.min.js
%%WWWDIR%%/public/lib/tinymce/skins/content/tinymce-5/content.css
+%%WWWDIR%%/public/lib/tinymce/skins/content/tinymce-5/content.js
%%WWWDIR%%/public/lib/tinymce/skins/content/tinymce-5/content.min.css
+%%WWWDIR%%/public/lib/tinymce/skins/content/tinymce-5/content.min.js
%%WWWDIR%%/public/lib/tinymce/skins/content/writer/content.css
+%%WWWDIR%%/public/lib/tinymce/skins/content/writer/content.js
%%WWWDIR%%/public/lib/tinymce/skins/content/writer/content.min.css
+%%WWWDIR%%/public/lib/tinymce/skins/content/writer/content.min.js
%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide-dark/content.css
%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide-dark/content.inline.css
+%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide-dark/content.inline.js
%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide-dark/content.inline.min.css
+%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide-dark/content.inline.min.js
+%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide-dark/content.js
%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide-dark/content.min.css
+%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide-dark/content.min.js
%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide-dark/skin.css
+%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide-dark/skin.js
%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide-dark/skin.min.css
+%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide-dark/skin.min.js
%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide-dark/skin.shadowdom.css
+%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide-dark/skin.shadowdom.js
%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css
+%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.js
%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide/content.css
%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide/content.inline.css
+%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide/content.inline.js
%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide/content.inline.min.css
+%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide/content.inline.min.js
+%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide/content.js
%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide/content.min.css
+%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide/content.min.js
%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide/skin.css
+%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide/skin.js
%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide/skin.min.css
+%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide/skin.min.js
%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide/skin.shadowdom.css
+%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide/skin.shadowdom.js
%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide/skin.shadowdom.min.css
+%%WWWDIR%%/public/lib/tinymce/skins/ui/oxide/skin.shadowdom.min.js
%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5-dark/content.css
%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5-dark/content.inline.css
+%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5-dark/content.inline.js
%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css
+%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5-dark/content.inline.min.js
+%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5-dark/content.js
%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5-dark/content.min.css
+%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5-dark/content.min.js
%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5-dark/skin.css
+%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5-dark/skin.js
%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5-dark/skin.min.css
+%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5-dark/skin.min.js
%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.css
+%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.js
%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.css
+%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.js
%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5/content.css
%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5/content.inline.css
+%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5/content.inline.js
%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5/content.inline.min.css
+%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5/content.inline.min.js
+%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5/content.js
%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5/content.min.css
+%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5/content.min.js
%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5/skin.css
+%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5/skin.js
%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5/skin.min.css
+%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5/skin.min.js
%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5/skin.shadowdom.css
+%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5/skin.shadowdom.js
%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.css
+%%WWWDIR%%/public/lib/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.js
%%WWWDIR%%/resources/.htaccess
%%WWWDIR%%/resources/Rules/RuleAsset.xml
%%WWWDIR%%/resources/Rules/RuleDictionnaryOperatingSystem.xml
@@ -3099,6 +3148,7 @@
%%WWWDIR%%/src/Lockedfield.php
%%WWWDIR%%/src/Log.php
%%WWWDIR%%/src/Mail/Protocol/ProtocolInterface.php
+%%WWWDIR%%/src/Mail/SMTP/OAuthTokenProvider.php
%%WWWDIR%%/src/Mail/SMTP/OauthConfig.php
%%WWWDIR%%/src/Mail/SMTP/OauthProvider/Azure.php
%%WWWDIR%%/src/Mail/SMTP/OauthProvider/Google.php
@@ -6617,7 +6667,7 @@
%%WWWDIR%%/vendor/webmozart/assert/src/Assert.php
%%WWWDIR%%/vendor/webmozart/assert/src/InvalidArgumentException.php
%%WWWDIR%%/vendor/webmozart/assert/src/Mixin.php
-%%WWWDIR%%/version/10.0.14
+%%WWWDIR%%/version/10.0.15
@dir %%WWWDIR%%/ajax
@dir %%WWWDIR%%/bin
@dir %%WWWDIR%%/config
@@ -6694,6 +6744,7 @@
@dir %%WWWDIR%%/install/migrations/update_10.0.10_to_10.0.11
@dir %%WWWDIR%%/install/migrations/update_10.0.11_to_10.0.12
@dir %%WWWDIR%%/install/migrations/update_10.0.12_to_10.0.13
+@dir %%WWWDIR%%/install/migrations/update_10.0.14_to_10.0.15
@dir %%WWWDIR%%/install/migrations/update_10.0.1_to_10.0.2
@dir %%WWWDIR%%/install/migrations/update_10.0.2_to_10.0.3
@dir %%WWWDIR%%/install/migrations/update_10.0.3_to_10.0.4
diff --git a/www/go-www/Makefile b/www/go-www/Makefile
index 1d9690005ed4..93f54e5a2d38 100644
--- a/www/go-www/Makefile
+++ b/www/go-www/Makefile
@@ -1,6 +1,6 @@
PORTNAME= www
PORTVERSION= 2.0.0
-PORTREVISION= 18
+PORTREVISION= 19
CATEGORIES= www
PKGNAMEPREFIX= go-
diff --git a/www/gobuffalo/Makefile b/www/gobuffalo/Makefile
index abe8caf3d0c5..1db082ec3b37 100644
--- a/www/gobuffalo/Makefile
+++ b/www/gobuffalo/Makefile
@@ -1,7 +1,7 @@
PORTNAME= gobuffalo
PORTVERSION= 0.16.27
DISTVERSIONPREFIX= v
-PORTREVISION= 18
+PORTREVISION= 19
CATEGORIES= www
MAINTAINER= dmgk@FreeBSD.org
diff --git a/www/gohugo/Makefile b/www/gohugo/Makefile
index 6a4a7efd8047..13a3f691fdab 100644
--- a/www/gohugo/Makefile
+++ b/www/gohugo/Makefile
@@ -1,7 +1,7 @@
PORTNAME= hugo
DISTVERSIONPREFIX= v
-DISTVERSION= 0.123.8
-PORTREVISION= 2
+DISTVERSION= 0.125.6
+PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= www
PKGNAMEPREFIX= go
diff --git a/www/gohugo/distinfo b/www/gohugo/distinfo
index 07eb84091818..493718533275 100644
--- a/www/gohugo/distinfo
+++ b/www/gohugo/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1709855822
-SHA256 (go/www_gohugo/hugo-v0.123.8/v0.123.8.mod) = 81a7eee5d34f8455314128b97011d64fa566c1be5e9b6f23a2ccee6f0c3c81f8
-SIZE (go/www_gohugo/hugo-v0.123.8/v0.123.8.mod) = 7313
-SHA256 (go/www_gohugo/hugo-v0.123.8/v0.123.8.zip) = 58c69812e6e44128e4c86f0159a66ebc8a4c5a123fc9923addb75358c978c2e6
-SIZE (go/www_gohugo/hugo-v0.123.8/v0.123.8.zip) = 6547715
+TIMESTAMP = 1715012845
+SHA256 (go/www_gohugo/hugo-v0.125.6/v0.125.6.mod) = 9bba37eddf4a9ddd4d29594e94cf4a12f1655295f1f693227abdafda6772cb90
+SIZE (go/www_gohugo/hugo-v0.125.6/v0.125.6.mod) = 7311
+SHA256 (go/www_gohugo/hugo-v0.125.6/v0.125.6.zip) = 8b3159e0a3d562cad5e45e96cf7993cc931e47be065c1858266592b659d76d50
+SIZE (go/www_gohugo/hugo-v0.125.6/v0.125.6.zip) = 6571800
diff --git a/www/goose/Makefile b/www/goose/Makefile
index ecbbc3f920ed..256c95c3f244 100644
--- a/www/goose/Makefile
+++ b/www/goose/Makefile
@@ -9,6 +9,10 @@ MAINTAINER= ports@FreeBSD.org
COMMENT= Command line Google search utility
WWW= https://goose-search.sourceforge.net/
+BROKEN= Relies on Google API serivce from 2003
+DEPRECATED= Abandonware, last update in 2003 and upstream is dead
+EXPIRATION_DATE=2024-05-31
+
RUN_DEPENDS= p5-SOAP-Lite>=0:net/p5-SOAP-Lite \
p5-HTML-Tree>=0:www/p5-HTML-Tree \
p5-HTML-Format>=0:textproc/p5-HTML-Format \
diff --git a/www/gotty/Makefile b/www/gotty/Makefile
index 26b8755c335e..08d5c29ee3b8 100644
--- a/www/gotty/Makefile
+++ b/www/gotty/Makefile
@@ -1,7 +1,7 @@
PORTNAME= gotty
PORTVERSION= 1.5.0
DISTVERSIONPREFIX= v
-PORTREVISION= 12
+PORTREVISION= 13
CATEGORIES= www net
MAINTAINER= ehaupt@FreeBSD.org
diff --git a/www/grafana/Makefile b/www/grafana/Makefile
index 5a4d3578c094..3c412d76d568 100644
--- a/www/grafana/Makefile
+++ b/www/grafana/Makefile
@@ -1,7 +1,7 @@
PORTNAME= grafana
DISTVERSIONPREFIX= v
DISTVERSION= 10.4.1
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= www
MASTER_SITES= https://dl.grafana.com/oss/release/:public \
https://raw.githubusercontent.com/${GH_ACCOUNT}/${GH_PROJECT}/${DISTVERSIONFULL}/:gomod
diff --git a/www/grafana9/Makefile b/www/grafana9/Makefile
index a2cfc74cdfbf..f9311a6bced1 100644
--- a/www/grafana9/Makefile
+++ b/www/grafana9/Makefile
@@ -1,7 +1,7 @@
PORTNAME= grafana
DISTVERSIONPREFIX= v
DISTVERSION= 9.5.17
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= www
MASTER_SITES= https://dl.grafana.com/oss/release/:public \
https://raw.githubusercontent.com/${GH_ACCOUNT}/${GH_PROJECT}/${DISTVERSIONFULL}/:gomod
diff --git a/www/gurl/Makefile b/www/gurl/Makefile
index d96b50321db5..7cdfadf3643c 100644
--- a/www/gurl/Makefile
+++ b/www/gurl/Makefile
@@ -1,7 +1,7 @@
PORTNAME= gurl
DISTVERSIONPREFIX= v
DISTVERSION= 0.2.3
-PORTREVISION= 18
+PORTREVISION= 19
CATEGORIES= www
MAINTAINER= dch@FreeBSD.org
diff --git a/www/h2o/Makefile b/www/h2o/Makefile
index 80e0fa4ae240..9c8001bcca77 100644
--- a/www/h2o/Makefile
+++ b/www/h2o/Makefile
@@ -1,6 +1,6 @@
PORTNAME= h2o
DISTVERSIONPREFIX= v
-DISTVERSION= 2.3.0-dev.20240314
+DISTVERSION= 2.3.0-dev.20240411
CATEGORIES= www
MAINTAINER= dch@FreeBSD.org
@@ -13,23 +13,24 @@ LICENSE_COMB= multi
BROKEN_armv6= fails to compile: asm_arm.inc:139:36: '.syntax divided' arm assembly not supported
BROKEN_armv7= fails to compile: asm_arm.inc:139:36: '.syntax divided' arm assembly not supported
-BUILD_DEPENDS= rubygem-rake>=0:devel/rubygem-rake
-LIB_DEPENDS= libuv.so:devel/libuv
+LIB_DEPENDS= libhiredis.so:databases/hiredis \
+ libyaml.so:textproc/libyaml
-USES= cmake:noninja compiler:c11 cpe perl5 pkgconfig shebangfix ssl
+USES= cmake compiler:c11 cpe pathfix perl5 pkgconfig shebangfix ssl
CPE_VENDOR= dena
USE_GITHUB= yes
-GH_TAGNAME= 7545f5f
-
-USE_LDCONFIG= yes
+GH_TAGNAME= 222b36d
+USE_LDCONFIG= YES
USE_RC_SUBR= ${PORTNAME}
SHEBANG_FILES= share/h2o/start_server
-CMAKE_ARGS+= -DBUILD_SHARED_LIBS=OFF
+CMAKE_ON= BUILD_SHARED_LIBS
+
+EXTRACT_AFTER_ARGS= --exclude deps/hiredis --exclude deps/yaml/include
SUB_FILES= ${PORTNAME} ${PORTNAME}.conf.sample
-SUB_LIST+= H2O_GROUP=${H2O_GROUP} \
+SUB_LIST= H2O_GROUP=${H2O_GROUP} \
H2O_LOGDIR=${H2O_LOGDIR} \
H2O_USER=${H2O_USER}
@@ -49,26 +50,28 @@ OPTIONS_DEFINE= DOCS MRUBY
OPTIONS_DEFAULT= MRUBY
OPTIONS_SUB= yes
MRUBY_DESC= Build with embedded mruby handler support
-MRUBY_USES= bison ruby:build
+MRUBY_BUILD_DEPENDS+= rubygem-rake>=0:devel/rubygem-rake
+MRUBY_USES= bison libtool ruby:build
MRUBY_CMAKE_BOOL= WITH_MRUBY
-.include <bsd.port.pre.mk>
+.include <bsd.port.options.mk>
-.if ${ARCH} == i386
-CMAKE_ARGS+= -DWITH_FUSION=OFF
+.if ${ARCH} == amd64 && defined(CPUTYPE) && ${MACHINE_CPU:Mavx2}
+EXTRA_PATCHES= ${PATCHDIR}/extra-patch-cputype-defined
+CMAKE_ON+= WITH_FUSION
+.else
+CMAKE_OFF+= WITH_FUSION
.endif
-.include <bsd.port.options.mk>
-
post-install:
${MKDIR} ${STAGEDIR}${ETCDIR} \
${STAGEDIR}${H2O_LOGDIR}
- ${INSTALL_DATA} \
- ${WRKDIR}/${PORTNAME}.conf.sample \
+ ${INSTALL_DATA} ${WRKDIR}/${PORTNAME}.conf.sample \
${STAGEDIR}${ETCDIR}/${PORTNAME}.conf.sample
post-install-DOCS-on:
${MKDIR} ${STAGEDIR}${DOCSDIR}
- ${INSTALL_DATA} ${WRKSRC}/README.md ${STAGEDIR}${DOCSDIR}
+ ${INSTALL_DATA} ${WRKSRC}/README.md \
+ ${STAGEDIR}${DOCSDIR}
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/www/h2o/distinfo b/www/h2o/distinfo
index 5aa371be9f97..2d4da3317841 100644
--- a/www/h2o/distinfo
+++ b/www/h2o/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1711233165
-SHA256 (h2o-h2o-v2.3.0-dev.20240314-7545f5f_GH0.tar.gz) = e7fd874375b735e30eeea96539f37db5f10de64d797ea8b5269d9f1969784f68
-SIZE (h2o-h2o-v2.3.0-dev.20240314-7545f5f_GH0.tar.gz) = 30755375
+TIMESTAMP = 1714564834
+SHA256 (h2o-h2o-v2.3.0-dev.20240411-222b36d_GH0.tar.gz) = dc8db25dab7d009718c2309f5bfaa1c666900a6d574324170d68f39a26b2977b
+SIZE (h2o-h2o-v2.3.0-dev.20240411-222b36d_GH0.tar.gz) = 30763238
diff --git a/www/h2o/files/extra-patch-cputype-defined b/www/h2o/files/extra-patch-cputype-defined
new file mode 100644
index 000000000000..519c98f2a50a
--- /dev/null
+++ b/www/h2o/files/extra-patch-cputype-defined
@@ -0,0 +1,11 @@
+--- CMakeLists.txt.orig 2024-03-27 17:04:02 UTC
++++ CMakeLists.txt
+@@ -776,7 +776,7 @@ IF (WITH_FUSION)
+ IF (WITH_FUSION)
+ SET(STANDALONE_COMPILE_FLAGS "${STANDALONE_COMPILE_FLAGS} -DH2O_USE_FUSION=1")
+ LIST(APPEND STANDALONE_SOURCE_FILES deps/picotls/lib/fusion.c)
+- SET_SOURCE_FILES_PROPERTIES(deps/picotls/lib/fusion.c PROPERTIES COMPILE_FLAGS "-mavx2 -maes -mpclmul -mvaes -mvpclmulqdq")
++ SET_SOURCE_FILES_PROPERTIES(deps/picotls/lib/fusion.c PROPERTIES COMPILE_FLAGS "")
+ ENDIF ()
+ IF (WITH_KTLS)
+ SET(STANDALONE_COMPILE_FLAGS "${STANDALONE_COMPILE_FLAGS} -DH2O_USE_KTLS=1")
diff --git a/www/h2o/files/patch-CMakeLists.txt b/www/h2o/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..42fe23553092
--- /dev/null
+++ b/www/h2o/files/patch-CMakeLists.txt
@@ -0,0 +1,98 @@
+--- CMakeLists.txt.orig 2024-03-14 06:01:10 UTC
++++ CMakeLists.txt
+@@ -174,7 +174,6 @@ INCLUDE_DIRECTORIES(
+ deps/cloexec
+ deps/brotli/c/include
+ deps/golombset
+- deps/hiredis
+ deps/libgkc
+ deps/libyrmcds
+ deps/klib
+@@ -186,7 +185,6 @@ INCLUDE_DIRECTORIES(
+ deps/picotls/deps/micro-ecc
+ deps/picotls/include
+ deps/quicly/include
+- deps/yaml/include
+ deps/yoml
+ ${CMAKE_CURRENT_BINARY_DIR})
+
+@@ -257,6 +255,23 @@ ENDIF (PKG_CONFIG_FOUND)
+ ENDIF (LIBCAP_FOUND)
+ ENDIF (PKG_CONFIG_FOUND)
+
++IF (PKG_CONFIG_FOUND)
++ PKG_CHECK_MODULES(HIREDIS hiredis)
++ IF (HIREDIS_FOUND)
++ INCLUDE_DIRECTORIES(${HIREDIS_INCLUDE_DIRS})
++ LINK_DIRECTORIES(${HIREDIS_LIBRARY_DIRS})
++ ENDIF (HIREDIS_FOUND)
++ENDIF (PKG_CONFIG_FOUND)
++
++IF (PKG_CONFIG_FOUND)
++ PKG_CHECK_MODULES(LIBYAML yaml-0.1)
++ IF (LIBYAML_FOUND)
++ INCLUDE_DIRECTORIES(${LIBYAML_INCLUDE_DIRS})
++ LINK_DIRECTORIES(${LIBYAML_LIBRARY_DIRS})
++ ENDIF (LIBYAML_FOUND)
++ENDIF (PKG_CONFIG_FOUND)
++
++
+ SET(CC_WARNING_FLAGS "-Wall -Wno-unused-value -Wno-unused-function -Wno-nullability-completeness -Wno-expansion-to-defined -Werror=implicit-function-declaration -Werror=incompatible-pointer-types")
+
+ IF ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU")
+@@ -269,7 +284,7 @@ ENDIF ()
+ ENDIF ()
+
+ # setup compile flags
+-SET(CMAKE_C_FLAGS "-g3 ${CC_WARNING_FLAGS} ${CMAKE_C_FLAGS} -DH2O_ROOT=\"${CMAKE_INSTALL_PREFIX}\" -DH2O_CONFIG_PATH=\"${CMAKE_INSTALL_FULL_SYSCONFDIR}/h2o.conf\"")
++SET(CMAKE_C_FLAGS "${CC_WARNING_FLAGS} ${CMAKE_C_FLAGS} -DH2O_ROOT=\"${CMAKE_INSTALL_PREFIX}\" -DH2O_CONFIG_PATH=\"${CMAKE_INSTALL_FULL_SYSCONFDIR}/h2o.conf\"")
+ IF (WITH_DTRACE)
+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPICOTLS_USE_DTRACE=1 -DQUICLY_USE_DTRACE=1 -DH2O_USE_DTRACE=1")
+ ENDIF ()
+@@ -339,11 +354,6 @@ SET(LIB_SOURCE_FILES
+
+ SET(LIB_SOURCE_FILES
+ deps/cloexec/cloexec.c
+- deps/hiredis/async.c
+- deps/hiredis/hiredis.c
+- deps/hiredis/net.c
+- deps/hiredis/read.c
+- deps/hiredis/sds.c
+ deps/libgkc/gkc.c
+ deps/libyrmcds/close.c
+ deps/libyrmcds/connect.c
+@@ -497,7 +507,6 @@ SET(UNIT_TEST_SOURCE_FILES
+
+ SET(UNIT_TEST_SOURCE_FILES
+ ${LIB_SOURCE_FILES}
+- ${LIBYAML_SOURCE_FILES}
+ ${BROTLI_SOURCE_FILES}
+ deps/picotest/picotest.c
+ t/00unit/test.c
+@@ -710,6 +719,10 @@ TARGET_LINK_LIBRARIES(h2o-httpclient libh2o-evloop ${E
+ COMPILE_FLAGS "-DH2O_USE_LIBUV=0")
+ TARGET_LINK_LIBRARIES(h2o-httpclient libh2o-evloop ${EXTRA_LIBS})
+
++IF (HIREDIS_FOUND)
++ TARGET_LINK_LIBRARIES(h2o-httpclient ${HIREDIS_LIBRARIES})
++ENDIF (HIREDIS_FOUND)
++
+ SET_TARGET_PROPERTIES(examples-socket-client-evloop PROPERTIES
+ COMPILE_FLAGS "-DH2O_USE_LIBUV=0"
+ EXCLUDE_FROM_ALL 1)
+@@ -788,6 +801,15 @@ TARGET_LINK_LIBRARIES(h2o ${OPENSSL_LIBRARIES} ${CMAKE
+ SET_TARGET_PROPERTIES(h2o PROPERTIES COMPILE_FLAGS "${STANDALONE_COMPILE_FLAGS}")
+ TARGET_INCLUDE_DIRECTORIES(h2o PUBLIC ${OPENSSL_INCLUDE_DIR})
+ TARGET_LINK_LIBRARIES(h2o ${OPENSSL_LIBRARIES} ${CMAKE_DL_LIBS})
++IF (HIREDIS_FOUND)
++ TARGET_INCLUDE_DIRECTORIES(h2o PUBLIC ${HIREDIS_INCLUDE_DIRS})
++ TARGET_LINK_LIBRARIES(h2o ${HIREDIS_LIBRARIES})
++ENDIF (HIREDIS_FOUND)
++
++IF (LIBYAML_FOUND)
++ TARGET_INCLUDE_DIRECTORIES(h2o PUBLIC ${LIBYXML_INCLUDE_DIRS})
++ TARGET_LINK_LIBRARIES(h2o ${LIBYAML_LIBRARIES})
++ENDIF (LIBYAML_FOUND)
+ IF (WITH_MRUBY)
+ TARGET_INCLUDE_DIRECTORIES(h2o BEFORE PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/deps/mruby/include ${CMAKE_CURRENT_SOURCE_DIR}/deps/mruby-input-stream/src)
+ # note: the paths need to be determined before libmruby.flags.mak is generated
diff --git a/www/h2o/files/patch-src_ssl.c b/www/h2o/files/patch-src_ssl.c
index 938c96e1e7ee..23ef45f0b28c 100644
--- a/www/h2o/files/patch-src_ssl.c
+++ b/www/h2o/files/patch-src_ssl.c
@@ -1,6 +1,6 @@
---- src/ssl.c.orig 2023-08-08 09:33:37 UTC
+--- src/ssl.c.orig 2024-03-14 06:01:10 UTC
+++ src/ssl.c
-@@ -1182,7 +1182,9 @@ void init_openssl(void)
+@@ -1185,7 +1185,9 @@ void init_openssl(void)
SSL_library_init();
OpenSSL_add_all_algorithms();
#if H2O_CAN_OSSL_ASYNC
diff --git a/www/h2o/pkg-plist b/www/h2o/pkg-plist
index d67651f52feb..b46446ec6e86 100644
--- a/www/h2o/pkg-plist
+++ b/www/h2o/pkg-plist
@@ -1,4 +1,3 @@
-@comment bin/h2o-httpclient
@dir(%%H2O_USER%%,%%H2O_GROUP%%,0750) %%H2O_LOGDIR%%
@sample %%ETCDIR%%/h2o.conf.sample
%%DATADIR%%/annotate-backtrace-symbols
@@ -126,6 +125,35 @@ include/h2o/token.h
include/h2o/url.h
include/h2o/version.h
include/h2o/websocket.h
+include/picotls.h
+include/picotls/asn1.h
+include/picotls/certificate_compression.h
+include/picotls/ffx.h
+include/picotls/fusion.h
+include/picotls/mbedtls.h
+include/picotls/minicrypto.h
+include/picotls/openssl.h
+include/picotls/pembase64.h
+include/picotls/ptlsbcrypt.h
+include/quicly.h
+include/quicly/cc.h
+include/quicly/cid.h
+include/quicly/constants.h
+include/quicly/defaults.h
+include/quicly/frame.h
+include/quicly/linklist.h
+include/quicly/local_cid.h
+include/quicly/loss.h
+include/quicly/maxsender.h
+include/quicly/pacer.h
+include/quicly/ranges.h
+include/quicly/rate.h
+include/quicly/recvstate.h
+include/quicly/remote_cid.h
+include/quicly/retire_cid.h
+include/quicly/sendstate.h
+include/quicly/sentmap.h
+include/quicly/streambuf.h
libdata/pkgconfig/libh2o-evloop.pc
libdata/pkgconfig/libh2o.pc
share/man/man5/h2o.conf.5.gz
diff --git a/www/hotcrp/Makefile b/www/hotcrp/Makefile
index 625638719171..2c68fa2bdafc 100644
--- a/www/hotcrp/Makefile
+++ b/www/hotcrp/Makefile
@@ -1,27 +1,24 @@
PORTNAME= hotcrp
-PORTVERSION= 2.102
-PORTREVISION= 18
+PORTVERSION= 3.0.0
CATEGORIES= www
-MASTER_SITES= http://www.read.seas.harvard.edu/~kohler/hotcrp/
+MASTER_SITES= ${WWW}
MAINTAINER= ports@FreeBSD.org
-COMMENT= Web based conference management software
+COMMENT= Web-based conference management software
WWW= https://www.read.seas.harvard.edu/~kohler/hotcrp/
-RUN_DEPENDS= pdftohtml:graphics/poppler-utils \
- zip:archivers/zip
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+RUN_DEPENDS= pdftohtml:graphics/poppler-utils
USES= php mysql:server
-USE_PHP= mysqli gd session ctype
+USE_PHP= ctype gd mysqli session zlib
NO_BUILD= yes
SUB_FILES= pkg-message
-LICENSE= MIT
-LICENSE_FILE= ${WRKSRC}/LICENSE
-
do-install:
- ${MKDIR} ${STAGEDIR}${WWWDIR}
- @cd ${WRKSRC} && ${COPYTREE_SHARE} . ${STAGEDIR}${WWWDIR}
+ cd ${WRKSRC} && ${COPYTREE_SHARE} . ${STAGEDIR}${WWWDIR}
.include <bsd.port.mk>
diff --git a/www/hotcrp/distinfo b/www/hotcrp/distinfo
index 0f47bb038199..8de017870f7d 100644
--- a/www/hotcrp/distinfo
+++ b/www/hotcrp/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1615566556
-SHA256 (hotcrp-2.102.tar.gz) = 09be01f2e427cb7f424871c619925e19db03e058b6de4b7321960e31c5e31eaf
-SIZE (hotcrp-2.102.tar.gz) = 1571868
+TIMESTAMP = 1710434900
+SHA256 (hotcrp-3.0.0.tar.gz) = 4cc2664677303a009e46fa60e06ee2c9e6d51192a2059af4b6d41aa60db9eb09
+SIZE (hotcrp-3.0.0.tar.gz) = 1983729
diff --git a/www/hotcrp/pkg-descr b/www/hotcrp/pkg-descr
index 479f78ac66a9..e9d444737d3c 100644
--- a/www/hotcrp/pkg-descr
+++ b/www/hotcrp/pkg-descr
@@ -1,2 +1,5 @@
HotCRP is conference management software: it accepts paper submissions
-and manages the review process.
+and manages the review process. Many conference management packages are
+available, including EasyChair. HotCRP is especially good at navigating
+from paper to paper, searching for papers, tagging papers, and managing
+complex submission and review policies.
diff --git a/www/hotcrp/pkg-plist b/www/hotcrp/pkg-plist
index 78a9a1830c81..12082db3fc2c 100644
--- a/www/hotcrp/pkg-plist
+++ b/www/hotcrp/pkg-plist
@@ -5,23 +5,30 @@
%%WWWDIR%%/README.md
%%WWWDIR%%/api.php
%%WWWDIR%%/assign.php
+%%WWWDIR%%/authorize.php
%%WWWDIR%%/autoassign.php
%%WWWDIR%%/batch/.htaccess
-%%WWWDIR%%/batch/addusers.php
+%%WWWDIR%%/batch/assign.php
+%%WWWDIR%%/batch/autoassign.php
+%%WWWDIR%%/batch/backupdb.php
%%WWWDIR%%/batch/checkinvariants.php
%%WWWDIR%%/batch/deletepapers.php
%%WWWDIR%%/batch/fixdelegation.php
%%WWWDIR%%/batch/killinactivedoc.php
+%%WWWDIR%%/batch/paperjson.php
+%%WWWDIR%%/batch/reviewcsv.php
%%WWWDIR%%/batch/s3test.php
%%WWWDIR%%/batch/s3transfer.php
%%WWWDIR%%/batch/s3verifyall.php
%%WWWDIR%%/batch/savepapers.php
+%%WWWDIR%%/batch/saveusers.php
+%%WWWDIR%%/batch/search.php
+%%WWWDIR%%/batch/settings.php
%%WWWDIR%%/batch/updatecontactdb.php
%%WWWDIR%%/bulkassign.php
%%WWWDIR%%/buzzer.php
%%WWWDIR%%/cacheable.php
%%WWWDIR%%/checkupdates.php
-%%WWWDIR%%/comment.php
%%WWWDIR%%/conf/.htaccess
%%WWWDIR%%/conflictassign.php
%%WWWDIR%%/deadlines.php
@@ -31,20 +38,29 @@
%%WWWDIR%%/etc/affiliationmatchers.json
%%WWWDIR%%/etc/apifunctions.json
%%WWWDIR%%/etc/assignmentparsers.json
-%%WWWDIR%%/etc/emojicodes.json
+%%WWWDIR%%/etc/autoassigners.json
+%%WWWDIR%%/etc/capabilityhandlers.json
+%%WWWDIR%%/etc/distoptions.php
%%WWWDIR%%/etc/formulafunctions.json
%%WWWDIR%%/etc/helptopics.json
+%%WWWDIR%%/etc/intrinsicoptions.json
%%WWWDIR%%/etc/listactions.json
%%WWWDIR%%/etc/mailkeywords.json
+%%WWWDIR%%/etc/mailtemplates.json
%%WWWDIR%%/etc/msgs.json
%%WWWDIR%%/etc/optiontypes.json
+%%WWWDIR%%/etc/pages.json
%%WWWDIR%%/etc/papercolumns.json
%%WWWDIR%%/etc/profilegroups.json
-%%WWWDIR%%/etc/reviewformlibrary.json
+%%WWWDIR%%/etc/reviewfieldlibrary.json
+%%WWWDIR%%/etc/reviewfieldtypes.json
+%%WWWDIR%%/etc/sample.pdf
%%WWWDIR%%/etc/searchkeywords.json
+%%WWWDIR%%/etc/settingdescriptions.md
%%WWWDIR%%/etc/settinggroups.json
-%%WWWDIR%%/etc/settings.json
-%%WWWDIR%%/etc/submissioneditgroups.json
+%%WWWDIR%%/etc/settinginfo.json
+%%WWWDIR%%/etc/submissionfieldlibrary.json
+%%WWWDIR%%/forgotpassword.php
%%WWWDIR%%/graph.php
%%WWWDIR%%/help.php
%%WWWDIR%%/images/.htaccess
@@ -67,11 +83,7 @@
%%WWWDIR%%/images/generic24.png
%%WWWDIR%%/images/genericf.png
%%WWWDIR%%/images/genericf24.png
-%%WWWDIR%%/images/headgrad.png
-%%WWWDIR%%/images/homegrad.png
%%WWWDIR%%/images/info45.png
-%%WWWDIR%%/images/next.png
-%%WWWDIR%%/images/override24.png
%%WWWDIR%%/images/pageresultsex.png
%%WWWDIR%%/images/pdf.png
%%WWWDIR%%/images/pdf24.png
@@ -85,12 +97,9 @@
%%WWWDIR%%/images/postscript24.png
%%WWWDIR%%/images/postscriptf.png
%%WWWDIR%%/images/postscriptf24.png
-%%WWWDIR%%/images/prev.png
%%WWWDIR%%/images/quicksearchex.png
%%WWWDIR%%/images/review24.png
%%WWWDIR%%/images/review48.png
-%%WWWDIR%%/images/sortdown.png
-%%WWWDIR%%/images/sortup.png
%%WWWDIR%%/images/stophand45.png
%%WWWDIR%%/images/txt.png
%%WWWDIR%%/images/txt24.png
@@ -103,49 +112,66 @@
%%WWWDIR%%/lib/backupdb.sh
%%WWWDIR%%/lib/base.php
%%WWWDIR%%/lib/cleanhtml.php
+%%WWWDIR%%/lib/collatorshim.php
%%WWWDIR%%/lib/column.php
%%WWWDIR%%/lib/countmatcher.php
%%WWWDIR%%/lib/countries.php
%%WWWDIR%%/lib/createdb.sh
%%WWWDIR%%/lib/csv.php
-%%WWWDIR%%/lib/curls3document.php
+%%WWWDIR%%/lib/curls3result.php
%%WWWDIR%%/lib/dbhelper.sh
%%WWWDIR%%/lib/dbl.php
+%%WWWDIR%%/lib/diff_match_patch.php
+%%WWWDIR%%/lib/dkimsigner.php
+%%WWWDIR%%/lib/downloader.php
%%WWWDIR%%/lib/filer.php
+%%WWWDIR%%/lib/fmt.php
+%%WWWDIR%%/lib/ftext.php
%%WWWDIR%%/lib/getopt.php
+%%WWWDIR%%/lib/gmpshim.php
+%%WWWDIR%%/lib/hashanalysis.php
+%%WWWDIR%%/lib/hclcolor.php
%%WWWDIR%%/lib/ht.php
%%WWWDIR%%/lib/icons.php
-%%WWWDIR%%/lib/intlmsgset.php
+%%WWWDIR%%/lib/isovideomimetype.php
%%WWWDIR%%/lib/json.php
+%%WWWDIR%%/lib/jsonexception.php
+%%WWWDIR%%/lib/jsonparser.php
+%%WWWDIR%%/lib/jwtparser.php
+%%WWWDIR%%/lib/labcolor.php
%%WWWDIR%%/lib/ldaplogin.php
%%WWWDIR%%/lib/login.php
%%WWWDIR%%/lib/mailer.php
-%%WWWDIR%%/lib/message.php
+%%WWWDIR%%/lib/mailpreparation.php
%%WWWDIR%%/lib/messageset.php
%%WWWDIR%%/lib/mime.types
+%%WWWDIR%%/lib/mimetext.php
%%WWWDIR%%/lib/mimetype.php
%%WWWDIR%%/lib/mincostmaxflow.php
%%WWWDIR%%/lib/navigation.php
-%%WWWDIR%%/lib/qobject.php
+%%WWWDIR%%/lib/oklabcolor.php
+%%WWWDIR%%/lib/oklchcolor.php
+%%WWWDIR%%/lib/phpqsession.php
+%%WWWDIR%%/lib/polyfills.php
%%WWWDIR%%/lib/qrequest.php
+%%WWWDIR%%/lib/qsession.php
%%WWWDIR%%/lib/redirect.php
%%WWWDIR%%/lib/restoredb.sh
%%WWWDIR%%/lib/runsql.sh
-%%WWWDIR%%/lib/s3document.php
+%%WWWDIR%%/lib/s3client.php
+%%WWWDIR%%/lib/s3result.php
%%WWWDIR%%/lib/scoreinfo.php
%%WWWDIR%%/lib/tagger.php
%%WWWDIR%%/lib/text.php
%%WWWDIR%%/lib/unicodehelper.php
%%WWWDIR%%/lib/xlsx.php
-%%WWWDIR%%/lib/zipdocument.php
%%WWWDIR%%/log.php
%%WWWDIR%%/mail.php
%%WWWDIR%%/manualassign.php
%%WWWDIR%%/mergeaccounts.php
+%%WWWDIR%%/newaccount.php
+%%WWWDIR%%/oauth.php
%%WWWDIR%%/offline.php
-%%WWWDIR%%/pages/.htaccess
-%%WWWDIR%%/pages/adminhome.php
-%%WWWDIR%%/pages/home.php
%%WWWDIR%%/paper.php
%%WWWDIR%%/profile.php
%%WWWDIR%%/resetpassword.php
@@ -155,51 +181,121 @@
%%WWWDIR%%/scripts/.htaccess
%%WWWDIR%%/scripts/buzzer.js
%%WWWDIR%%/scripts/d3-hotcrp.min.js
-%%WWWDIR%%/scripts/d3.min.js
+%%WWWDIR%%/scripts/emojicodes.json
%%WWWDIR%%/scripts/graph.js
%%WWWDIR%%/scripts/jquery-1.12.4.min.js
-%%WWWDIR%%/scripts/jquery-1.12.4.min.map
-%%WWWDIR%%/scripts/jquery-3.3.1.min.js
+%%WWWDIR%%/scripts/jquery-3.7.1.min.js
%%WWWDIR%%/scripts/script.js
%%WWWDIR%%/scripts/settings.js
%%WWWDIR%%/search.php
%%WWWDIR%%/settings.php
+%%WWWDIR%%/signin.php
+%%WWWDIR%%/signout.php
%%WWWDIR%%/src/.htaccess
%%WWWDIR%%/src/api/api_alltags.php
+%%WWWDIR%%/src/api/api_assign.php
+%%WWWDIR%%/src/api/api_comment.php
+%%WWWDIR%%/src/api/api_completion.php
+%%WWWDIR%%/src/api/api_decision.php
%%WWWDIR%%/src/api/api_error.php
+%%WWWDIR%%/src/api/api_events.php
+%%WWWDIR%%/src/api/api_follow.php
+%%WWWDIR%%/src/api/api_formatcheck.php
+%%WWWDIR%%/src/api/api_graphdata.php
+%%WWWDIR%%/src/api/api_job.php
+%%WWWDIR%%/src/api/api_mail.php
+%%WWWDIR%%/src/api/api_paper.php
+%%WWWDIR%%/src/api/api_paperpc.php
+%%WWWDIR%%/src/api/api_preference.php
%%WWWDIR%%/src/api/api_requestreview.php
+%%WWWDIR%%/src/api/api_review.php
+%%WWWDIR%%/src/api/api_reviewtoken.php
%%WWWDIR%%/src/api/api_search.php
%%WWWDIR%%/src/api/api_searchconfig.php
+%%WWWDIR%%/src/api/api_session.php
+%%WWWDIR%%/src/api/api_settings.php
%%WWWDIR%%/src/api/api_taganno.php
+%%WWWDIR%%/src/api/api_tags.php
+%%WWWDIR%%/src/api/api_upload.php
%%WWWDIR%%/src/api/api_user.php
+%%WWWDIR%%/src/apihelpers.php
%%WWWDIR%%/src/assigners/a_conflict.php
+%%WWWDIR%%/src/assigners/a_copytag.php
%%WWWDIR%%/src/assigners/a_decision.php
+%%WWWDIR%%/src/assigners/a_error.php
+%%WWWDIR%%/src/assigners/a_follow.php
%%WWWDIR%%/src/assigners/a_lead.php
%%WWWDIR%%/src/assigners/a_preference.php
+%%WWWDIR%%/src/assigners/a_review.php
%%WWWDIR%%/src/assigners/a_status.php
%%WWWDIR%%/src/assigners/a_tag.php
+%%WWWDIR%%/src/assigners/a_taganno.php
+%%WWWDIR%%/src/assigners/a_unsubmitreview.php
+%%WWWDIR%%/src/assignmentcountset.php
%%WWWDIR%%/src/assignmentset.php
%%WWWDIR%%/src/author.php
%%WWWDIR%%/src/authormatcher.php
%%WWWDIR%%/src/autoassigner.php
+%%WWWDIR%%/src/autoassigners/aa_clear.php
+%%WWWDIR%%/src/autoassigners/aa_discussionorder.php
+%%WWWDIR%%/src/autoassigners/aa_paperpc.php
+%%WWWDIR%%/src/autoassigners/aa_prefconflict.php
+%%WWWDIR%%/src/autoassigners/aa_review.php
+%%WWWDIR%%/src/backuppattern.php
%%WWWDIR%%/src/banal
-%%WWWDIR%%/src/capability.php
+%%WWWDIR%%/src/capabilities/cap_authorview.php
+%%WWWDIR%%/src/capabilities/cap_bearer.php
+%%WWWDIR%%/src/capabilities/cap_job.php
+%%WWWDIR%%/src/capabilities/cap_reviewaccept.php
%%WWWDIR%%/src/checkformat.php
%%WWWDIR%%/src/commentinfo.php
+%%WWWDIR%%/src/componentset.php
%%WWWDIR%%/src/conference.php
+%%WWWDIR%%/src/confinvariants.php
%%WWWDIR%%/src/conflict.php
%%WWWDIR%%/src/contact.php
+%%WWWDIR%%/src/contactcounter.php
+%%WWWDIR%%/src/contactcountmatcher.php
%%WWWDIR%%/src/contactlist.php
%%WWWDIR%%/src/contactsearch.php
-%%WWWDIR%%/src/distoptions.php
+%%WWWDIR%%/src/contactset.php
+%%WWWDIR%%/src/decisioninfo.php
+%%WWWDIR%%/src/decisionset.php
+%%WWWDIR%%/src/documentfiletree.php
+%%WWWDIR%%/src/documenthashmatcher.php
%%WWWDIR%%/src/documentinfo.php
+%%WWWDIR%%/src/documentinfoset.php
+%%WWWDIR%%/src/documentrequest.php
+%%WWWDIR%%/src/fieldchangeset.php
+%%WWWDIR%%/src/fieldrender.php
%%WWWDIR%%/src/filefilter.php
%%WWWDIR%%/src/formatspec.php
%%WWWDIR%%/src/formula.php
%%WWWDIR%%/src/formulagraph.php
-%%WWWDIR%%/src/groupedextensions.php
+%%WWWDIR%%/src/formulas/f_author.php
+%%WWWDIR%%/src/formulas/f_conflict.php
+%%WWWDIR%%/src/formulas/f_decision.php
+%%WWWDIR%%/src/formulas/f_now.php
+%%WWWDIR%%/src/formulas/f_optionpresent.php
+%%WWWDIR%%/src/formulas/f_optionvalue.php
+%%WWWDIR%%/src/formulas/f_pdfsize.php
+%%WWWDIR%%/src/formulas/f_pref.php
+%%WWWDIR%%/src/formulas/f_realnumberoption.php
+%%WWWDIR%%/src/formulas/f_reviewer.php
+%%WWWDIR%%/src/formulas/f_reviewermatch.php
+%%WWWDIR%%/src/formulas/f_reviewround.php
+%%WWWDIR%%/src/formulas/f_reviewwordcount.php
+%%WWWDIR%%/src/formulas/f_revtype.php
+%%WWWDIR%%/src/formulas/f_submittedat.php
+%%WWWDIR%%/src/formulas/f_tag.php
+%%WWWDIR%%/src/formulas/f_timefield.php
+%%WWWDIR%%/src/formulas/f_topic.php
+%%WWWDIR%%/src/formulas/f_topicscore.php
+%%WWWDIR%%/src/help/h_bulkassign.php
%%WWWDIR%%/src/help/h_chairsguide.php
+%%WWWDIR%%/src/help/h_developer.php
%%WWWDIR%%/src/help/h_formulas.php
+%%WWWDIR%%/src/help/h_jsonsettings.php
%%WWWDIR%%/src/help/h_keywords.php
%%WWWDIR%%/src/help/h_ranking.php
%%WWWDIR%%/src/help/h_revrate.php
@@ -209,31 +305,90 @@
%%WWWDIR%%/src/help/h_tags.php
%%WWWDIR%%/src/help/h_votetags.php
%%WWWDIR%%/src/helpers.php
+%%WWWDIR%%/src/helprenderer.php
%%WWWDIR%%/src/hotcrpmailer.php
%%WWWDIR%%/src/init.php
-%%WWWDIR%%/src/initweb.php
%%WWWDIR%%/src/listaction.php
%%WWWDIR%%/src/listactions/la_assign.php
%%WWWDIR%%/src/listactions/la_decide.php
-%%WWWDIR%%/src/listactions/la_get_rev.php
+%%WWWDIR%%/src/listactions/la_get.php
%%WWWDIR%%/src/listactions/la_get_sub.php
+%%WWWDIR%%/src/listactions/la_getabstracts.php
%%WWWDIR%%/src/listactions/la_getallrevpref.php
+%%WWWDIR%%/src/listactions/la_getauthors.php
%%WWWDIR%%/src/listactions/la_getdocument.php
%%WWWDIR%%/src/listactions/la_getjson.php
%%WWWDIR%%/src/listactions/la_getjsonrqc.php
-%%WWWDIR%%/src/listactions/la_getrevpref.php
+%%WWWDIR%%/src/listactions/la_getlead.php
+%%WWWDIR%%/src/listactions/la_getpcassignments.php
+%%WWWDIR%%/src/listactions/la_getrank.php
+%%WWWDIR%%/src/listactions/la_getreviewbase.php
+%%WWWDIR%%/src/listactions/la_getreviewcsv.php
+%%WWWDIR%%/src/listactions/la_getreviewforms.php
+%%WWWDIR%%/src/listactions/la_getreviews.php
+%%WWWDIR%%/src/listactions/la_getscores.php
%%WWWDIR%%/src/listactions/la_mail.php
+%%WWWDIR%%/src/listactions/la_revpref.php
%%WWWDIR%%/src/listactions/la_tag.php
-%%WWWDIR%%/src/listsorter.php
-%%WWWDIR%%/src/mailclasses.php
-%%WWWDIR%%/src/mailtemplate.php
+%%WWWDIR%%/src/logentry.php
+%%WWWDIR%%/src/logentryfilter.php
+%%WWWDIR%%/src/mailrecipients.php
+%%WWWDIR%%/src/mailsender.php
%%WWWDIR%%/src/meetingtracker.php
+%%WWWDIR%%/src/mentionparser.php
%%WWWDIR%%/src/mergecontacts.php
-%%WWWDIR%%/src/messages.csv
%%WWWDIR%%/src/multiconference.php
-%%WWWDIR%%/src/paperapi.php
+%%WWWDIR%%/src/notificationinfo.php
+%%WWWDIR%%/src/options/o_abstract.php
+%%WWWDIR%%/src/options/o_attachments.php
+%%WWWDIR%%/src/options/o_authors.php
+%%WWWDIR%%/src/options/o_checkboxes.php
+%%WWWDIR%%/src/options/o_checkboxesbase.php
+%%WWWDIR%%/src/options/o_collaborators.php
+%%WWWDIR%%/src/options/o_contacts.php
+%%WWWDIR%%/src/options/o_nonblind.php
+%%WWWDIR%%/src/options/o_numeric.php
+%%WWWDIR%%/src/options/o_pcconflicts.php
+%%WWWDIR%%/src/options/o_realnumber.php
+%%WWWDIR%%/src/options/o_title.php
+%%WWWDIR%%/src/options/o_topics.php
+%%WWWDIR%%/src/pages/p_adminhome.php
+%%WWWDIR%%/src/pages/p_api.php
+%%WWWDIR%%/src/pages/p_assign.php
+%%WWWDIR%%/src/pages/p_authorize.php
+%%WWWDIR%%/src/pages/p_autoassign.php
+%%WWWDIR%%/src/pages/p_bulkassign.php
+%%WWWDIR%%/src/pages/p_buzzer.php
+%%WWWDIR%%/src/pages/p_cacheable.php
+%%WWWDIR%%/src/pages/p_changeemail.php
+%%WWWDIR%%/src/pages/p_checkupdates.php
+%%WWWDIR%%/src/pages/p_conflictassign.php
+%%WWWDIR%%/src/pages/p_deadlines.php
+%%WWWDIR%%/src/pages/p_doc.php
+%%WWWDIR%%/src/pages/p_graph.php
+%%WWWDIR%%/src/pages/p_graph_formula.php
+%%WWWDIR%%/src/pages/p_graph_procrastination.php
+%%WWWDIR%%/src/pages/p_help.php
+%%WWWDIR%%/src/pages/p_home.php
+%%WWWDIR%%/src/pages/p_log.php
+%%WWWDIR%%/src/pages/p_mail.php
+%%WWWDIR%%/src/pages/p_manualassign.php
+%%WWWDIR%%/src/pages/p_mergeaccounts.php
+%%WWWDIR%%/src/pages/p_oauth.php
+%%WWWDIR%%/src/pages/p_offline.php
+%%WWWDIR%%/src/pages/p_paper.php
+%%WWWDIR%%/src/pages/p_profile.php
+%%WWWDIR%%/src/pages/p_review.php
+%%WWWDIR%%/src/pages/p_reviewprefs.php
+%%WWWDIR%%/src/pages/p_scorechart.php
+%%WWWDIR%%/src/pages/p_search.php
+%%WWWDIR%%/src/pages/p_settings.php
+%%WWWDIR%%/src/pages/p_signin.php
+%%WWWDIR%%/src/pages/p_users.php
%%WWWDIR%%/src/papercolumn.php
%%WWWDIR%%/src/papercolumns/pc_administrator.php
+%%WWWDIR%%/src/papercolumns/pc_assignreview.php
+%%WWWDIR%%/src/papercolumns/pc_color.php
%%WWWDIR%%/src/papercolumns/pc_commenters.php
%%WWWDIR%%/src/papercolumns/pc_conflict.php
%%WWWDIR%%/src/papercolumns/pc_conflictmatch.php
@@ -243,68 +398,140 @@
%%WWWDIR%%/src/papercolumns/pc_lead.php
%%WWWDIR%%/src/papercolumns/pc_option.php
%%WWWDIR%%/src/papercolumns/pc_pagecount.php
+%%WWWDIR%%/src/papercolumns/pc_paperidorder.php
%%WWWDIR%%/src/papercolumns/pc_pcconflicts.php
%%WWWDIR%%/src/papercolumns/pc_preference.php
+%%WWWDIR%%/src/papercolumns/pc_preferencelist.php
%%WWWDIR%%/src/papercolumns/pc_reviewdelegation.php
+%%WWWDIR%%/src/papercolumns/pc_reviewerlist.php
%%WWWDIR%%/src/papercolumns/pc_shepherd.php
+%%WWWDIR%%/src/papercolumns/pc_tag.php
%%WWWDIR%%/src/papercolumns/pc_tagreport.php
%%WWWDIR%%/src/papercolumns/pc_timestamp.php
%%WWWDIR%%/src/papercolumns/pc_topics.php
%%WWWDIR%%/src/papercolumns/pc_topicscore.php
+%%WWWDIR%%/src/papercolumns/pc_wordcount.php
%%WWWDIR%%/src/paperevents.php
+%%WWWDIR%%/src/paperexport.php
%%WWWDIR%%/src/paperinfo.php
%%WWWDIR%%/src/paperlist.php
%%WWWDIR%%/src/paperoption.php
+%%WWWDIR%%/src/paperoptionlist.php
%%WWWDIR%%/src/paperrank.php
-%%WWWDIR%%/src/papersaver.php
+%%WWWDIR%%/src/paperrequest.php
%%WWWDIR%%/src/papersearch.php
%%WWWDIR%%/src/paperstatus.php
%%WWWDIR%%/src/papertable.php
-%%WWWDIR%%/src/review.php
+%%WWWDIR%%/src/papervalue.php
+%%WWWDIR%%/src/permissionproblem.php
+%%WWWDIR%%/src/quicklinksrenderer.php
+%%WWWDIR%%/src/responseround.php
%%WWWDIR%%/src/reviewdiffinfo.php
+%%WWWDIR%%/src/reviewfield.php
+%%WWWDIR%%/src/reviewfields/rf_checkbox.php
+%%WWWDIR%%/src/reviewfields/rf_checkboxes.php
+%%WWWDIR%%/src/reviewfields/rf_discrete.php
+%%WWWDIR%%/src/reviewfields/rf_text.php
+%%WWWDIR%%/src/reviewfieldsearch.php
+%%WWWDIR%%/src/reviewform.php
+%%WWWDIR%%/src/reviewhistoryinfo.php
%%WWWDIR%%/src/reviewinfo.php
-%%WWWDIR%%/src/reviewtable.php
+%%WWWDIR%%/src/reviewrefusalinfo.php
+%%WWWDIR%%/src/reviewrequestinfo.php
+%%WWWDIR%%/src/reviewsearchmatcher.php
%%WWWDIR%%/src/reviewtimes.php
-%%WWWDIR%%/src/sample.pdf
%%WWWDIR%%/src/schema.sql
+%%WWWDIR%%/src/search/st_admin.php
%%WWWDIR%%/src/search/st_author.php
+%%WWWDIR%%/src/search/st_authormatch.php
+%%WWWDIR%%/src/search/st_badge.php
+%%WWWDIR%%/src/search/st_color.php
%%WWWDIR%%/src/search/st_comment.php
%%WWWDIR%%/src/search/st_conflict.php
%%WWWDIR%%/src/search/st_decision.php
+%%WWWDIR%%/src/search/st_documentcount.php
+%%WWWDIR%%/src/search/st_documentname.php
%%WWWDIR%%/src/search/st_editfinal.php
+%%WWWDIR%%/src/search/st_emoji.php
%%WWWDIR%%/src/search/st_formula.php
%%WWWDIR%%/src/search/st_option.php
+%%WWWDIR%%/src/search/st_optionpresent.php
+%%WWWDIR%%/src/search/st_optiontext.php
+%%WWWDIR%%/src/search/st_optionvalue.php
+%%WWWDIR%%/src/search/st_optionvaluein.php
%%WWWDIR%%/src/search/st_paperpc.php
%%WWWDIR%%/src/search/st_paperstatus.php
%%WWWDIR%%/src/search/st_pdf.php
+%%WWWDIR%%/src/search/st_perm.php
+%%WWWDIR%%/src/search/st_phase.php
+%%WWWDIR%%/src/search/st_proposal.php
+%%WWWDIR%%/src/search/st_realnumberoption.php
+%%WWWDIR%%/src/search/st_reconflict.php
%%WWWDIR%%/src/search/st_review.php
%%WWWDIR%%/src/search/st_reviewtoken.php
%%WWWDIR%%/src/search/st_revpref.php
+%%WWWDIR%%/src/search/st_sclass.php
%%WWWDIR%%/src/search/st_tag.php
%%WWWDIR%%/src/search/st_topic.php
+%%WWWDIR%%/src/searchatom.php
+%%WWWDIR%%/src/searchexample.php
+%%WWWDIR%%/src/searchoperator.php
%%WWWDIR%%/src/searchselection.php
+%%WWWDIR%%/src/searchsplitter.php
+%%WWWDIR%%/src/searchterm.php
+%%WWWDIR%%/src/searchviewcommand.php
+%%WWWDIR%%/src/searchword.php
%%WWWDIR%%/src/sessionlist.php
+%%WWWDIR%%/src/settinginfoset.php
+%%WWWDIR%%/src/settingparser.php
+%%WWWDIR%%/src/settings/s_automatictag.php
+%%WWWDIR%%/src/settings/s_banal.php
%%WWWDIR%%/src/settings/s_basics.php
-%%WWWDIR%%/src/settings/s_decisions.php
+%%WWWDIR%%/src/settings/s_decision.php
%%WWWDIR%%/src/settings/s_decisionvisibility.php
%%WWWDIR%%/src/settings/s_finalversions.php
+%%WWWDIR%%/src/settings/s_json.php
%%WWWDIR%%/src/settings/s_messages.php
+%%WWWDIR%%/src/settings/s_namedsearch.php
%%WWWDIR%%/src/settings/s_options.php
-%%WWWDIR%%/src/settings/s_responses.php
+%%WWWDIR%%/src/settings/s_preference.php
+%%WWWDIR%%/src/settings/s_response.php
+%%WWWDIR%%/src/settings/s_review.php
+%%WWWDIR%%/src/settings/s_reviewfieldcondition.php
%%WWWDIR%%/src/settings/s_reviewform.php
-%%WWWDIR%%/src/settings/s_reviews.php
%%WWWDIR%%/src/settings/s_reviewvisibility.php
+%%WWWDIR%%/src/settings/s_rf.php
+%%WWWDIR%%/src/settings/s_sf.php
+%%WWWDIR%%/src/settings/s_shepherds.php
+%%WWWDIR%%/src/settings/s_sitecontact.php
+%%WWWDIR%%/src/settings/s_sround.php
+%%WWWDIR%%/src/settings/s_subfieldcondition.php
%%WWWDIR%%/src/settings/s_subform.php
%%WWWDIR%%/src/settings/s_submissions.php
%%WWWDIR%%/src/settings/s_tags.php
-%%WWWDIR%%/src/settings/s_topics.php
-%%WWWDIR%%/src/settings/s_tracks.php
+%%WWWDIR%%/src/settings/s_tagstyle.php
+%%WWWDIR%%/src/settings/s_topic.php
+%%WWWDIR%%/src/settings/s_track.php
%%WWWDIR%%/src/settings/s_users.php
%%WWWDIR%%/src/settingvalues.php
+%%WWWDIR%%/src/si.php
+%%WWWDIR%%/src/siteloader.php
+%%WWWDIR%%/src/sitype.php
+%%WWWDIR%%/src/submissionround.php
+%%WWWDIR%%/src/tagmessagereport.php
+%%WWWDIR%%/src/tagrankparser.php
+%%WWWDIR%%/src/tagsearchmatcher.php
%%WWWDIR%%/src/textformat.php
+%%WWWDIR%%/src/tokeninfo.php
+%%WWWDIR%%/src/topicset.php
+%%WWWDIR%%/src/track.php
%%WWWDIR%%/src/updateschema.php
+%%WWWDIR%%/src/updatesession.php
%%WWWDIR%%/src/useractions.php
+%%WWWDIR%%/src/userinfo/u_developer.php
+%%WWWDIR%%/src/userinfo/u_security.php
%%WWWDIR%%/src/userstatus.php
+%%WWWDIR%%/src/xtparams.php
%%WWWDIR%%/stylesheets/.htaccess
%%WWWDIR%%/stylesheets/mobile.css
%%WWWDIR%%/stylesheets/style.css
diff --git a/www/hurl/Makefile b/www/hurl/Makefile
index 91fe26a2faeb..66fbf0c46942 100644
--- a/www/hurl/Makefile
+++ b/www/hurl/Makefile
@@ -1,6 +1,5 @@
PORTNAME= hurl
-DISTVERSION= 4.2.0
-PORTREVISION= 2
+DISTVERSION= 4.3.0
CATEGORIES= www
MAINTAINER= rodrigo@FreeBSD.org
diff --git a/www/hurl/Makefile.crates b/www/hurl/Makefile.crates
index 6bc627bf2f27..74ab007a5260 100644
--- a/www/hurl/Makefile.crates
+++ b/www/hurl/Makefile.crates
@@ -1,40 +1,40 @@
CARGO_CRATES= adler32-1.2.0 \
- ahash-0.8.7 \
- aho-corasick-1.1.2 \
+ ahash-0.8.11 \
+ aho-corasick-1.1.3 \
alloc-no-stdlib-2.0.4 \
alloc-stdlib-0.2.2 \
android-tzdata-0.1.1 \
android_system_properties-0.1.5 \
- anstream-0.6.5 \
- anstyle-1.0.4 \
+ anstream-0.6.13 \
+ anstyle-1.0.6 \
anstyle-parse-0.2.3 \
anstyle-query-1.0.2 \
anstyle-wincon-3.0.2 \
- autocfg-1.1.0 \
- base64-0.21.6 \
+ autocfg-1.2.0 \
+ base64-0.22.0 \
bit-set-0.5.3 \
bit-vec-0.6.3 \
bitflags-1.3.2 \
- bitflags-2.4.1 \
+ bitflags-2.5.0 \
block-buffer-0.10.4 \
- brotli-3.4.0 \
- brotli-decompressor-2.5.1 \
- bumpalo-3.14.0 \
- cc-1.0.83 \
+ brotli-5.0.0 \
+ brotli-decompressor-4.0.0 \
+ bumpalo-3.16.0 \
+ cc-1.0.95 \
cfg-if-1.0.0 \
- chrono-0.4.31 \
- clap-4.4.14 \
- clap_builder-4.4.14 \
- clap_lex-0.6.0 \
+ chrono-0.4.38 \
+ clap-4.5.4 \
+ clap_builder-4.5.2 \
+ clap_lex-0.7.0 \
colorchoice-1.0.0 \
colored-2.1.0 \
core-foundation-sys-0.8.6 \
core2-0.4.0 \
cpufeatures-0.2.12 \
- crc32fast-1.3.2 \
+ crc32fast-1.4.0 \
crypto-common-0.1.6 \
- curl-0.4.44 \
- curl-sys-0.4.70+curl-8.5.0 \
+ curl-0.4.46 \
+ curl-sys-0.4.72+curl-8.6.0 \
dary_heap-0.3.6 \
digest-0.10.7 \
encoding-0.2.33 \
@@ -45,68 +45,68 @@ CARGO_CRATES= adler32-1.2.0 \
encoding-index-tradchinese-1.20141219.5 \
encoding_index_tests-0.1.4 \
errno-0.3.8 \
- fastrand-2.0.1 \
+ fastrand-2.0.2 \
float-cmp-0.9.0 \
fnv-1.0.7 \
form_urlencoded-1.2.1 \
generic-array-0.14.7 \
- getrandom-0.2.12 \
+ getrandom-0.2.14 \
glob-0.3.1 \
hashbrown-0.13.2 \
hex-0.4.3 \
hex-literal-0.4.1 \
- iana-time-zone-0.1.59 \
+ iana-time-zone-0.1.60 \
iana-time-zone-haiku-0.1.2 \
idna-0.5.0 \
- itoa-1.0.10 \
- js-sys-0.3.66 \
+ itoa-1.0.11 \
+ js-sys-0.3.69 \
lazy_static-1.4.0 \
- libc-0.2.152 \
+ libc-0.2.153 \
libflate-2.0.0 \
libflate_lz77-2.0.0 \
libm-0.2.8 \
libredox-0.0.2 \
libxml-0.3.3 \
- libz-sys-1.1.14 \
- linux-raw-sys-0.4.12 \
- log-0.4.20 \
+ libz-sys-1.1.16 \
+ linux-raw-sys-0.4.13 \
+ log-0.4.21 \
md5-0.7.0 \
- memchr-2.7.1 \
- num-traits-0.2.17 \
+ memchr-2.7.2 \
+ num-traits-0.2.18 \
numtoa-0.1.0 \
once_cell-1.19.0 \
openssl-probe-0.1.5 \
- openssl-src-300.2.1+3.2.0 \
- openssl-sys-0.9.98 \
+ openssl-src-300.2.3+3.2.1 \
+ openssl-sys-0.9.102 \
percent-encoding-2.3.1 \
- pkg-config-0.3.28 \
+ pkg-config-0.3.30 \
ppv-lite86-0.2.17 \
- proc-macro2-1.0.76 \
+ proc-macro2-1.0.81 \
proptest-1.4.0 \
quick-error-1.2.3 \
- quote-1.0.35 \
+ quote-1.0.36 \
rand-0.8.5 \
rand_chacha-0.3.1 \
rand_core-0.6.4 \
rand_xorshift-0.3.0 \
redox_syscall-0.4.1 \
redox_termios-0.1.3 \
- regex-1.10.2 \
- regex-automata-0.4.3 \
- regex-syntax-0.8.2 \
+ regex-1.10.4 \
+ regex-automata-0.4.6 \
+ regex-syntax-0.8.3 \
rle-decode-fast-1.0.3 \
- rustix-0.38.28 \
+ rustix-0.38.34 \
rusty-fork-0.3.0 \
- ryu-1.0.16 \
+ ryu-1.0.17 \
schannel-0.1.23 \
- serde-1.0.195 \
- serde_derive-1.0.195 \
- serde_json-1.0.111 \
+ serde-1.0.198 \
+ serde_derive-1.0.198 \
+ serde_json-1.0.116 \
sha2-0.10.8 \
- socket2-0.4.10 \
- strsim-0.10.0 \
- syn-2.0.48 \
- tempfile-3.9.0 \
+ socket2-0.5.6 \
+ strsim-0.11.1 \
+ syn-2.0.60 \
+ tempfile-3.10.1 \
terminal_size-0.3.0 \
termion-3.0.0 \
tinyvec-1.6.0 \
@@ -114,44 +114,42 @@ CARGO_CRATES= adler32-1.2.0 \
toml-0.5.11 \
typenum-1.17.0 \
unarray-0.1.4 \
- unicode-bidi-0.3.14 \
+ unicode-bidi-0.3.15 \
unicode-ident-1.0.12 \
- unicode-normalization-0.1.22 \
+ unicode-normalization-0.1.23 \
url-2.5.0 \
utf8parse-0.2.1 \
- uuid-1.6.1 \
+ uuid-1.8.0 \
vcpkg-0.2.15 \
version_check-0.9.4 \
wait-timeout-0.2.0 \
wasi-0.11.0+wasi-snapshot-preview1 \
- wasm-bindgen-0.2.89 \
- wasm-bindgen-backend-0.2.89 \
- wasm-bindgen-macro-0.2.89 \
- wasm-bindgen-macro-support-0.2.89 \
- wasm-bindgen-shared-0.2.89 \
- winapi-0.3.9 \
- winapi-i686-pc-windows-gnu-0.4.0 \
- winapi-x86_64-pc-windows-gnu-0.4.0 \
+ wasm-bindgen-0.2.92 \
+ wasm-bindgen-backend-0.2.92 \
+ wasm-bindgen-macro-0.2.92 \
+ wasm-bindgen-macro-support-0.2.92 \
+ wasm-bindgen-shared-0.2.92 \
windows-core-0.52.0 \
windows-sys-0.48.0 \
windows-sys-0.52.0 \
windows-targets-0.48.5 \
- windows-targets-0.52.0 \
+ windows-targets-0.52.5 \
windows_aarch64_gnullvm-0.48.5 \
- windows_aarch64_gnullvm-0.52.0 \
+ windows_aarch64_gnullvm-0.52.5 \
windows_aarch64_msvc-0.48.5 \
- windows_aarch64_msvc-0.52.0 \
+ windows_aarch64_msvc-0.52.5 \
windows_i686_gnu-0.48.5 \
- windows_i686_gnu-0.52.0 \
+ windows_i686_gnu-0.52.5 \
+ windows_i686_gnullvm-0.52.5 \
windows_i686_msvc-0.48.5 \
- windows_i686_msvc-0.52.0 \
+ windows_i686_msvc-0.52.5 \
windows_x86_64_gnu-0.48.5 \
- windows_x86_64_gnu-0.52.0 \
+ windows_x86_64_gnu-0.52.5 \
windows_x86_64_gnullvm-0.48.5 \
- windows_x86_64_gnullvm-0.52.0 \
+ windows_x86_64_gnullvm-0.52.5 \
windows_x86_64_msvc-0.48.5 \
- windows_x86_64_msvc-0.52.0 \
+ windows_x86_64_msvc-0.52.5 \
winres-0.1.12 \
- xml-rs-0.8.19 \
+ xml-rs-0.8.20 \
zerocopy-0.7.32 \
zerocopy-derive-0.7.32
diff --git a/www/hurl/distinfo b/www/hurl/distinfo
index 4abe2fb101de..f9598b057cb8 100644
--- a/www/hurl/distinfo
+++ b/www/hurl/distinfo
@@ -1,10 +1,10 @@
-TIMESTAMP = 1706434672
+TIMESTAMP = 1714509876
SHA256 (rust/crates/adler32-1.2.0.crate) = aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234
SIZE (rust/crates/adler32-1.2.0.crate) = 6411
-SHA256 (rust/crates/ahash-0.8.7.crate) = 77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01
-SIZE (rust/crates/ahash-0.8.7.crate) = 42894
-SHA256 (rust/crates/aho-corasick-1.1.2.crate) = b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0
-SIZE (rust/crates/aho-corasick-1.1.2.crate) = 183136
+SHA256 (rust/crates/ahash-0.8.11.crate) = e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011
+SIZE (rust/crates/ahash-0.8.11.crate) = 43607
+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
@@ -13,48 +13,48 @@ SHA256 (rust/crates/android-tzdata-0.1.1.crate) = e999941b234f3131b00bc13c22d06e
SIZE (rust/crates/android-tzdata-0.1.1.crate) = 7674
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.5.crate) = d664a92ecae85fd0a7392615844904654d1d5f5514837f471ddef4a057aba1b6
-SIZE (rust/crates/anstream-0.6.5.crate) = 30004
-SHA256 (rust/crates/anstyle-1.0.4.crate) = 7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87
-SIZE (rust/crates/anstyle-1.0.4.crate) = 13998
+SHA256 (rust/crates/anstream-0.6.13.crate) = d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb
+SIZE (rust/crates/anstream-0.6.13.crate) = 30928
+SHA256 (rust/crates/anstyle-1.0.6.crate) = 8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc
+SIZE (rust/crates/anstyle-1.0.6.crate) = 14604
SHA256 (rust/crates/anstyle-parse-0.2.3.crate) = c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c
SIZE (rust/crates/anstyle-parse-0.2.3.crate) = 24699
SHA256 (rust/crates/anstyle-query-1.0.2.crate) = e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648
SIZE (rust/crates/anstyle-query-1.0.2.crate) = 8739
SHA256 (rust/crates/anstyle-wincon-3.0.2.crate) = 1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7
SIZE (rust/crates/anstyle-wincon-3.0.2.crate) = 11272
-SHA256 (rust/crates/autocfg-1.1.0.crate) = d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa
-SIZE (rust/crates/autocfg-1.1.0.crate) = 13272
-SHA256 (rust/crates/base64-0.21.6.crate) = c79fed4cdb43e993fcdadc7e58a09fd0e3e649c4436fa11da71c9f1f3ee7feb9
-SIZE (rust/crates/base64-0.21.6.crate) = 82448
+SHA256 (rust/crates/autocfg-1.2.0.crate) = f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80
+SIZE (rust/crates/autocfg-1.2.0.crate) = 14808
+SHA256 (rust/crates/base64-0.22.0.crate) = 9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51
+SIZE (rust/crates/base64-0.22.0.crate) = 81568
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.4.1.crate) = 327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07
-SIZE (rust/crates/bitflags-2.4.1.crate) = 37043
+SHA256 (rust/crates/bitflags-2.5.0.crate) = cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1
+SIZE (rust/crates/bitflags-2.5.0.crate) = 43821
SHA256 (rust/crates/block-buffer-0.10.4.crate) = 3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71
SIZE (rust/crates/block-buffer-0.10.4.crate) = 10538
-SHA256 (rust/crates/brotli-3.4.0.crate) = 516074a47ef4bce09577a3b379392300159ce5b1ba2e501ff1c819950066100f
-SIZE (rust/crates/brotli-3.4.0.crate) = 1362057
-SHA256 (rust/crates/brotli-decompressor-2.5.1.crate) = 4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f
-SIZE (rust/crates/brotli-decompressor-2.5.1.crate) = 193087
-SHA256 (rust/crates/bumpalo-3.14.0.crate) = 7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec
-SIZE (rust/crates/bumpalo-3.14.0.crate) = 82400
-SHA256 (rust/crates/cc-1.0.83.crate) = f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0
-SIZE (rust/crates/cc-1.0.83.crate) = 68343
+SHA256 (rust/crates/brotli-5.0.0.crate) = 19483b140a7ac7174d34b5a581b406c64f84da5409d3e09cf4fff604f9270e67
+SIZE (rust/crates/brotli-5.0.0.crate) = 1388774
+SHA256 (rust/crates/brotli-decompressor-4.0.0.crate) = e6221fe77a248b9117d431ad93761222e1cf8ff282d9d1d5d9f53d6299a1cf76
+SIZE (rust/crates/brotli-decompressor-4.0.0.crate) = 193192
+SHA256 (rust/crates/bumpalo-3.16.0.crate) = 79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c
+SIZE (rust/crates/bumpalo-3.16.0.crate) = 85677
+SHA256 (rust/crates/cc-1.0.95.crate) = d32a725bc159af97c3e629873bb9f88fb8cf8a4867175f76dc987815ea07c83b
+SIZE (rust/crates/cc-1.0.95.crate) = 76485
SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
-SHA256 (rust/crates/chrono-0.4.31.crate) = 7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38
-SIZE (rust/crates/chrono-0.4.31.crate) = 214513
-SHA256 (rust/crates/clap-4.4.14.crate) = 33e92c5c1a78c62968ec57dbc2440366a2d6e5a23faf829970ff1585dc6b18e2
-SIZE (rust/crates/clap-4.4.14.crate) = 55522
-SHA256 (rust/crates/clap_builder-4.4.14.crate) = f4323769dc8a61e2c39ad7dc26f6f2800524691a44d74fe3d1071a5c24db6370
-SIZE (rust/crates/clap_builder-4.4.14.crate) = 163339
-SHA256 (rust/crates/clap_lex-0.6.0.crate) = 702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1
-SIZE (rust/crates/clap_lex-0.6.0.crate) = 12272
+SHA256 (rust/crates/chrono-0.4.38.crate) = a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401
+SIZE (rust/crates/chrono-0.4.38.crate) = 220559
+SHA256 (rust/crates/clap-4.5.4.crate) = 90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0
+SIZE (rust/crates/clap-4.5.4.crate) = 55401
+SHA256 (rust/crates/clap_builder-4.5.2.crate) = ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4
+SIZE (rust/crates/clap_builder-4.5.2.crate) = 163566
+SHA256 (rust/crates/clap_lex-0.7.0.crate) = 98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce
+SIZE (rust/crates/clap_lex-0.7.0.crate) = 11915
SHA256 (rust/crates/colorchoice-1.0.0.crate) = acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7
SIZE (rust/crates/colorchoice-1.0.0.crate) = 6857
SHA256 (rust/crates/colored-2.1.0.crate) = cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8
@@ -65,14 +65,14 @@ SHA256 (rust/crates/core2-0.4.0.crate) = b49ba7ef1ad6107f8824dbe97de947cbaac53c4
SIZE (rust/crates/core2-0.4.0.crate) = 37075
SHA256 (rust/crates/cpufeatures-0.2.12.crate) = 53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504
SIZE (rust/crates/cpufeatures-0.2.12.crate) = 12837
-SHA256 (rust/crates/crc32fast-1.3.2.crate) = b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d
-SIZE (rust/crates/crc32fast-1.3.2.crate) = 38661
+SHA256 (rust/crates/crc32fast-1.4.0.crate) = b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa
+SIZE (rust/crates/crc32fast-1.4.0.crate) = 38665
SHA256 (rust/crates/crypto-common-0.1.6.crate) = 1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3
SIZE (rust/crates/crypto-common-0.1.6.crate) = 8760
-SHA256 (rust/crates/curl-0.4.44.crate) = 509bd11746c7ac09ebd19f0b17782eae80aadee26237658a6b4808afb5c11a22
-SIZE (rust/crates/curl-0.4.44.crate) = 91415
-SHA256 (rust/crates/curl-sys-0.4.70+curl-8.5.0.crate) = 3c0333d8849afe78a4c8102a429a446bfdd055832af071945520e835ae2d841e
-SIZE (rust/crates/curl-sys-0.4.70+curl-8.5.0.crate) = 3254512
+SHA256 (rust/crates/curl-0.4.46.crate) = 1e2161dd6eba090ff1594084e95fd67aeccf04382ffea77999ea94ed42ec67b6
+SIZE (rust/crates/curl-0.4.46.crate) = 94864
+SHA256 (rust/crates/curl-sys-0.4.72+curl-8.6.0.crate) = 29cbdc8314c447d11e8fd156dcdd031d9e02a7a976163e396b548c03153bc9ea
+SIZE (rust/crates/curl-sys-0.4.72+curl-8.6.0.crate) = 3269599
SHA256 (rust/crates/dary_heap-0.3.6.crate) = 7762d17f1241643615821a8455a0b2c3e803784b058693d990b11f2dce25a0ca
SIZE (rust/crates/dary_heap-0.3.6.crate) = 23683
SHA256 (rust/crates/digest-0.10.7.crate) = 9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292
@@ -93,8 +93,8 @@ SHA256 (rust/crates/encoding_index_tests-0.1.4.crate) = a246d82be1c9d791c5dfde9a
SIZE (rust/crates/encoding_index_tests-0.1.4.crate) = 1631
SHA256 (rust/crates/errno-0.3.8.crate) = a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245
SIZE (rust/crates/errno-0.3.8.crate) = 10645
-SHA256 (rust/crates/fastrand-2.0.1.crate) = 25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5
-SIZE (rust/crates/fastrand-2.0.1.crate) = 14664
+SHA256 (rust/crates/fastrand-2.0.2.crate) = 658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984
+SIZE (rust/crates/fastrand-2.0.2.crate) = 14674
SHA256 (rust/crates/float-cmp-0.9.0.crate) = 98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4
SIZE (rust/crates/float-cmp-0.9.0.crate) = 10102
SHA256 (rust/crates/fnv-1.0.7.crate) = 3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1
@@ -103,8 +103,8 @@ SHA256 (rust/crates/form_urlencoded-1.2.1.crate) = e13624c2627564efccf4934284bdd
SIZE (rust/crates/form_urlencoded-1.2.1.crate) = 8969
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.12.crate) = 190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5
-SIZE (rust/crates/getrandom-0.2.12.crate) = 36163
+SHA256 (rust/crates/getrandom-0.2.14.crate) = 94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c
+SIZE (rust/crates/getrandom-0.2.14.crate) = 37307
SHA256 (rust/crates/glob-0.3.1.crate) = d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b
SIZE (rust/crates/glob-0.3.1.crate) = 18880
SHA256 (rust/crates/hashbrown-0.13.2.crate) = 43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e
@@ -113,20 +113,20 @@ SHA256 (rust/crates/hex-0.4.3.crate) = 7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486
SIZE (rust/crates/hex-0.4.3.crate) = 13299
SHA256 (rust/crates/hex-literal-0.4.1.crate) = 6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46
SIZE (rust/crates/hex-literal-0.4.1.crate) = 8559
-SHA256 (rust/crates/iana-time-zone-0.1.59.crate) = b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539
-SIZE (rust/crates/iana-time-zone-0.1.59.crate) = 27033
+SHA256 (rust/crates/iana-time-zone-0.1.60.crate) = e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141
+SIZE (rust/crates/iana-time-zone-0.1.60.crate) = 27074
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/idna-0.5.0.crate) = 634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6
SIZE (rust/crates/idna-0.5.0.crate) = 271940
-SHA256 (rust/crates/itoa-1.0.10.crate) = b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c
-SIZE (rust/crates/itoa-1.0.10.crate) = 10534
-SHA256 (rust/crates/js-sys-0.3.66.crate) = cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca
-SIZE (rust/crates/js-sys-0.3.66.crate) = 80765
+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.69.crate) = 29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d
+SIZE (rust/crates/js-sys-0.3.69.crate) = 81083
SHA256 (rust/crates/lazy_static-1.4.0.crate) = e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646
SIZE (rust/crates/lazy_static-1.4.0.crate) = 10443
-SHA256 (rust/crates/libc-0.2.152.crate) = 13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7
-SIZE (rust/crates/libc-0.2.152.crate) = 740278
+SHA256 (rust/crates/libc-0.2.153.crate) = 9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd
+SIZE (rust/crates/libc-0.2.153.crate) = 740614
SHA256 (rust/crates/libflate-2.0.0.crate) = 9f7d5654ae1795afc7ff76f4365c2c8791b0feb18e8996a96adad8ffd7c3b2bf
SIZE (rust/crates/libflate-2.0.0.crate) = 42505
SHA256 (rust/crates/libflate_lz77-2.0.0.crate) = be5f52fb8c451576ec6b79d3f4deb327398bc05bbdbd99021a6e77a4c855d524
@@ -137,42 +137,42 @@ SHA256 (rust/crates/libredox-0.0.2.crate) = 3af92c55d7d839293953fcd0fda5ecfe9329
SIZE (rust/crates/libredox-0.0.2.crate) = 4538
SHA256 (rust/crates/libxml-0.3.3.crate) = 5fe73cdec2bcb36d25a9fe3f607ffcd44bb8907ca0100c4098d1aa342d1e7bec
SIZE (rust/crates/libxml-0.3.3.crate) = 124388
-SHA256 (rust/crates/libz-sys-1.1.14.crate) = 295c17e837573c8c821dbaeb3cceb3d745ad082f7572191409e69cbc1b3fd050
-SIZE (rust/crates/libz-sys-1.1.14.crate) = 3939803
-SHA256 (rust/crates/linux-raw-sys-0.4.12.crate) = c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456
-SIZE (rust/crates/linux-raw-sys-0.4.12.crate) = 1465800
-SHA256 (rust/crates/log-0.4.20.crate) = b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f
-SIZE (rust/crates/log-0.4.20.crate) = 38307
+SHA256 (rust/crates/libz-sys-1.1.16.crate) = 5e143b5e666b2695d28f6bca6497720813f699c9602dd7f5cac91008b8ada7f9
+SIZE (rust/crates/libz-sys-1.1.16.crate) = 3958920
+SHA256 (rust/crates/linux-raw-sys-0.4.13.crate) = 01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c
+SIZE (rust/crates/linux-raw-sys-0.4.13.crate) = 1493855
+SHA256 (rust/crates/log-0.4.21.crate) = 90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c
+SIZE (rust/crates/log-0.4.21.crate) = 43442
SHA256 (rust/crates/md5-0.7.0.crate) = 490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771
SIZE (rust/crates/md5-0.7.0.crate) = 6671
-SHA256 (rust/crates/memchr-2.7.1.crate) = 523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149
-SIZE (rust/crates/memchr-2.7.1.crate) = 96307
-SHA256 (rust/crates/num-traits-0.2.17.crate) = 39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c
-SIZE (rust/crates/num-traits-0.2.17.crate) = 50190
+SHA256 (rust/crates/memchr-2.7.2.crate) = 6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d
+SIZE (rust/crates/memchr-2.7.2.crate) = 96220
+SHA256 (rust/crates/num-traits-0.2.18.crate) = da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a
+SIZE (rust/crates/num-traits-0.2.18.crate) = 51930
SHA256 (rust/crates/numtoa-0.1.0.crate) = b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef
SIZE (rust/crates/numtoa-0.1.0.crate) = 8999
SHA256 (rust/crates/once_cell-1.19.0.crate) = 3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92
SIZE (rust/crates/once_cell-1.19.0.crate) = 33046
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.2.1+3.2.0.crate) = 3fe476c29791a5ca0d1273c697e96085bbabbbea2ef7afd5617e78a4b40332d3
-SIZE (rust/crates/openssl-src-300.2.1+3.2.0.crate) = 9571211
-SHA256 (rust/crates/openssl-sys-0.9.98.crate) = c1665caf8ab2dc9aef43d1c0023bd904633a6a05cb30b0ad59bec2ae986e57a7
-SIZE (rust/crates/openssl-sys-0.9.98.crate) = 68035
+SHA256 (rust/crates/openssl-src-300.2.3+3.2.1.crate) = 5cff92b6f71555b61bb9315f7c64da3ca43d87531622120fea0195fc761b4843
+SIZE (rust/crates/openssl-src-300.2.3+3.2.1.crate) = 9584245
+SHA256 (rust/crates/openssl-sys-0.9.102.crate) = c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2
+SIZE (rust/crates/openssl-sys-0.9.102.crate) = 68622
SHA256 (rust/crates/percent-encoding-2.3.1.crate) = e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e
SIZE (rust/crates/percent-encoding-2.3.1.crate) = 10235
-SHA256 (rust/crates/pkg-config-0.3.28.crate) = 69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a
-SIZE (rust/crates/pkg-config-0.3.28.crate) = 20330
+SHA256 (rust/crates/pkg-config-0.3.30.crate) = d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec
+SIZE (rust/crates/pkg-config-0.3.30.crate) = 20613
SHA256 (rust/crates/ppv-lite86-0.2.17.crate) = 5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de
SIZE (rust/crates/ppv-lite86-0.2.17.crate) = 22242
-SHA256 (rust/crates/proc-macro2-1.0.76.crate) = 95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c
-SIZE (rust/crates/proc-macro2-1.0.76.crate) = 45660
+SHA256 (rust/crates/proc-macro2-1.0.81.crate) = 3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba
+SIZE (rust/crates/proc-macro2-1.0.81.crate) = 48233
SHA256 (rust/crates/proptest-1.4.0.crate) = 31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf
SIZE (rust/crates/proptest-1.4.0.crate) = 198527
SHA256 (rust/crates/quick-error-1.2.3.crate) = a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0
SIZE (rust/crates/quick-error-1.2.3.crate) = 15066
-SHA256 (rust/crates/quote-1.0.35.crate) = 291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef
-SIZE (rust/crates/quote-1.0.35.crate) = 28136
+SHA256 (rust/crates/quote-1.0.36.crate) = 0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7
+SIZE (rust/crates/quote-1.0.36.crate) = 28507
SHA256 (rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404
SIZE (rust/crates/rand-0.8.5.crate) = 87113
SHA256 (rust/crates/rand_chacha-0.3.1.crate) = e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88
@@ -185,38 +185,38 @@ SHA256 (rust/crates/redox_syscall-0.4.1.crate) = 4722d768eff46b75989dd134e5c353f
SIZE (rust/crates/redox_syscall-0.4.1.crate) = 24858
SHA256 (rust/crates/redox_termios-0.1.3.crate) = 20145670ba436b55d91fc92d25e71160fbfbdd57831631c8d7d36377a476f1cb
SIZE (rust/crates/redox_termios-0.1.3.crate) = 3240
-SHA256 (rust/crates/regex-1.10.2.crate) = 380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343
-SIZE (rust/crates/regex-1.10.2.crate) = 252839
-SHA256 (rust/crates/regex-automata-0.4.3.crate) = 5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f
-SIZE (rust/crates/regex-automata-0.4.3.crate) = 617011
-SHA256 (rust/crates/regex-syntax-0.8.2.crate) = c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f
-SIZE (rust/crates/regex-syntax-0.8.2.crate) = 347228
+SHA256 (rust/crates/regex-1.10.4.crate) = c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c
+SIZE (rust/crates/regex-1.10.4.crate) = 253191
+SHA256 (rust/crates/regex-automata-0.4.6.crate) = 86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea
+SIZE (rust/crates/regex-automata-0.4.6.crate) = 617565
+SHA256 (rust/crates/regex-syntax-0.8.3.crate) = adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56
+SIZE (rust/crates/regex-syntax-0.8.3.crate) = 347497
SHA256 (rust/crates/rle-decode-fast-1.0.3.crate) = 3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422
SIZE (rust/crates/rle-decode-fast-1.0.3.crate) = 62086
-SHA256 (rust/crates/rustix-0.38.28.crate) = 72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316
-SIZE (rust/crates/rustix-0.38.28.crate) = 365398
+SHA256 (rust/crates/rustix-0.38.34.crate) = 70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f
+SIZE (rust/crates/rustix-0.38.34.crate) = 365160
SHA256 (rust/crates/rusty-fork-0.3.0.crate) = cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f
SIZE (rust/crates/rusty-fork-0.3.0.crate) = 19881
-SHA256 (rust/crates/ryu-1.0.16.crate) = f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c
-SIZE (rust/crates/ryu-1.0.16.crate) = 47351
+SHA256 (rust/crates/ryu-1.0.17.crate) = e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1
+SIZE (rust/crates/ryu-1.0.17.crate) = 47537
SHA256 (rust/crates/schannel-0.1.23.crate) = fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534
SIZE (rust/crates/schannel-0.1.23.crate) = 41667
-SHA256 (rust/crates/serde-1.0.195.crate) = 63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02
-SIZE (rust/crates/serde-1.0.195.crate) = 76856
-SHA256 (rust/crates/serde_derive-1.0.195.crate) = 46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c
-SIZE (rust/crates/serde_derive-1.0.195.crate) = 55687
-SHA256 (rust/crates/serde_json-1.0.111.crate) = 176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4
-SIZE (rust/crates/serde_json-1.0.111.crate) = 146447
+SHA256 (rust/crates/serde-1.0.198.crate) = 9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc
+SIZE (rust/crates/serde-1.0.198.crate) = 77577
+SHA256 (rust/crates/serde_derive-1.0.198.crate) = e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9
+SIZE (rust/crates/serde_derive-1.0.198.crate) = 55787
+SHA256 (rust/crates/serde_json-1.0.116.crate) = 3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813
+SIZE (rust/crates/serde_json-1.0.116.crate) = 146790
SHA256 (rust/crates/sha2-0.10.8.crate) = 793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8
SIZE (rust/crates/sha2-0.10.8.crate) = 26357
-SHA256 (rust/crates/socket2-0.4.10.crate) = 9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d
-SIZE (rust/crates/socket2-0.4.10.crate) = 45697
-SHA256 (rust/crates/strsim-0.10.0.crate) = 73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623
-SIZE (rust/crates/strsim-0.10.0.crate) = 11355
-SHA256 (rust/crates/syn-2.0.48.crate) = 0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f
-SIZE (rust/crates/syn-2.0.48.crate) = 250566
-SHA256 (rust/crates/tempfile-3.9.0.crate) = 01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa
-SIZE (rust/crates/tempfile-3.9.0.crate) = 32182
+SHA256 (rust/crates/socket2-0.5.6.crate) = 05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871
+SIZE (rust/crates/socket2-0.5.6.crate) = 55270
+SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f
+SIZE (rust/crates/strsim-0.11.1.crate) = 14266
+SHA256 (rust/crates/syn-2.0.60.crate) = 909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3
+SIZE (rust/crates/syn-2.0.60.crate) = 255808
+SHA256 (rust/crates/tempfile-3.10.1.crate) = 85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1
+SIZE (rust/crates/tempfile-3.10.1.crate) = 33653
SHA256 (rust/crates/terminal_size-0.3.0.crate) = 21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7
SIZE (rust/crates/terminal_size-0.3.0.crate) = 10096
SHA256 (rust/crates/termion-3.0.0.crate) = 417813675a504dfbbf21bfde32c03e5bf9f2413999962b479023c02848c1c7a5
@@ -231,18 +231,18 @@ SHA256 (rust/crates/typenum-1.17.0.crate) = 42ff0bf0c66b8238c6f3b578df37d0b7848e
SIZE (rust/crates/typenum-1.17.0.crate) = 42849
SHA256 (rust/crates/unarray-0.1.4.crate) = eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94
SIZE (rust/crates/unarray-0.1.4.crate) = 12895
-SHA256 (rust/crates/unicode-bidi-0.3.14.crate) = 6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416
-SIZE (rust/crates/unicode-bidi-0.3.14.crate) = 56429
+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.22.crate) = 5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921
-SIZE (rust/crates/unicode-normalization-0.1.22.crate) = 122604
+SHA256 (rust/crates/unicode-normalization-0.1.23.crate) = a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5
+SIZE (rust/crates/unicode-normalization-0.1.23.crate) = 122649
SHA256 (rust/crates/url-2.5.0.crate) = 31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633
SIZE (rust/crates/url-2.5.0.crate) = 78605
SHA256 (rust/crates/utf8parse-0.2.1.crate) = 711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a
SIZE (rust/crates/utf8parse-0.2.1.crate) = 13435
-SHA256 (rust/crates/uuid-1.6.1.crate) = 5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560
-SIZE (rust/crates/uuid-1.6.1.crate) = 55554
+SHA256 (rust/crates/uuid-1.8.0.crate) = a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0
+SIZE (rust/crates/uuid-1.8.0.crate) = 44043
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.4.crate) = 49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f
@@ -251,22 +251,16 @@ SHA256 (rust/crates/wait-timeout-0.2.0.crate) = 9f200f5b12eb75f8c1ed65abd4b2db8a
SIZE (rust/crates/wait-timeout-0.2.0.crate) = 12441
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.89.crate) = 0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e
-SIZE (rust/crates/wasm-bindgen-0.2.89.crate) = 181935
-SHA256 (rust/crates/wasm-bindgen-backend-0.2.89.crate) = 1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826
-SIZE (rust/crates/wasm-bindgen-backend-0.2.89.crate) = 28205
-SHA256 (rust/crates/wasm-bindgen-macro-0.2.89.crate) = 0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2
-SIZE (rust/crates/wasm-bindgen-macro-0.2.89.crate) = 13906
-SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.89.crate) = f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283
-SIZE (rust/crates/wasm-bindgen-macro-support-0.2.89.crate) = 20008
-SHA256 (rust/crates/wasm-bindgen-shared-0.2.89.crate) = 7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f
-SIZE (rust/crates/wasm-bindgen-shared-0.2.89.crate) = 7265
-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-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/wasm-bindgen-0.2.92.crate) = 4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8
+SIZE (rust/crates/wasm-bindgen-0.2.92.crate) = 184119
+SHA256 (rust/crates/wasm-bindgen-backend-0.2.92.crate) = 614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da
+SIZE (rust/crates/wasm-bindgen-backend-0.2.92.crate) = 28348
+SHA256 (rust/crates/wasm-bindgen-macro-0.2.92.crate) = a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726
+SIZE (rust/crates/wasm-bindgen-macro-0.2.92.crate) = 13835
+SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.92.crate) = e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7
+SIZE (rust/crates/wasm-bindgen-macro-support-0.2.92.crate) = 20092
+SHA256 (rust/crates/wasm-bindgen-shared-0.2.92.crate) = af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96
+SIZE (rust/crates/wasm-bindgen-shared-0.2.92.crate) = 7263
SHA256 (rust/crates/windows-core-0.52.0.crate) = 33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9
SIZE (rust/crates/windows-core-0.52.0.crate) = 42154
SHA256 (rust/crates/windows-sys-0.48.0.crate) = 677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9
@@ -275,43 +269,45 @@ SHA256 (rust/crates/windows-sys-0.52.0.crate) = 282be5f36a8ce781fad8c8ae18fa3f9b
SIZE (rust/crates/windows-sys-0.52.0.crate) = 2576877
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.0.crate) = 8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd
-SIZE (rust/crates/windows-targets-0.52.0.crate) = 6229
+SHA256 (rust/crates/windows-targets-0.52.5.crate) = 6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb
+SIZE (rust/crates/windows-targets-0.52.5.crate) = 6376
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.0.crate) = cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea
-SIZE (rust/crates/windows_aarch64_gnullvm-0.52.0.crate) = 430182
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.52.5.crate) = 7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263
+SIZE (rust/crates/windows_aarch64_gnullvm-0.52.5.crate) = 433266
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.0.crate) = bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef
-SIZE (rust/crates/windows_aarch64_msvc-0.52.0.crate) = 821663
+SHA256 (rust/crates/windows_aarch64_msvc-0.52.5.crate) = 9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6
+SIZE (rust/crates/windows_aarch64_msvc-0.52.5.crate) = 827944
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.0.crate) = a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313
-SIZE (rust/crates/windows_i686_gnu-0.52.0.crate) = 870285
+SHA256 (rust/crates/windows_i686_gnu-0.52.5.crate) = 88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670
+SIZE (rust/crates/windows_i686_gnu-0.52.5.crate) = 875699
+SHA256 (rust/crates/windows_i686_gnullvm-0.52.5.crate) = 87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9
+SIZE (rust/crates/windows_i686_gnullvm-0.52.5.crate) = 473064
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.0.crate) = ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a
-SIZE (rust/crates/windows_i686_msvc-0.52.0.crate) = 888693
+SHA256 (rust/crates/windows_i686_msvc-0.52.5.crate) = db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf
+SIZE (rust/crates/windows_i686_msvc-0.52.5.crate) = 895404
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.0.crate) = 3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd
-SIZE (rust/crates/windows_x86_64_gnu-0.52.0.crate) = 826213
+SHA256 (rust/crates/windows_x86_64_gnu-0.52.5.crate) = 4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9
+SIZE (rust/crates/windows_x86_64_gnu-0.52.5.crate) = 831539
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.0.crate) = 1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e
-SIZE (rust/crates/windows_x86_64_gnullvm-0.52.0.crate) = 430165
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.5.crate) = 852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596
+SIZE (rust/crates/windows_x86_64_gnullvm-0.52.5.crate) = 433246
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.0.crate) = dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04
-SIZE (rust/crates/windows_x86_64_msvc-0.52.0.crate) = 821600
+SHA256 (rust/crates/windows_x86_64_msvc-0.52.5.crate) = bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0
+SIZE (rust/crates/windows_x86_64_msvc-0.52.5.crate) = 827905
SHA256 (rust/crates/winres-0.1.12.crate) = b68db261ef59e9e52806f688020631e987592bd83619edccda9c47d42cde4f6c
SIZE (rust/crates/winres-0.1.12.crate) = 19772
-SHA256 (rust/crates/xml-rs-0.8.19.crate) = 0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a
-SIZE (rust/crates/xml-rs-0.8.19.crate) = 54051
+SHA256 (rust/crates/xml-rs-0.8.20.crate) = 791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193
+SIZE (rust/crates/xml-rs-0.8.20.crate) = 54443
SHA256 (rust/crates/zerocopy-0.7.32.crate) = 74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be
SIZE (rust/crates/zerocopy-0.7.32.crate) = 151096
SHA256 (rust/crates/zerocopy-derive-0.7.32.crate) = 9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6
SIZE (rust/crates/zerocopy-derive-0.7.32.crate) = 37623
-SHA256 (Orange-OpenSource-hurl-4.2.0_GH0.tar.gz) = 8ede2b3e9e1e1fb80000362750814b0fd07911506c1ea13e38e6c2fe80f447f0
-SIZE (Orange-OpenSource-hurl-4.2.0_GH0.tar.gz) = 5261133
+SHA256 (Orange-OpenSource-hurl-4.3.0_GH0.tar.gz) = 499f2430ee6b73b0414ab8aa3c9298be8276e7b404b13c76e4c02a86eb1db9cd
+SIZE (Orange-OpenSource-hurl-4.3.0_GH0.tar.gz) = 5280666
diff --git a/www/icapeg/Makefile b/www/icapeg/Makefile
index b073c875a3e7..c5bf8aba25c0 100644
--- a/www/icapeg/Makefile
+++ b/www/icapeg/Makefile
@@ -1,7 +1,7 @@
PORTNAME= icapeg
DISTVERSIONPREFIX= v
DISTVERSION= 1.0.0
-PORTREVISION= 6
+PORTREVISION= 7
CATEGORIES= www
MAINTAINER= support@egirna.com
diff --git a/www/ikiwiki/Makefile b/www/ikiwiki/Makefile
index 24f387f77ca2..a22a4785aec2 100644
--- a/www/ikiwiki/Makefile
+++ b/www/ikiwiki/Makefile
@@ -1,6 +1,5 @@
PORTNAME= ikiwiki
-DISTVERSION= 3.20200202.3
-PORTREVISION= 1
+DISTVERSION= 3.20200202.4
CATEGORIES= www
MASTER_SITES= DEBIAN_POOL \
LOCAL/mat/${PORTNAME}
@@ -100,7 +99,5 @@ post-install-EXAMPLES-on:
@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
${INSTALL_DATA} ${WRKSRC}/ikiwiki.setup ${STAGEDIR}${EXAMPLESDIR}
${INSTALL_DATA} ${WRKSRC}/wikilist ${STAGEDIR}${EXAMPLESDIR}
- @${RMDIR} ${STAGEDIR}${EXAMPLESDIR}/doc/examples
- @${RMDIR} ${STAGEDIR}${EXAMPLESDIR}/doc
.include <bsd.port.mk>
diff --git a/www/ikiwiki/distinfo b/www/ikiwiki/distinfo
index 0ba43fc1e813..469f47a08b49 100644
--- a/www/ikiwiki/distinfo
+++ b/www/ikiwiki/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1581933496
-SHA256 (ikiwiki_3.20200202.3.orig.tar.xz) = 594f13bcee8959356376a42eed6c5a8e295d325724b1c09f9395404e3262796a
-SIZE (ikiwiki_3.20200202.3.orig.tar.xz) = 2689636
+TIMESTAMP = 1714205232
+SHA256 (ikiwiki_3.20200202.4.orig.tar.xz) = be61813068b6c5f5b77f2b346e41efac59d9f0574b6a361154851f735412fe8f
+SIZE (ikiwiki_3.20200202.4.orig.tar.xz) = 2733060
diff --git a/www/ilias/Makefile b/www/ilias/Makefile
index 2575f7ee060e..55b4519edf16 100644
--- a/www/ilias/Makefile
+++ b/www/ilias/Makefile
@@ -1,6 +1,6 @@
PORTNAME= ilias
DISTVERSIONPREFIX= v
-DISTVERSION= 9.0_beta3
+DISTVERSION= 9.1
CATEGORIES= www education
PKGNAMEPREFIX= ${PHP_PKGNAMEPREFIX}
@@ -15,18 +15,20 @@ RUN_DEPENDS= ${LOCALBASE}/share/pear/Auth/Auth.php:security/pear-Auth@${PHP_FLAV
${LOCALBASE}/share/pear/HTML/Template/IT.php:devel/pear-HTML_Template_IT@${PHP_FLAVOR} \
${LOCALBASE}/share/pear/MDB2.php:databases/pear-MDB2@${PHP_FLAVOR} \
${LOCALBASE}/share/pear/PEAR.php:devel/pear@${PHP_FLAVOR} \
+ ${PECL_PKGNAMEPREFIX}imagick>=0:graphics/pecl-imagick@${PHP_FLAVOR} \
${UNZIP_CMD}:archivers/unzip \
composer:devel/php-composer@${PHP_FLAVOR} \
sudo:security/sudo \
zip:archivers/zip
-USES= cpe jpeg magick:6,run php:flavors
+USES= cpe jpeg magick:7,run php:flavors
USE_GITHUB= yes
GH_ACCOUNT= ILIAS-eLearning
GH_PROJECT= ILIAS
-USE_PHP= curl dom gd ldap fileinfo \
+USE_PHP= curl dom gd ldap fileinfo iconv \
pdo_mysql session simplexml soap \
- tokenizer xmlrpc xmlwriter xsl zlib
+ tokenizer xmlrpc xmlwriter xmlreader \
+ xsl zip zlib
CONFLICTS= ilias6
diff --git a/www/ilias/distinfo b/www/ilias/distinfo
index 713aa50e4301..9d47a25328a4 100644
--- a/www/ilias/distinfo
+++ b/www/ilias/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1708003481
-SHA256 (ILIAS-eLearning-ILIAS-v9.0_beta3_GH0.tar.gz) = 6306641696e0e9710dee63c038ac85c14729736ffe2eaa7d8450c48f90848e8f
-SIZE (ILIAS-eLearning-ILIAS-v9.0_beta3_GH0.tar.gz) = 31634375
+TIMESTAMP = 1716199466
+SHA256 (ILIAS-eLearning-ILIAS-v9.1_GH0.tar.gz) = 7a3c98f278d17b757e2a8cee070b68cc5159b47d63c7f9ccfe0a288b9353e60d
+SIZE (ILIAS-eLearning-ILIAS-v9.1_GH0.tar.gz) = 31891914
diff --git a/www/interchange/Makefile b/www/interchange/Makefile
index e72cb3f604c5..931100be35fb 100644
--- a/www/interchange/Makefile
+++ b/www/interchange/Makefile
@@ -11,6 +11,9 @@ WWW= https://www.icdevgroup.org/
LICENSE= GPLv2+
LICENSE_FILE= ${WRKSRC}/LICENSE
+DEPRECATED= Outdated, current version was released in 2010 is unsupported upstream
+EXPIRATION_DATE=2024-06-30
+
BUILD_DEPENDS= ${RUN_DEPENDS}
RUN_DEPENDS= p5-Safe-Hole>=0.10:security/p5-Safe-Hole \
p5-URI>=1.37:net/p5-URI \
diff --git a/www/iridium/files/patch-chrome_browser_devtools_BUILD.gn b/www/iridium/files/patch-chrome_browser_devtools_BUILD.gn
new file mode 100644
index 000000000000..dcfd5a407511
--- /dev/null
+++ b/www/iridium/files/patch-chrome_browser_devtools_BUILD.gn
@@ -0,0 +1,10 @@
+--- chrome/browser/devtools/BUILD.gn.orig 2024-01-25 17:18:37 UTC
++++ chrome/browser/devtools/BUILD.gn
+@@ -121,6 +121,7 @@ static_library("devtools") {
+ "//chrome/browser/autofill:autofill",
+ "//components/autofill/content/browser:browser",
+ "//components/autofill/core/browser:browser",
++ "//components/enterprise/buildflags",
+ "//components/paint_preview/buildflags:buildflags",
+ "//content/public/browser",
+ "//net",
diff --git a/www/iridium/files/patch-chrome_browser_safe__browsing_BUILD.gn b/www/iridium/files/patch-chrome_browser_safe__browsing_BUILD.gn
new file mode 100644
index 000000000000..a5b1c7875a14
--- /dev/null
+++ b/www/iridium/files/patch-chrome_browser_safe__browsing_BUILD.gn
@@ -0,0 +1,10 @@
+--- chrome/browser/safe_browsing/BUILD.gn.orig 2024-01-25 17:18:38 UTC
++++ chrome/browser/safe_browsing/BUILD.gn
+@@ -144,6 +144,7 @@ static_library("safe_browsing") {
+ "//chrome/browser/profiles:profile",
+ "//chrome/common/safe_browsing:proto",
+ "//components/autofill/core/browser",
++ "//components/compose:buildflags",
+ "//components/content_settings/core/browser",
+ "//components/no_state_prefetch/browser",
+ "//components/omnibox/browser",
diff --git a/www/iridium/files/patch-components_BUILD.gn b/www/iridium/files/patch-components_BUILD.gn
new file mode 100644
index 000000000000..5ad595adf643
--- /dev/null
+++ b/www/iridium/files/patch-components_BUILD.gn
@@ -0,0 +1,22 @@
+--- components/BUILD.gn.orig 2024-01-25 17:18:39 UTC
++++ components/BUILD.gn
+@@ -812,8 +812,7 @@ test("components_unittests") {
+ # Since //chrome depends on //extensions, we also only assert_no_deps on
+ # extensions targets for non-lacros builds.
+ if (!is_chromeos_lacros) {
+- assert_no_deps = [ "//chrome/*" ]
+- assert_no_deps += disallowed_extension_deps_
++ assert_no_deps = disallowed_extension_deps_
+ }
+
+ if (is_ios) {
+@@ -1100,8 +1099,7 @@ if (use_blink) {
+ # Since //chrome depends on //extensions, we also only assert_no_deps on
+ # extensions targets for non-lacros builds.
+ if (!is_chromeos_lacros) {
+- assert_no_deps = [ "//chrome/*" ]
+- assert_no_deps += disallowed_extension_deps_
++ assert_no_deps = disallowed_extension_deps_
+ }
+
+ if (is_fuchsia) {
diff --git a/www/iridium/files/patch-content_browser_BUILD.gn b/www/iridium/files/patch-content_browser_BUILD.gn
index ecbab49cb8cc..ef9136e8dc3e 100644
--- a/www/iridium/files/patch-content_browser_BUILD.gn
+++ b/www/iridium/files/patch-content_browser_BUILD.gn
@@ -1,16 +1,57 @@
---- content/browser/BUILD.gn.orig 2024-02-04 14:46:08 UTC
+--- content/browser/BUILD.gn.orig 2024-01-25 17:18:41 UTC
+++ content/browser/BUILD.gn
-@@ -2474,6 +2474,13 @@ source_set("browser") {
+@@ -12,6 +12,7 @@ import("//chromeos/ash/components/assistant/assistant.
+ import("//build/config/ozone.gni")
+ import("//build/config/ui.gni")
+ import("//chromeos/ash/components/assistant/assistant.gni")
++import("//components/supervised_user/buildflags.gni")
+ import("//components/viz/common/debugger/viz_debugger.gni")
+ import("//content/common/features.gni")
+ import("//content/public/common/zygote/features.gni")
+@@ -66,11 +67,13 @@ source_set("browser") {
+ "//build:branding_buildflags",
+ "//build:chromecast_buildflags",
+ "//build:chromeos_buildflags",
++ "//build/config/chromebox_for_meetings:buildflags",
+ "//build/config/compiler:compiler_buildflags",
+ "//cc",
+ "//cc/animation",
+ "//cc/mojo_embedder",
+ "//cc/paint",
++ "//chrome/common:buildflags",
+ "//components/attribution_reporting:mojom",
+ "//components/back_forward_cache:enum",
+ "//components/browsing_topics/common:common",
+@@ -91,6 +94,7 @@ source_set("browser") {
+ "//components/offline_pages/buildflags",
+ "//components/offline_pages/core/request_header",
+ "//components/os_crypt/sync",
++ "//components/paint_preview/buildflags:buildflags",
+ "//components/payments/content/icon",
+ "//components/payments/mojom",
+ "//components/power_monitor",
+@@ -103,8 +107,10 @@ source_set("browser") {
+ "//components/services/storage/public/cpp",
+ "//components/services/storage/public/mojom",
+ "//components/sqlite_proto",
++ "//components/supervised_user/core/common:buildflags",
+ "//components/system_media_controls",
+ "//components/tracing:startup_tracing",
++ "//components/translate/content/common",
+ "//components/ui_devtools",
+ "//components/ukm",
+ "//components/ukm/debug:util",
+@@ -2472,6 +2478,13 @@ source_set("browser") {
+ if (allow_oop_video_decoder) {
+ sources += [ "media/stable_video_decoder_factory.cc" ]
deps += [ "//media/mojo/mojom/stable:stable_video_decoder" ]
- }
-
++ }
++
+ if (is_bsd) {
+ sources -= [
+ "sandbox_ipc_linux.cc",
+ "sandbox_ipc_linux.h",
+ ]
-+ }
-+
+ }
+
if (is_chromeos) {
- sources += [
- "handwriting/handwriting_recognition_service_impl_cros.cc",
diff --git a/www/iridium/files/patch-net_BUILD.gn b/www/iridium/files/patch-net_BUILD.gn
index c905001584c7..a2d622107922 100644
--- a/www/iridium/files/patch-net_BUILD.gn
+++ b/www/iridium/files/patch-net_BUILD.gn
@@ -1,4 +1,4 @@
---- net/BUILD.gn.orig 2024-02-04 14:46:08 UTC
+--- net/BUILD.gn.orig 2024-01-25 17:17:56 UTC
+++ net/BUILD.gn
@@ -122,7 +122,7 @@ net_configs = [
"//build/config/compiler:wexit_time_destructors",
@@ -9,7 +9,15 @@
net_configs += [ "//build/config/linux:libresolv" ]
}
-@@ -1240,6 +1240,19 @@ component("net") {
+@@ -1095,6 +1095,7 @@ component("net") {
+ ":net_deps",
+ "//build:chromeos_buildflags",
+ "//components/miracle_parameter/common",
++ "//media:media_buildflags",
+ "//net/http:transport_security_state_generated_files",
+ ]
+
+@@ -1240,6 +1241,19 @@ component("net") {
]
}
@@ -29,7 +37,7 @@
if (is_mac) {
sources += [
"base/network_notification_thread_mac.cc",
-@@ -1396,7 +1409,7 @@ component("net") {
+@@ -1396,7 +1410,7 @@ component("net") {
}
# Use getifaddrs() on POSIX platforms, except Linux.
@@ -38,7 +46,7 @@
sources += [
"base/network_interfaces_getifaddrs.cc",
"base/network_interfaces_getifaddrs.h",
-@@ -2886,7 +2899,7 @@ test("net_unittests") {
+@@ -2886,7 +2900,7 @@ test("net_unittests") {
]
}
@@ -47,7 +55,7 @@
sources += [
"base/address_tracker_linux_unittest.cc",
"base/network_interfaces_linux_unittest.cc",
-@@ -2974,6 +2987,10 @@ test("net_unittests") {
+@@ -2974,6 +2988,10 @@ test("net_unittests") {
]
}
@@ -58,7 +66,7 @@
if (enable_websockets) {
deps += [ "//net/server:tests" ]
}
-@@ -3044,7 +3061,7 @@ test("net_unittests") {
+@@ -3044,7 +3062,7 @@ test("net_unittests") {
]
}
@@ -67,7 +75,7 @@
sources += [ "tools/quic/quic_simple_server_test.cc" ]
}
-@@ -3179,7 +3196,7 @@ test("net_unittests") {
+@@ -3179,7 +3197,7 @@ test("net_unittests") {
}
# Use getifaddrs() on POSIX platforms, except Linux.
diff --git a/www/iridium/files/patch-net_dns_BUILD.gn b/www/iridium/files/patch-net_dns_BUILD.gn
index 064fead49a33..f30aaac0dd85 100644
--- a/www/iridium/files/patch-net_dns_BUILD.gn
+++ b/www/iridium/files/patch-net_dns_BUILD.gn
@@ -1,4 +1,4 @@
---- net/dns/BUILD.gn.orig 2023-08-28 20:17:35 UTC
+--- net/dns/BUILD.gn.orig 2024-01-25 17:17:56 UTC
+++ net/dns/BUILD.gn
@@ -128,7 +128,7 @@ source_set("dns") {
"dns_config_service_android.cc",
@@ -9,7 +9,17 @@
sources += [
"dns_config_service_linux.cc",
"dns_config_service_linux.h",
-@@ -169,6 +169,7 @@ source_set("dns") {
+@@ -162,6 +162,9 @@ source_set("dns") {
+ }
+
+ deps = [ "//net:net_deps" ]
++ if (is_bsd) {
++ deps += [ "//components/services/screen_ai/buildflags" ]
++ }
+
+ public_deps = [
+ ":dns_client",
+@@ -169,6 +172,7 @@ source_set("dns") {
":host_resolver_manager",
":mdns_client",
"//net:net_public_deps",
@@ -17,7 +27,7 @@
]
allow_circular_includes_from = [
-@@ -434,9 +435,9 @@ source_set("tests") {
+@@ -434,9 +438,9 @@ source_set("tests") {
if (is_android) {
sources += [ "dns_config_service_android_unittest.cc" ]
diff --git a/www/iridium/files/patch-tools_gn_bootstrap_bootstrap.py b/www/iridium/files/patch-tools_gn_bootstrap_bootstrap.py
new file mode 100644
index 000000000000..8f51d62c3310
--- /dev/null
+++ b/www/iridium/files/patch-tools_gn_bootstrap_bootstrap.py
@@ -0,0 +1,11 @@
+--- tools/gn/bootstrap/bootstrap.py.orig 2024-04-19 13:02:56 UTC
++++ tools/gn/bootstrap/bootstrap.py
+@@ -122,7 +122,7 @@ def main(argv):
+
+ shutil.copy2(
+ os.path.join(BOOTSTRAP_DIR, 'last_commit_position.h'), gn_build_dir)
+- cmd = [ninja_binary, '-C', gn_build_dir, '-w', 'dupbuild=err', 'gn']
++ cmd = [ninja_binary, '-C', gn_build_dir, 'gn']
+ if options.jobs:
+ cmd += ['-j', str(options.jobs)]
+ subprocess.check_call(cmd)
diff --git a/www/itop/Makefile b/www/itop/Makefile
index eab0891af7b7..d999fcf302df 100644
--- a/www/itop/Makefile
+++ b/www/itop/Makefile
@@ -6,11 +6,14 @@ DISTNAME= iTop-${PORTVERSION}-4463
MAINTAINER= ports@FreeBSD.org
COMMENT= Simple, web based IT Service Management tool
-WWW= https://www.combodo.com/
+WWW= https://github.com/Combodo/iTop
LICENSE= AGPLv3
LICENSE_FILE= ${WRKDIR}/LICENSE
+DEPRECATED= Outdated, current version is 5 years old and unsupported upstream
+EXPIRATION_DATE=2024-06-30
+
RUN_DEPENDS= ${LOCALBASE}/bin/dot:graphics/graphviz
USES= cpe shebangfix php zip
diff --git a/www/jira-cli/Makefile b/www/jira-cli/Makefile
index c8808debb055..ad92bfde5548 100644
--- a/www/jira-cli/Makefile
+++ b/www/jira-cli/Makefile
@@ -1,7 +1,7 @@
PORTNAME= jira-cli
DISTVERSIONPREFIX= v
DISTVERSION= 1.5.1
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= www
DIST_SUBDIR= jira-cli
diff --git a/www/jmeter/Makefile b/www/jmeter/Makefile
index ff67cb1b3dbe..fc6d9ceb274d 100644
--- a/www/jmeter/Makefile
+++ b/www/jmeter/Makefile
@@ -1,10 +1,10 @@
PORTNAME= apache-jmeter
PORTVERSION= 2.11
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= www benchmarks java
MASTER_SITES= https://archive.apache.org/dist/jmeter/binaries/
-MAINTAINER= mi@aldan.algebra.com
+MAINTAINER= ports@virtual-estates.net
COMMENT= Functional behaviour load and performance test application
WWW= https://jmeter.apache.org/
diff --git a/www/jwt-cli/Makefile b/www/jwt-cli/Makefile
index aa92eecd7f3e..ae0eacac32fc 100644
--- a/www/jwt-cli/Makefile
+++ b/www/jwt-cli/Makefile
@@ -1,6 +1,6 @@
PORTNAME= jwt-cli
PORTVERSION= 6.0.0
-PORTREVISION= 7
+PORTREVISION= 8
CATEGORIES= www
MAINTAINER= osa@FreeBSD.org
diff --git a/www/kanboard/Makefile b/www/kanboard/Makefile
index f6fbc20513e3..2b78a1cc1cb4 100644
--- a/www/kanboard/Makefile
+++ b/www/kanboard/Makefile
@@ -1,6 +1,6 @@
PORTNAME= kanboard
DISTVERSIONPREFIX= v
-DISTVERSION= 1.2.35
+DISTVERSION= 1.2.36
CATEGORIES= www
PKGNAMEPREFIX= ${PHP_PKGNAMEPREFIX}
diff --git a/www/kanboard/distinfo b/www/kanboard/distinfo
index e4280837c7a2..2c8ceb805274 100644
--- a/www/kanboard/distinfo
+++ b/www/kanboard/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1710743070
-SHA256 (kanboard-kanboard-v1.2.35_GH0.tar.gz) = 3c6a4175fe31c50aea68e5a252d9e3f36e98fc0948f93583dfbfacf570171c64
-SIZE (kanboard-kanboard-v1.2.35_GH0.tar.gz) = 3389625
+TIMESTAMP = 1714926826
+SHA256 (kanboard-kanboard-v1.2.36_GH0.tar.gz) = 51a0e84e3f7eaf1d4efb16ac994568aabad47b47551f487ca17d46c47ca905e2
+SIZE (kanboard-kanboard-v1.2.36_GH0.tar.gz) = 3395786
diff --git a/www/kanboard/pkg-plist b/www/kanboard/pkg-plist
index 0b41f79204fa..aa7ff656e66a 100644
--- a/www/kanboard/pkg-plist
+++ b/www/kanboard/pkg-plist
@@ -1067,6 +1067,8 @@
%%WWWDIR%%/assets/js/vendor.min.js
%%WWWDIR%%/cli
%%WWWDIR%%/config.default.php
+%%WWWDIR%%/custom-hooks/install-custom-hooks.sh
+%%WWWDIR%%/custom-hooks/post-checkout
%%WWWDIR%%/data/.htaccess
%%WWWDIR%%/data/web.config
%%WWWDIR%%/favicon.ico
@@ -2066,6 +2068,7 @@
%%WWWDIR%%/vendor/symfony/service-contracts/ServiceSubscriberInterface.php
%%WWWDIR%%/vendor/symfony/service-contracts/ServiceSubscriberTrait.php
%%WWWDIR%%/vendor/symfony/service-contracts/Test/ServiceLocatorTest.php
+%%WWWDIR%%/vendor/symfony/service-contracts/Test/ServiceLocatorTestCase.php
%%WWWDIR%%/vendor/symfony/string/AbstractString.php
%%WWWDIR%%/vendor/symfony/string/AbstractUnicodeString.php
%%WWWDIR%%/vendor/symfony/string/ByteString.php
diff --git a/www/kineto/Makefile b/www/kineto/Makefile
index a4b7bdf5e15b..e8fd463eb167 100644
--- a/www/kineto/Makefile
+++ b/www/kineto/Makefile
@@ -1,6 +1,6 @@
PORTNAME= kineto
DISTVERSION= g20211104
-PORTREVISION= 18
+PORTREVISION= 19
CATEGORIES= www
MAINTAINER= corey@electrickite.org
diff --git a/www/kiwix-tools/Makefile b/www/kiwix-tools/Makefile
index 6f4bd42e2e4f..1806294fb12a 100644
--- a/www/kiwix-tools/Makefile
+++ b/www/kiwix-tools/Makefile
@@ -1,6 +1,5 @@
PORTNAME= kiwix-tools
-DISTVERSION= 3.5.0
-PORTREVISION= 2
+DISTVERSION= 3.7.0
CATEGORIES= www
MAINTAINER= olce.freebsd.ports@certner.fr
@@ -13,7 +12,7 @@ LICENSE_FILE= ${WRKSRC}/COPYING
LIB_DEPENDS= libkiwix.so:devel/libkiwix \
libzim.so:devel/libzim
-USES= compiler:c++11-lang meson pkgconfig
+USES= compiler:c++17-lang meson pkgconfig
USE_GITHUB= yes
GH_ACCOUNT= kiwix
USE_RC_SUBR= kiwix_serve
diff --git a/www/kiwix-tools/distinfo b/www/kiwix-tools/distinfo
index 46157bfd787f..6c8edab5c109 100644
--- a/www/kiwix-tools/distinfo
+++ b/www/kiwix-tools/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1686583949
-SHA256 (kiwix-kiwix-tools-3.5.0_GH0.tar.gz) = b15e69dd0ae690cb7a000ad815e5037db5276d92310e0b44832b960a51bfaeac
-SIZE (kiwix-kiwix-tools-3.5.0_GH0.tar.gz) = 538400
+TIMESTAMP = 1716231298
+SHA256 (kiwix-kiwix-tools-3.7.0_GH0.tar.gz) = 7367400dab80fcf0702657b2d5324ec29f344581318659c106f5b7fca30fa0db
+SIZE (kiwix-kiwix-tools-3.7.0_GH0.tar.gz) = 539897
diff --git a/www/ladybird/Makefile b/www/ladybird/Makefile
index 3ce387acce00..203a1400b6ca 100644
--- a/www/ladybird/Makefile
+++ b/www/ladybird/Makefile
@@ -1,5 +1,5 @@
PORTNAME= ladybird
-PORTVERSION= g20240226
+PORTVERSION= g20240505
CATEGORIES= www
MASTER_SITES= https://github.com/unicode-org/cldr-json/releases/download/${CLDRVERSION}/:cldr \
https://www.unicode.org/Public/${UCDVERSION}/ucd/:ucd \
@@ -34,7 +34,7 @@ USES= cmake:testing compiler:c++20-lang gl localbase:ldflags python:build qt:6
USE_GITHUB= yes
GH_ACCOUNT= SerenityOS
GH_PROJECT= serenity
-GH_TAGNAME= a8a1d8746e28e743a7d86e6e660140fc28949e4f
+GH_TAGNAME= 3a7bea7402e879f731c9f4802cec84921f496942
USE_GL= egl
USE_LDCONFIG= yes
USE_QT= base tools:build wayland multimedia
diff --git a/www/ladybird/distinfo b/www/ladybird/distinfo
index 75e532cdafd1..5eb55390f0ec 100644
--- a/www/ladybird/distinfo
+++ b/www/ladybird/distinfo
@@ -1,13 +1,13 @@
-TIMESTAMP = 1708984390
-SHA256 (ladybird-g20240226/cldr-44.0.1-json-modern.zip) = 6daf783158fb3b09aa026a048e1f5ed5773148387b1edadfad33f303371f332a
-SIZE (ladybird-g20240226/cldr-44.0.1-json-modern.zip) = 47935704
-SHA256 (ladybird-g20240226/UCD.zip) = cb1c663d053926500cd501229736045752713a066bd75802098598b7a7056177
-SIZE (ladybird-g20240226/UCD.zip) = 8248819
-SHA256 (ladybird-g20240226/emoji-test.txt) = d876ee249aa28eaa76cfa6dfaa702847a8d13b062aa488d465d0395ee8137ed9
-SIZE (ladybird-g20240226/emoji-test.txt) = 639405
-SHA256 (ladybird-g20240226/IdnaMappingTable.txt) = 402cbd285f1f952fcd0834b63541d54f69d3d8f1b8f8599bf71a1a14935f82c4
-SIZE (ladybird-g20240226/IdnaMappingTable.txt) = 874566
-SHA256 (ladybird-g20240226/cacert-2023-08-22.pem) = 23c2469e2a568362a62eecf1b49ed90a15621e6fa30e29947ded3436422de9b9
-SIZE (ladybird-g20240226/cacert-2023-08-22.pem) = 221470
-SHA256 (ladybird-g20240226/SerenityOS-serenity-g20240226-a8a1d8746e28e743a7d86e6e660140fc28949e4f_GH0.tar.gz) = 72fc9689259489600d117cb5bd7463b7635b11e4e7ff795dfea15f0be68686d5
-SIZE (ladybird-g20240226/SerenityOS-serenity-g20240226-a8a1d8746e28e743a7d86e6e660140fc28949e4f_GH0.tar.gz) = 69356886
+TIMESTAMP = 1714913472
+SHA256 (ladybird-g20240505/cldr-44.0.1-json-modern.zip) = 6daf783158fb3b09aa026a048e1f5ed5773148387b1edadfad33f303371f332a
+SIZE (ladybird-g20240505/cldr-44.0.1-json-modern.zip) = 47935704
+SHA256 (ladybird-g20240505/UCD.zip) = cb1c663d053926500cd501229736045752713a066bd75802098598b7a7056177
+SIZE (ladybird-g20240505/UCD.zip) = 8248819
+SHA256 (ladybird-g20240505/emoji-test.txt) = d876ee249aa28eaa76cfa6dfaa702847a8d13b062aa488d465d0395ee8137ed9
+SIZE (ladybird-g20240505/emoji-test.txt) = 639405
+SHA256 (ladybird-g20240505/IdnaMappingTable.txt) = 402cbd285f1f952fcd0834b63541d54f69d3d8f1b8f8599bf71a1a14935f82c4
+SIZE (ladybird-g20240505/IdnaMappingTable.txt) = 874566
+SHA256 (ladybird-g20240505/cacert-2023-08-22.pem) = 23c2469e2a568362a62eecf1b49ed90a15621e6fa30e29947ded3436422de9b9
+SIZE (ladybird-g20240505/cacert-2023-08-22.pem) = 221470
+SHA256 (ladybird-g20240505/SerenityOS-serenity-g20240505-3a7bea7402e879f731c9f4802cec84921f496942_GH0.tar.gz) = 167bccf09e4d3325e5dd292559f6b6179922d410b8aec481ab8853d816592d31
+SIZE (ladybird-g20240505/SerenityOS-serenity-g20240505-3a7bea7402e879f731c9f4802cec84921f496942_GH0.tar.gz) = 69958563
diff --git a/www/ladybird/files/patch-Meta_Lagom_CMakeLists.txt b/www/ladybird/files/patch-Meta_Lagom_CMakeLists.txt
deleted file mode 100644
index 14228ffaa662..000000000000
--- a/www/ladybird/files/patch-Meta_Lagom_CMakeLists.txt
+++ /dev/null
@@ -1,10 +0,0 @@
---- Meta/Lagom/CMakeLists.txt.orig 2024-02-26 22:01:50 UTC
-+++ Meta/Lagom/CMakeLists.txt
-@@ -350,6 +350,7 @@ lagom_lib(AK ak SOURCES ${AK_SOURCES})
- # AK
- add_serenity_subdirectory(AK)
- lagom_lib(AK ak SOURCES ${AK_SOURCES})
-+target_link_libraries(AK PRIVATE execinfo)
-
- # LibCore
- add_serenity_subdirectory(Userland/Libraries/LibCore)
diff --git a/www/ladybird/files/patch-Userland_Libraries_LibCore_Environment.cpp b/www/ladybird/files/patch-Userland_Libraries_LibCore_Environment.cpp
new file mode 100644
index 000000000000..b1582a11e36a
--- /dev/null
+++ b/www/ladybird/files/patch-Userland_Libraries_LibCore_Environment.cpp
@@ -0,0 +1,34 @@
+--- Userland/Libraries/LibCore/Environment.cpp.orig 2024-05-05 05:45:42 UTC
++++ Userland/Libraries/LibCore/Environment.cpp
+@@ -13,7 +13,7 @@
+ #if defined(AK_OS_MACOS) || defined(AK_OS_IOS)
+ # include <crt_externs.h>
+ #else
+-extern char** environ;
++extern "C" char** environ;
+ #endif
+
+ namespace Core::Environment {
+@@ -93,7 +93,7 @@ Optional<StringView> get(StringView name, [[maybe_unus
+ builder.append('\0');
+ // Note the explicit null terminators above.
+
+-#if defined(AK_OS_MACOS) || defined(AK_OS_ANDROID)
++#if defined(AK_OS_MACOS) || defined(AK_OS_ANDROID) || defined(__FreeBSD__) && __FreeBSD__ < 14
+ char* result = ::getenv(builder.string_view().characters_without_null_termination());
+ #else
+ char* result;
+@@ -158,10 +158,12 @@ ErrorOr<void> clear()
+ for (size_t environ_size = 0; environment[environ_size]; ++environ_size) {
+ environment[environ_size] = NULL;
+ }
+-#else
++#elif __FreeBSD__ >= 14
+ auto rc = ::clearenv();
+ if (rc < 0)
+ return Error::from_errno(errno);
++#else
++ environ = NULL;
+ #endif
+ return {};
+ }
diff --git a/www/ladybird/files/patch-Userland_Libraries_LibJS_Heap_BlockAllocator.cpp b/www/ladybird/files/patch-Userland_Libraries_LibJS_Heap_BlockAllocator.cpp
new file mode 100644
index 000000000000..90fbf0f8152c
--- /dev/null
+++ b/www/ladybird/files/patch-Userland_Libraries_LibJS_Heap_BlockAllocator.cpp
@@ -0,0 +1,23 @@
+mmap() with MAP_ANONYMOUS requires that -1 be passed for the fd argument.
+See https://github.com/SerenityOS/serenity/issues/23375.
+
+--- Userland/Libraries/LibJS/Heap/BlockAllocator.cpp.orig 2024-05-05 13:48:53 UTC
++++ Userland/Libraries/LibJS/Heap/BlockAllocator.cpp
+@@ -57,7 +57,7 @@ void* BlockAllocator::allocate_block([[maybe_unused]]
+ #ifdef AK_OS_SERENITY
+ auto* block = (HeapBlock*)serenity_mmap(nullptr, HeapBlock::block_size, PROT_READ | PROT_WRITE, MAP_ANONYMOUS | MAP_RANDOMIZED | MAP_PRIVATE, 0, 0, HeapBlock::block_size, name);
+ #else
+- auto* block = (HeapBlock*)mmap(nullptr, HeapBlock::block_size, PROT_READ | PROT_WRITE, MAP_ANONYMOUS | MAP_PRIVATE, 0, 0);
++ auto* block = (HeapBlock*)mmap(nullptr, HeapBlock::block_size, PROT_READ | PROT_WRITE, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
+ #endif
+ VERIFY(block != MAP_FAILED);
+ LSAN_REGISTER_ROOT_REGION(block, HeapBlock::block_size);
+@@ -74,7 +74,7 @@ void BlockAllocator::deallocate_block(void* block)
+ perror("munmap");
+ VERIFY_NOT_REACHED();
+ }
+- if (mmap(block, HeapBlock::block_size, PROT_READ | PROT_WRITE, MAP_ANONYMOUS | MAP_PRIVATE | MAP_FIXED, 0, 0) != block) {
++ if (mmap(block, HeapBlock::block_size, PROT_READ | PROT_WRITE, MAP_ANONYMOUS | MAP_PRIVATE | MAP_FIXED, -1, 0) != block) {
+ perror("mmap");
+ VERIFY_NOT_REACHED();
+ }
diff --git a/www/ladybird/pkg-plist b/www/ladybird/pkg-plist
index d2f607c1d55f..f9e6189e8c46 100644
--- a/www/ladybird/pkg-plist
+++ b/www/ladybird/pkg-plist
@@ -17,12 +17,12 @@ lib/liblagom-compress.so.0.0.0
lib/liblagom-core.so
lib/liblagom-core.so.0
lib/liblagom-core.so.0.0.0
+lib/liblagom-coreminimal.so
+lib/liblagom-coreminimal.so.0
+lib/liblagom-coreminimal.so.0.0.0
lib/liblagom-crypto.so
lib/liblagom-crypto.so.0
lib/liblagom-crypto.so.0.0.0
-lib/liblagom-diff.so
-lib/liblagom-diff.so.0
-lib/liblagom-diff.so.0.0.0
lib/liblagom-filesystem.so
lib/liblagom-filesystem.so.0
lib/liblagom-filesystem.so.0.0.0
@@ -86,6 +86,9 @@ lib/liblagom-tls.so.0.0.0
lib/liblagom-unicode.so
lib/liblagom-unicode.so.0
lib/liblagom-unicode.so.0.0.0
+lib/liblagom-url.so
+lib/liblagom-url.so.0
+lib/liblagom-url.so.0.0.0
lib/liblagom-video.so
lib/liblagom-video.so.0
lib/liblagom-video.so.0.0.0
@@ -108,14 +111,2013 @@ libexec/ImageDecoder
libexec/RequestServer
libexec/SQLServer
libexec/WebContent
-libexec/WebDriver
-libexec/WebSocket
libexec/WebWorker
-libexec/headless-browser
share/Ladybird/LadybirdConfig.cmake
share/Ladybird/LadybirdConfigVersion.cmake
share/Ladybird/ladybirdTargets-%%CMAKE_BUILD_TYPE%%.cmake
share/Ladybird/ladybirdTargets.cmake
+share/Lagom/emoji/U+10CD00.png
+share/Lagom/emoji/U+10CD01.png
+share/Lagom/emoji/U+10CD02.png
+share/Lagom/emoji/U+10CD03.png
+share/Lagom/emoji/U+10CD04.png
+share/Lagom/emoji/U+10CD05.png
+share/Lagom/emoji/U+10CD06.png
+share/Lagom/emoji/U+10CD07.png
+share/Lagom/emoji/U+10CD08.png
+share/Lagom/emoji/U+10CD09.png
+share/Lagom/emoji/U+10CD0A.png
+share/Lagom/emoji/U+10CD0B.png
+share/Lagom/emoji/U+10CD0C.png
+share/Lagom/emoji/U+10CD0D.png
+share/Lagom/emoji/U+10CD0E.png
+share/Lagom/emoji/U+10CD0F.png
+share/Lagom/emoji/U+10CD10.png
+share/Lagom/emoji/U+10CD11.png
+share/Lagom/emoji/U+10CD12.png
+share/Lagom/emoji/U+10CD13.png
+share/Lagom/emoji/U+10CD14.png
+share/Lagom/emoji/U+10CD15.png
+share/Lagom/emoji/U+10CD16.png
+share/Lagom/emoji/U+10CD17.png
+share/Lagom/emoji/U+10CD18.png
+share/Lagom/emoji/U+10CD19.png
+share/Lagom/emoji/U+10CD1A.png
+share/Lagom/emoji/U+10CD1B.png
+share/Lagom/emoji/U+10CD1C.png
+share/Lagom/emoji/U+10CD1D.png
+share/Lagom/emoji/U+10CD1E.png
+share/Lagom/emoji/U+10CD1F.png
+share/Lagom/emoji/U+10CD20.png
+share/Lagom/emoji/U+10CD21.png
+share/Lagom/emoji/U+10CD22.png
+share/Lagom/emoji/U+10CD23.png
+share/Lagom/emoji/U+10CD24.png
+share/Lagom/emoji/U+10CD25.png
+share/Lagom/emoji/U+10CD26.png
+share/Lagom/emoji/U+10CD60.png
+share/Lagom/emoji/U+10CD61.png
+share/Lagom/emoji/U+10CD62.png
+share/Lagom/emoji/U+10CD63.png
+share/Lagom/emoji/U+10CD64.png
+share/Lagom/emoji/U+10CD65.png
+share/Lagom/emoji/U+10CD66.png
+share/Lagom/emoji/U+10CD67.png
+share/Lagom/emoji/U+10CD68.png
+share/Lagom/emoji/U+10CD69.png
+share/Lagom/emoji/U+10CD6A.png
+share/Lagom/emoji/U+10CD6B.png
+share/Lagom/emoji/U+10CD90.png
+share/Lagom/emoji/U+10CD91.png
+share/Lagom/emoji/U+10CD92.png
+share/Lagom/emoji/U+10CD93.png
+share/Lagom/emoji/U+10CDB0.png
+share/Lagom/emoji/U+10CDB1.png
+share/Lagom/emoji/U+10CDD0.png
+share/Lagom/emoji/U+10CDE0.png
+share/Lagom/emoji/U+10CDE1.png
+share/Lagom/emoji/U+10CDE2.png
+share/Lagom/emoji/U+10CDE3.png
+share/Lagom/emoji/U+10CDE4.png
+share/Lagom/emoji/U+10CDE5.png
+share/Lagom/emoji/U+1F004.png
+share/Lagom/emoji/U+1F0CF.png
+share/Lagom/emoji/U+1F170.png
+share/Lagom/emoji/U+1F171.png
+share/Lagom/emoji/U+1F17E.png
+share/Lagom/emoji/U+1F17F.png
+share/Lagom/emoji/U+1F18E.png
+share/Lagom/emoji/U+1F191.png
+share/Lagom/emoji/U+1F192.png
+share/Lagom/emoji/U+1F193.png
+share/Lagom/emoji/U+1F194.png
+share/Lagom/emoji/U+1F195.png
+share/Lagom/emoji/U+1F196.png
+share/Lagom/emoji/U+1F197.png
+share/Lagom/emoji/U+1F198.png
+share/Lagom/emoji/U+1F199.png
+share/Lagom/emoji/U+1F19A.png
+share/Lagom/emoji/U+1F1E6_U+1F1E8.png
+share/Lagom/emoji/U+1F1E6_U+1F1E9.png
+share/Lagom/emoji/U+1F1E6_U+1F1EA.png
+share/Lagom/emoji/U+1F1E6_U+1F1EB.png
+share/Lagom/emoji/U+1F1E6_U+1F1EC.png
+share/Lagom/emoji/U+1F1E6_U+1F1EE.png
+share/Lagom/emoji/U+1F1E6_U+1F1F1.png
+share/Lagom/emoji/U+1F1E6_U+1F1F2.png
+share/Lagom/emoji/U+1F1E6_U+1F1F4.png
+share/Lagom/emoji/U+1F1E6_U+1F1F6.png
+share/Lagom/emoji/U+1F1E6_U+1F1F7.png
+share/Lagom/emoji/U+1F1E6_U+1F1F8.png
+share/Lagom/emoji/U+1F1E6_U+1F1F9.png
+share/Lagom/emoji/U+1F1E6_U+1F1FA.png
+share/Lagom/emoji/U+1F1E6_U+1F1FC.png
+share/Lagom/emoji/U+1F1E6_U+1F1FD.png
+share/Lagom/emoji/U+1F1E6_U+1F1FF.png
+share/Lagom/emoji/U+1F1E7_U+1F1E6.png
+share/Lagom/emoji/U+1F1E7_U+1F1E7.png
+share/Lagom/emoji/U+1F1E7_U+1F1E9.png
+share/Lagom/emoji/U+1F1E7_U+1F1EA.png
+share/Lagom/emoji/U+1F1E7_U+1F1EB.png
+share/Lagom/emoji/U+1F1E7_U+1F1EC.png
+share/Lagom/emoji/U+1F1E7_U+1F1ED.png
+share/Lagom/emoji/U+1F1E7_U+1F1EE.png
+share/Lagom/emoji/U+1F1E7_U+1F1EF.png
+share/Lagom/emoji/U+1F1E7_U+1F1F1.png
+share/Lagom/emoji/U+1F1E7_U+1F1F2.png
+share/Lagom/emoji/U+1F1E7_U+1F1F3.png
+share/Lagom/emoji/U+1F1E7_U+1F1F4.png
+share/Lagom/emoji/U+1F1E7_U+1F1F6.png
+share/Lagom/emoji/U+1F1E7_U+1F1F7.png
+share/Lagom/emoji/U+1F1E7_U+1F1F8.png
+share/Lagom/emoji/U+1F1E7_U+1F1F9.png
+share/Lagom/emoji/U+1F1E7_U+1F1FB.png
+share/Lagom/emoji/U+1F1E7_U+1F1FC.png
+share/Lagom/emoji/U+1F1E7_U+1F1FE.png
+share/Lagom/emoji/U+1F1E7_U+1F1FF.png
+share/Lagom/emoji/U+1F1E8_U+1F1E6.png
+share/Lagom/emoji/U+1F1E8_U+1F1E8.png
+share/Lagom/emoji/U+1F1E8_U+1F1E9.png
+share/Lagom/emoji/U+1F1E8_U+1F1EB.png
+share/Lagom/emoji/U+1F1E8_U+1F1EC.png
+share/Lagom/emoji/U+1F1E8_U+1F1ED.png
+share/Lagom/emoji/U+1F1E8_U+1F1EE.png
+share/Lagom/emoji/U+1F1E8_U+1F1F0.png
+share/Lagom/emoji/U+1F1E8_U+1F1F1.png
+share/Lagom/emoji/U+1F1E8_U+1F1F2.png
+share/Lagom/emoji/U+1F1E8_U+1F1F3.png
+share/Lagom/emoji/U+1F1E8_U+1F1F4.png
+share/Lagom/emoji/U+1F1E8_U+1F1F5.png
+share/Lagom/emoji/U+1F1E8_U+1F1F7.png
+share/Lagom/emoji/U+1F1E8_U+1F1FA.png
+share/Lagom/emoji/U+1F1E8_U+1F1FB.png
+share/Lagom/emoji/U+1F1E8_U+1F1FC.png
+share/Lagom/emoji/U+1F1E8_U+1F1FD.png
+share/Lagom/emoji/U+1F1E8_U+1F1FE.png
+share/Lagom/emoji/U+1F1E8_U+1F1FF.png
+share/Lagom/emoji/U+1F1E9_U+1F1EA.png
+share/Lagom/emoji/U+1F1E9_U+1F1EC.png
+share/Lagom/emoji/U+1F1E9_U+1F1EF.png
+share/Lagom/emoji/U+1F1E9_U+1F1F0.png
+share/Lagom/emoji/U+1F1E9_U+1F1F2.png
+share/Lagom/emoji/U+1F1E9_U+1F1F4.png
+share/Lagom/emoji/U+1F1E9_U+1F1FF.png
+share/Lagom/emoji/U+1F1EA_U+1F1E6.png
+share/Lagom/emoji/U+1F1EA_U+1F1E8.png
+share/Lagom/emoji/U+1F1EA_U+1F1EA.png
+share/Lagom/emoji/U+1F1EA_U+1F1EC.png
+share/Lagom/emoji/U+1F1EA_U+1F1ED.png
+share/Lagom/emoji/U+1F1EA_U+1F1F7.png
+share/Lagom/emoji/U+1F1EA_U+1F1F8.png
+share/Lagom/emoji/U+1F1EA_U+1F1F9.png
+share/Lagom/emoji/U+1F1EA_U+1F1FA.png
+share/Lagom/emoji/U+1F1EB_U+1F1EE.png
+share/Lagom/emoji/U+1F1EB_U+1F1EF.png
+share/Lagom/emoji/U+1F1EB_U+1F1F0.png
+share/Lagom/emoji/U+1F1EB_U+1F1F2.png
+share/Lagom/emoji/U+1F1EB_U+1F1F4.png
+share/Lagom/emoji/U+1F1EB_U+1F1F7.png
+share/Lagom/emoji/U+1F1EC_U+1F1E6.png
+share/Lagom/emoji/U+1F1EC_U+1F1E7.png
+share/Lagom/emoji/U+1F1EC_U+1F1E9.png
+share/Lagom/emoji/U+1F1EC_U+1F1EA.png
+share/Lagom/emoji/U+1F1EC_U+1F1EB.png
+share/Lagom/emoji/U+1F1EC_U+1F1EC.png
+share/Lagom/emoji/U+1F1EC_U+1F1ED.png
+share/Lagom/emoji/U+1F1EC_U+1F1EE.png
+share/Lagom/emoji/U+1F1EC_U+1F1F1.png
+share/Lagom/emoji/U+1F1EC_U+1F1F2.png
+share/Lagom/emoji/U+1F1EC_U+1F1F3.png
+share/Lagom/emoji/U+1F1EC_U+1F1F5.png
+share/Lagom/emoji/U+1F1EC_U+1F1F6.png
+share/Lagom/emoji/U+1F1EC_U+1F1F7.png
+share/Lagom/emoji/U+1F1EC_U+1F1F8.png
+share/Lagom/emoji/U+1F1EC_U+1F1F9.png
+share/Lagom/emoji/U+1F1EC_U+1F1FA.png
+share/Lagom/emoji/U+1F1EC_U+1F1FC.png
+share/Lagom/emoji/U+1F1EC_U+1F1FE.png
+share/Lagom/emoji/U+1F1ED_U+1F1F0.png
+share/Lagom/emoji/U+1F1ED_U+1F1F2.png
+share/Lagom/emoji/U+1F1ED_U+1F1F3.png
+share/Lagom/emoji/U+1F1ED_U+1F1F7.png
+share/Lagom/emoji/U+1F1ED_U+1F1F9.png
+share/Lagom/emoji/U+1F1ED_U+1F1FA.png
+share/Lagom/emoji/U+1F1EE_U+1F1E8.png
+share/Lagom/emoji/U+1F1EE_U+1F1E9.png
+share/Lagom/emoji/U+1F1EE_U+1F1EA.png
+share/Lagom/emoji/U+1F1EE_U+1F1F1.png
+share/Lagom/emoji/U+1F1EE_U+1F1F2.png
+share/Lagom/emoji/U+1F1EE_U+1F1F3.png
+share/Lagom/emoji/U+1F1EE_U+1F1F4.png
+share/Lagom/emoji/U+1F1EE_U+1F1F6.png
+share/Lagom/emoji/U+1F1EE_U+1F1F7.png
+share/Lagom/emoji/U+1F1EE_U+1F1F8.png
+share/Lagom/emoji/U+1F1EE_U+1F1F9.png
+share/Lagom/emoji/U+1F1EF_U+1F1EA.png
+share/Lagom/emoji/U+1F1EF_U+1F1F2.png
+share/Lagom/emoji/U+1F1EF_U+1F1F4.png
+share/Lagom/emoji/U+1F1EF_U+1F1F5.png
+share/Lagom/emoji/U+1F1F0_U+1F1EA.png
+share/Lagom/emoji/U+1F1F0_U+1F1EC.png
+share/Lagom/emoji/U+1F1F0_U+1F1ED.png
+share/Lagom/emoji/U+1F1F0_U+1F1EE.png
+share/Lagom/emoji/U+1F1F0_U+1F1F2.png
+share/Lagom/emoji/U+1F1F0_U+1F1F3.png
+share/Lagom/emoji/U+1F1F0_U+1F1F5.png
+share/Lagom/emoji/U+1F1F0_U+1F1F7.png
+share/Lagom/emoji/U+1F1F0_U+1F1FC.png
+share/Lagom/emoji/U+1F1F0_U+1F1FE.png
+share/Lagom/emoji/U+1F1F0_U+1F1FF.png
+share/Lagom/emoji/U+1F1F1_U+1F1E6.png
+share/Lagom/emoji/U+1F1F1_U+1F1E7.png
+share/Lagom/emoji/U+1F1F1_U+1F1E8.png
+share/Lagom/emoji/U+1F1F1_U+1F1EE.png
+share/Lagom/emoji/U+1F1F1_U+1F1F0.png
+share/Lagom/emoji/U+1F1F1_U+1F1F7.png
+share/Lagom/emoji/U+1F1F1_U+1F1F8.png
+share/Lagom/emoji/U+1F1F1_U+1F1F9.png
+share/Lagom/emoji/U+1F1F1_U+1F1FA.png
+share/Lagom/emoji/U+1F1F1_U+1F1FB.png
+share/Lagom/emoji/U+1F1F1_U+1F1FE.png
+share/Lagom/emoji/U+1F1F2_U+1F1E6.png
+share/Lagom/emoji/U+1F1F2_U+1F1E8.png
+share/Lagom/emoji/U+1F1F2_U+1F1E9.png
+share/Lagom/emoji/U+1F1F2_U+1F1EA.png
+share/Lagom/emoji/U+1F1F2_U+1F1EB.png
+share/Lagom/emoji/U+1F1F2_U+1F1EC.png
+share/Lagom/emoji/U+1F1F2_U+1F1ED.png
+share/Lagom/emoji/U+1F1F2_U+1F1F0.png
+share/Lagom/emoji/U+1F1F2_U+1F1F1.png
+share/Lagom/emoji/U+1F1F2_U+1F1F2.png
+share/Lagom/emoji/U+1F1F2_U+1F1F3.png
+share/Lagom/emoji/U+1F1F2_U+1F1F4.png
+share/Lagom/emoji/U+1F1F2_U+1F1F5.png
+share/Lagom/emoji/U+1F1F2_U+1F1F6.png
+share/Lagom/emoji/U+1F1F2_U+1F1F7.png
+share/Lagom/emoji/U+1F1F2_U+1F1F8.png
+share/Lagom/emoji/U+1F1F2_U+1F1F9.png
+share/Lagom/emoji/U+1F1F2_U+1F1FA.png
+share/Lagom/emoji/U+1F1F2_U+1F1FB.png
+share/Lagom/emoji/U+1F1F2_U+1F1FC.png
+share/Lagom/emoji/U+1F1F2_U+1F1FD.png
+share/Lagom/emoji/U+1F1F2_U+1F1FE.png
+share/Lagom/emoji/U+1F1F2_U+1F1FF.png
+share/Lagom/emoji/U+1F1F3_U+1F1E6.png
+share/Lagom/emoji/U+1F1F3_U+1F1E8.png
+share/Lagom/emoji/U+1F1F3_U+1F1EA.png
+share/Lagom/emoji/U+1F1F3_U+1F1EB.png
+share/Lagom/emoji/U+1F1F3_U+1F1EC.png
+share/Lagom/emoji/U+1F1F3_U+1F1EE.png
+share/Lagom/emoji/U+1F1F3_U+1F1F1.png
+share/Lagom/emoji/U+1F1F3_U+1F1F4.png
+share/Lagom/emoji/U+1F1F3_U+1F1F5.png
+share/Lagom/emoji/U+1F1F3_U+1F1F7.png
+share/Lagom/emoji/U+1F1F3_U+1F1FA.png
+share/Lagom/emoji/U+1F1F3_U+1F1FF.png
+share/Lagom/emoji/U+1F1F4_U+1F1F2.png
+share/Lagom/emoji/U+1F1F5_U+1F1E6.png
+share/Lagom/emoji/U+1F1F5_U+1F1EA.png
+share/Lagom/emoji/U+1F1F5_U+1F1EB.png
+share/Lagom/emoji/U+1F1F5_U+1F1EC.png
+share/Lagom/emoji/U+1F1F5_U+1F1ED.png
+share/Lagom/emoji/U+1F1F5_U+1F1F0.png
+share/Lagom/emoji/U+1F1F5_U+1F1F1.png
+share/Lagom/emoji/U+1F1F5_U+1F1F2.png
+share/Lagom/emoji/U+1F1F5_U+1F1F3.png
+share/Lagom/emoji/U+1F1F5_U+1F1F7.png
+share/Lagom/emoji/U+1F1F5_U+1F1F8.png
+share/Lagom/emoji/U+1F1F5_U+1F1F9.png
+share/Lagom/emoji/U+1F1F5_U+1F1FC.png
+share/Lagom/emoji/U+1F1F5_U+1F1FE.png
+share/Lagom/emoji/U+1F1F6_U+1F1E6.png
+share/Lagom/emoji/U+1F1F7_U+1F1EA.png
+share/Lagom/emoji/U+1F1F7_U+1F1F4.png
+share/Lagom/emoji/U+1F1F7_U+1F1F8.png
+share/Lagom/emoji/U+1F1F7_U+1F1FA.png
+share/Lagom/emoji/U+1F1F7_U+1F1FC.png
+share/Lagom/emoji/U+1F1F8_U+1F1E6.png
+share/Lagom/emoji/U+1F1F8_U+1F1E7.png
+share/Lagom/emoji/U+1F1F8_U+1F1E8.png
+share/Lagom/emoji/U+1F1F8_U+1F1E9.png
+share/Lagom/emoji/U+1F1F8_U+1F1EA.png
+share/Lagom/emoji/U+1F1F8_U+1F1EC.png
+share/Lagom/emoji/U+1F1F8_U+1F1ED.png
+share/Lagom/emoji/U+1F1F8_U+1F1EE.png
+share/Lagom/emoji/U+1F1F8_U+1F1EF.png
+share/Lagom/emoji/U+1F1F8_U+1F1F0.png
+share/Lagom/emoji/U+1F1F8_U+1F1F1.png
+share/Lagom/emoji/U+1F1F8_U+1F1F2.png
+share/Lagom/emoji/U+1F1F8_U+1F1F3.png
+share/Lagom/emoji/U+1F1F8_U+1F1F4.png
+share/Lagom/emoji/U+1F1F8_U+1F1F7.png
+share/Lagom/emoji/U+1F1F8_U+1F1F8.png
+share/Lagom/emoji/U+1F1F8_U+1F1F9.png
+share/Lagom/emoji/U+1F1F8_U+1F1FB.png
+share/Lagom/emoji/U+1F1F8_U+1F1FD.png
+share/Lagom/emoji/U+1F1F8_U+1F1FE.png
+share/Lagom/emoji/U+1F1F8_U+1F1FF.png
+share/Lagom/emoji/U+1F1F9_U+1F1E6.png
+share/Lagom/emoji/U+1F1F9_U+1F1E8.png
+share/Lagom/emoji/U+1F1F9_U+1F1E9.png
+share/Lagom/emoji/U+1F1F9_U+1F1EB.png
+share/Lagom/emoji/U+1F1F9_U+1F1EC.png
+share/Lagom/emoji/U+1F1F9_U+1F1ED.png
+share/Lagom/emoji/U+1F1F9_U+1F1EF.png
+share/Lagom/emoji/U+1F1F9_U+1F1F0.png
+share/Lagom/emoji/U+1F1F9_U+1F1F1.png
+share/Lagom/emoji/U+1F1F9_U+1F1F2.png
+share/Lagom/emoji/U+1F1F9_U+1F1F3.png
+share/Lagom/emoji/U+1F1F9_U+1F1F4.png
+share/Lagom/emoji/U+1F1F9_U+1F1F7.png
+share/Lagom/emoji/U+1F1F9_U+1F1F9.png
+share/Lagom/emoji/U+1F1F9_U+1F1FB.png
+share/Lagom/emoji/U+1F1F9_U+1F1FC.png
+share/Lagom/emoji/U+1F1F9_U+1F1FF.png
+share/Lagom/emoji/U+1F1FA_U+1F1E6.png
+share/Lagom/emoji/U+1F1FA_U+1F1EC.png
+share/Lagom/emoji/U+1F1FA_U+1F1F2.png
+share/Lagom/emoji/U+1F1FA_U+1F1F3.png
+share/Lagom/emoji/U+1F1FA_U+1F1F8.png
+share/Lagom/emoji/U+1F1FA_U+1F1FE.png
+share/Lagom/emoji/U+1F1FA_U+1F1FF.png
+share/Lagom/emoji/U+1F1FB_U+1F1E6.png
+share/Lagom/emoji/U+1F1FB_U+1F1E8.png
+share/Lagom/emoji/U+1F1FB_U+1F1EA.png
+share/Lagom/emoji/U+1F1FB_U+1F1EC.png
+share/Lagom/emoji/U+1F1FB_U+1F1EE.png
+share/Lagom/emoji/U+1F1FB_U+1F1F3.png
+share/Lagom/emoji/U+1F1FB_U+1F1FA.png
+share/Lagom/emoji/U+1F1FC_U+1F1EB.png
+share/Lagom/emoji/U+1F1FC_U+1F1F8.png
+share/Lagom/emoji/U+1F1FD_U+1F1F0.png
+share/Lagom/emoji/U+1F1FE_U+1F1EA.png
+share/Lagom/emoji/U+1F1FE_U+1F1F9.png
+share/Lagom/emoji/U+1F1FF_U+1F1E6.png
+share/Lagom/emoji/U+1F1FF_U+1F1F2.png
+share/Lagom/emoji/U+1F1FF_U+1F1FC.png
+share/Lagom/emoji/U+1F201.png
+share/Lagom/emoji/U+1F202.png
+share/Lagom/emoji/U+1F21A.png
+share/Lagom/emoji/U+1F22F.png
+share/Lagom/emoji/U+1F232.png
+share/Lagom/emoji/U+1F233.png
+share/Lagom/emoji/U+1F234.png
+share/Lagom/emoji/U+1F235.png
+share/Lagom/emoji/U+1F236.png
+share/Lagom/emoji/U+1F237.png
+share/Lagom/emoji/U+1F238.png
+share/Lagom/emoji/U+1F239.png
+share/Lagom/emoji/U+1F23A.png
+share/Lagom/emoji/U+1F250.png
+share/Lagom/emoji/U+1F251.png
+share/Lagom/emoji/U+1F300.png
+share/Lagom/emoji/U+1F301.png
+share/Lagom/emoji/U+1F302.png
+share/Lagom/emoji/U+1F303.png
+share/Lagom/emoji/U+1F304.png
+share/Lagom/emoji/U+1F305.png
+share/Lagom/emoji/U+1F306.png
+share/Lagom/emoji/U+1F307.png
+share/Lagom/emoji/U+1F308.png
+share/Lagom/emoji/U+1F309.png
+share/Lagom/emoji/U+1F30A.png
+share/Lagom/emoji/U+1F30B.png
+share/Lagom/emoji/U+1F30C.png
+share/Lagom/emoji/U+1F30D.png
+share/Lagom/emoji/U+1F30E.png
+share/Lagom/emoji/U+1F30F.png
+share/Lagom/emoji/U+1F310.png
+share/Lagom/emoji/U+1F311.png
+share/Lagom/emoji/U+1F312.png
+share/Lagom/emoji/U+1F313.png
+share/Lagom/emoji/U+1F314.png
+share/Lagom/emoji/U+1F315.png
+share/Lagom/emoji/U+1F316.png
+share/Lagom/emoji/U+1F317.png
+share/Lagom/emoji/U+1F318.png
+share/Lagom/emoji/U+1F319.png
+share/Lagom/emoji/U+1F31A.png
+share/Lagom/emoji/U+1F31B.png
+share/Lagom/emoji/U+1F31C.png
+share/Lagom/emoji/U+1F31D.png
+share/Lagom/emoji/U+1F31E.png
+share/Lagom/emoji/U+1F31F.png
+share/Lagom/emoji/U+1F320.png
+share/Lagom/emoji/U+1F321.png
+share/Lagom/emoji/U+1F324.png
+share/Lagom/emoji/U+1F325.png
+share/Lagom/emoji/U+1F326.png
+share/Lagom/emoji/U+1F327.png
+share/Lagom/emoji/U+1F328.png
+share/Lagom/emoji/U+1F329.png
+share/Lagom/emoji/U+1F32A.png
+share/Lagom/emoji/U+1F32B.png
+share/Lagom/emoji/U+1F32C.png
+share/Lagom/emoji/U+1F32D.png
+share/Lagom/emoji/U+1F32E.png
+share/Lagom/emoji/U+1F32F.png
+share/Lagom/emoji/U+1F330.png
+share/Lagom/emoji/U+1F331.png
+share/Lagom/emoji/U+1F332.png
+share/Lagom/emoji/U+1F333.png
+share/Lagom/emoji/U+1F334.png
+share/Lagom/emoji/U+1F335.png
+share/Lagom/emoji/U+1F336.png
+share/Lagom/emoji/U+1F337.png
+share/Lagom/emoji/U+1F338.png
+share/Lagom/emoji/U+1F339.png
+share/Lagom/emoji/U+1F33A.png
+share/Lagom/emoji/U+1F33B.png
+share/Lagom/emoji/U+1F33C.png
+share/Lagom/emoji/U+1F33D.png
+share/Lagom/emoji/U+1F33E.png
+share/Lagom/emoji/U+1F33F.png
+share/Lagom/emoji/U+1F340.png
+share/Lagom/emoji/U+1F341.png
+share/Lagom/emoji/U+1F342.png
+share/Lagom/emoji/U+1F343.png
+share/Lagom/emoji/U+1F344.png
+share/Lagom/emoji/U+1F344_U+200D_U+1F7EB.png
+share/Lagom/emoji/U+1F345.png
+share/Lagom/emoji/U+1F346.png
+share/Lagom/emoji/U+1F347.png
+share/Lagom/emoji/U+1F348.png
+share/Lagom/emoji/U+1F349.png
+share/Lagom/emoji/U+1F34A.png
+share/Lagom/emoji/U+1F34B.png
+share/Lagom/emoji/U+1F34B_U+200D_U+1F7E9.png
+share/Lagom/emoji/U+1F34C.png
+share/Lagom/emoji/U+1F34D.png
+share/Lagom/emoji/U+1F34E.png
+share/Lagom/emoji/U+1F34F.png
+share/Lagom/emoji/U+1F350.png
+share/Lagom/emoji/U+1F351.png
+share/Lagom/emoji/U+1F352.png
+share/Lagom/emoji/U+1F353.png
+share/Lagom/emoji/U+1F354.png
+share/Lagom/emoji/U+1F355.png
+share/Lagom/emoji/U+1F356.png
+share/Lagom/emoji/U+1F357.png
+share/Lagom/emoji/U+1F358.png
+share/Lagom/emoji/U+1F359.png
+share/Lagom/emoji/U+1F35A.png
+share/Lagom/emoji/U+1F35B.png
+share/Lagom/emoji/U+1F35C.png
+share/Lagom/emoji/U+1F35D.png
+share/Lagom/emoji/U+1F35E.png
+share/Lagom/emoji/U+1F35F.png
+share/Lagom/emoji/U+1F360.png
+share/Lagom/emoji/U+1F361.png
+share/Lagom/emoji/U+1F362.png
+share/Lagom/emoji/U+1F363.png
+share/Lagom/emoji/U+1F364.png
+share/Lagom/emoji/U+1F365.png
+share/Lagom/emoji/U+1F366.png
+share/Lagom/emoji/U+1F367.png
+share/Lagom/emoji/U+1F368.png
+share/Lagom/emoji/U+1F369.png
+share/Lagom/emoji/U+1F36A.png
+share/Lagom/emoji/U+1F36B.png
+share/Lagom/emoji/U+1F36C.png
+share/Lagom/emoji/U+1F36D.png
+share/Lagom/emoji/U+1F36E.png
+share/Lagom/emoji/U+1F36F.png
+share/Lagom/emoji/U+1F370.png
+share/Lagom/emoji/U+1F371.png
+share/Lagom/emoji/U+1F372.png
+share/Lagom/emoji/U+1F373.png
+share/Lagom/emoji/U+1F374.png
+share/Lagom/emoji/U+1F375.png
+share/Lagom/emoji/U+1F376.png
+share/Lagom/emoji/U+1F377.png
+share/Lagom/emoji/U+1F378.png
+share/Lagom/emoji/U+1F379.png
+share/Lagom/emoji/U+1F37A.png
+share/Lagom/emoji/U+1F37B.png
+share/Lagom/emoji/U+1F37C.png
+share/Lagom/emoji/U+1F37D.png
+share/Lagom/emoji/U+1F37E.png
+share/Lagom/emoji/U+1F37F.png
+share/Lagom/emoji/U+1F380.png
+share/Lagom/emoji/U+1F381.png
+share/Lagom/emoji/U+1F382.png
+share/Lagom/emoji/U+1F383.png
+share/Lagom/emoji/U+1F384.png
+share/Lagom/emoji/U+1F385.png
+share/Lagom/emoji/U+1F386.png
+share/Lagom/emoji/U+1F387.png
+share/Lagom/emoji/U+1F388.png
+share/Lagom/emoji/U+1F389.png
+share/Lagom/emoji/U+1F38A.png
+share/Lagom/emoji/U+1F38B.png
+share/Lagom/emoji/U+1F38C.png
+share/Lagom/emoji/U+1F38D.png
+share/Lagom/emoji/U+1F38F.png
+share/Lagom/emoji/U+1F390.png
+share/Lagom/emoji/U+1F391.png
+share/Lagom/emoji/U+1F392.png
+share/Lagom/emoji/U+1F393.png
+share/Lagom/emoji/U+1F396.png
+share/Lagom/emoji/U+1F397.png
+share/Lagom/emoji/U+1F399.png
+share/Lagom/emoji/U+1F39A.png
+share/Lagom/emoji/U+1F39B.png
+share/Lagom/emoji/U+1F39E.png
+share/Lagom/emoji/U+1F39F.png
+share/Lagom/emoji/U+1F3A0.png
+share/Lagom/emoji/U+1F3A1.png
+share/Lagom/emoji/U+1F3A2.png
+share/Lagom/emoji/U+1F3A3.png
+share/Lagom/emoji/U+1F3A4.png
+share/Lagom/emoji/U+1F3A5.png
+share/Lagom/emoji/U+1F3A6.png
+share/Lagom/emoji/U+1F3A7.png
+share/Lagom/emoji/U+1F3A8.png
+share/Lagom/emoji/U+1F3A9.png
+share/Lagom/emoji/U+1F3AA.png
+share/Lagom/emoji/U+1F3AB.png
+share/Lagom/emoji/U+1F3AC.png
+share/Lagom/emoji/U+1F3AD.png
+share/Lagom/emoji/U+1F3AE.png
+share/Lagom/emoji/U+1F3AF.png
+share/Lagom/emoji/U+1F3B0.png
+share/Lagom/emoji/U+1F3B1.png
+share/Lagom/emoji/U+1F3B2.png
+share/Lagom/emoji/U+1F3B3.png
+share/Lagom/emoji/U+1F3B4.png
+share/Lagom/emoji/U+1F3B5.png
+share/Lagom/emoji/U+1F3B6.png
+share/Lagom/emoji/U+1F3B7.png
+share/Lagom/emoji/U+1F3B8.png
+share/Lagom/emoji/U+1F3B9.png
+share/Lagom/emoji/U+1F3BA.png
+share/Lagom/emoji/U+1F3BB.png
+share/Lagom/emoji/U+1F3BC.png
+share/Lagom/emoji/U+1F3BD.png
+share/Lagom/emoji/U+1F3BE.png
+share/Lagom/emoji/U+1F3BF.png
+share/Lagom/emoji/U+1F3C0.png
+share/Lagom/emoji/U+1F3C1.png
+share/Lagom/emoji/U+1F3C2.png
+share/Lagom/emoji/U+1F3C3.png
+share/Lagom/emoji/U+1F3C3_U+200D_U+2640.png
+share/Lagom/emoji/U+1F3C3_U+200D_U+2642.png
+share/Lagom/emoji/U+1F3C4.png
+share/Lagom/emoji/U+1F3C4_U+200D_U+2640.png
+share/Lagom/emoji/U+1F3C4_U+200D_U+2642.png
+share/Lagom/emoji/U+1F3C5.png
+share/Lagom/emoji/U+1F3C6.png
+share/Lagom/emoji/U+1F3C7.png
+share/Lagom/emoji/U+1F3C8.png
+share/Lagom/emoji/U+1F3C9.png
+share/Lagom/emoji/U+1F3CA.png
+share/Lagom/emoji/U+1F3CA_U+200D_U+2640.png
+share/Lagom/emoji/U+1F3CA_U+200D_U+2642.png
+share/Lagom/emoji/U+1F3CB.png
+share/Lagom/emoji/U+1F3CB_U+200D_U+2640.png
+share/Lagom/emoji/U+1F3CB_U+200D_U+2642.png
+share/Lagom/emoji/U+1F3CC.png
+share/Lagom/emoji/U+1F3CC_U+200D_U+2640.png
+share/Lagom/emoji/U+1F3CC_U+200D_U+2642.png
+share/Lagom/emoji/U+1F3CE.png
+share/Lagom/emoji/U+1F3CF.png
+share/Lagom/emoji/U+1F3D0.png
+share/Lagom/emoji/U+1F3D1.png
+share/Lagom/emoji/U+1F3D2.png
+share/Lagom/emoji/U+1F3D3.png
+share/Lagom/emoji/U+1F3D4.png
+share/Lagom/emoji/U+1F3D5.png
+share/Lagom/emoji/U+1F3D6.png
+share/Lagom/emoji/U+1F3D7.png
+share/Lagom/emoji/U+1F3D8.png
+share/Lagom/emoji/U+1F3D9.png
+share/Lagom/emoji/U+1F3DA.png
+share/Lagom/emoji/U+1F3DB.png
+share/Lagom/emoji/U+1F3DC.png
+share/Lagom/emoji/U+1F3DD.png
+share/Lagom/emoji/U+1F3DE.png
+share/Lagom/emoji/U+1F3DF.png
+share/Lagom/emoji/U+1F3E0.png
+share/Lagom/emoji/U+1F3E1.png
+share/Lagom/emoji/U+1F3E2.png
+share/Lagom/emoji/U+1F3E4.png
+share/Lagom/emoji/U+1F3E5.png
+share/Lagom/emoji/U+1F3E6.png
+share/Lagom/emoji/U+1F3E7.png
+share/Lagom/emoji/U+1F3EA.png
+share/Lagom/emoji/U+1F3EB.png
+share/Lagom/emoji/U+1F3ED.png
+share/Lagom/emoji/U+1F3EE.png
+share/Lagom/emoji/U+1F3EF.png
+share/Lagom/emoji/U+1F3F0.png
+share/Lagom/emoji/U+1F3F3.png
+share/Lagom/emoji/U+1F3F3_U+200D_U+1F308.png
+share/Lagom/emoji/U+1F3F3_U+200D_U+1F41E.png
+share/Lagom/emoji/U+1F3F3_U+200D_U+1F596.png
+share/Lagom/emoji/U+1F3F3_U+200D_U+26A7.png
+share/Lagom/emoji/U+1F3F3_U+200D_U+F8FF.png
+share/Lagom/emoji/U+1F3F4.png
+share/Lagom/emoji/U+1F3F4_U+200D_U+2620.png
+share/Lagom/emoji/U+1F3F4_U+E0062_U+E0071_U+E0062_U+E006F_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0062_U+E0071_U+E0073_U+E0061_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0062_U+E0071_U+E0073_U+E0065_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0063_U+E0061_U+E0071_U+E0063_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0064_U+E0065_U+E0062_U+E0062_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0064_U+E0065_U+E0062_U+E0065_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0064_U+E0065_U+E0062_U+E0077_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0064_U+E0065_U+E0062_U+E0079_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0064_U+E0065_U+E0068_U+E0062_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0064_U+E0065_U+E0068_U+E0065_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0064_U+E0065_U+E0068_U+E0068_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0064_U+E0065_U+E006D_U+E0076_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0064_U+E0065_U+E006E_U+E0069_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0064_U+E0065_U+E006E_U+E0077_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0064_U+E0065_U+E0072_U+E0070_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0064_U+E0065_U+E0073_U+E0068_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0064_U+E0065_U+E0073_U+E006C_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0064_U+E0065_U+E0073_U+E006E_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0064_U+E0065_U+E0073_U+E0074_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0064_U+E0065_U+E0074_U+E0068_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0065_U+E0073_U+E0063_U+E0074_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0065_U+E0073_U+E0070_U+E0076_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0066_U+E0069_U+E0030_U+E0033_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0066_U+E0069_U+E0030_U+E0034_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0066_U+E0069_U+E0030_U+E0035_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0066_U+E0069_U+E0030_U+E0036_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0066_U+E0069_U+E0030_U+E0037_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0066_U+E0069_U+E0030_U+E0038_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0066_U+E0069_U+E0031_U+E0033_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0066_U+E0069_U+E0031_U+E0035_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0066_U+E0069_U+E0031_U+E0036_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0066_U+E0069_U+E0031_U+E0037_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0066_U+E0069_U+E0031_U+E0038_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0066_U+E0072_U+E0061_U+E0072_U+E0061_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0066_U+E0072_U+E0062_U+E0066_U+E0063_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0066_U+E0072_U+E0062_U+E0072_U+E0065_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0066_U+E0072_U+E0063_U+E006F_U+E0072_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0066_U+E0072_U+E0063_U+E0076_U+E006C_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0066_U+E0072_U+E006E_U+E0061_U+E0071_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0066_U+E0072_U+E006E_U+E006F_U+E0072_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0066_U+E0072_U+E006F_U+E0063_U+E0063_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0066_U+E0072_U+E0070_U+E0061_U+E0063_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0066_U+E0072_U+E0070_U+E0064_U+E006C_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0067_U+E0062_U+E0065_U+E006E_U+E0067_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0067_U+E0062_U+E0073_U+E0063_U+E0074_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0067_U+E0062_U+E0077_U+E006C_U+E0073_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0069_U+E0065_U+E006C_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0069_U+E0065_U+E006D_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0069_U+E0065_U+E0075_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006B_U+E0072_U+E0031_U+E0031_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006B_U+E0072_U+E0032_U+E0039_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006B_U+E0072_U+E0033_U+E0030_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006B_U+E0072_U+E0034_U+E0031_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006B_U+E0072_U+E0034_U+E0034_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006B_U+E0072_U+E0034_U+E0036_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006B_U+E0072_U+E0034_U+E0038_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006B_U+E0072_U+E0034_U+E0039_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006C_U+E0072_U+E0062_U+E0067_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006C_U+E0072_U+E0062_U+E006D_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006C_U+E0072_U+E0063_U+E006D_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006C_U+E0072_U+E0067_U+E0062_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006C_U+E0072_U+E0067_U+E0067_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006C_U+E0072_U+E0067_U+E006B_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006C_U+E0072_U+E0067_U+E0070_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006C_U+E0072_U+E006C_U+E006F_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006C_U+E0072_U+E006D_U+E0067_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006C_U+E0072_U+E006D_U+E006F_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006C_U+E0072_U+E006D_U+E0079_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006C_U+E0072_U+E006E_U+E0069_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006C_U+E0072_U+E0072_U+E0067_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006C_U+E0072_U+E0072_U+E0069_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006C_U+E0072_U+E0073_U+E0069_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006C_U+E0062_U+E0071_U+E0031_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006C_U+E0062_U+E0071_U+E0032_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006C_U+E0062_U+E0071_U+E0033_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006C_U+E0064_U+E0072_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006C_U+E0066_U+E006C_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006C_U+E0066_U+E0072_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006C_U+E0067_U+E0065_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006C_U+E0067_U+E0072_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006C_U+E006C_U+E0069_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006C_U+E006E_U+E0062_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006C_U+E006E_U+E0068_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006C_U+E006F_U+E0076_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006C_U+E0075_U+E0074_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006C_U+E007A_U+E0065_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006C_U+E007A_U+E0068_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006F_U+E0030_U+E0031_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006F_U+E0030_U+E0032_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006F_U+E0030_U+E0033_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006F_U+E0030_U+E0034_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006F_U+E0030_U+E0035_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006F_U+E0030_U+E0036_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006F_U+E0030_U+E0037_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006F_U+E0030_U+E0038_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006F_U+E0030_U+E0039_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006F_U+E0031_U+E0030_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006F_U+E0031_U+E0031_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006F_U+E0031_U+E0032_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006F_U+E0031_U+E0034_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006F_U+E0031_U+E0035_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006F_U+E0031_U+E0036_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006F_U+E0031_U+E0037_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006F_U+E0031_U+E0038_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006F_U+E0031_U+E0039_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006F_U+E0032_U+E0030_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006F_U+E0032_U+E0031_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006F_U+E0032_U+E0032_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006F_U+E0032_U+E0033_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006F_U+E0033_U+E0030_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006F_U+E0033_U+E0034_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006F_U+E0033_U+E0038_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006F_U+E0034_U+E0032_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006F_U+E0034_U+E0036_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006F_U+E0035_U+E0030_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E006F_U+E0035_U+E0034_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E007A_U+E0061_U+E0075_U+E006B_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E007A_U+E006E_U+E0073_U+E006E_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E007A_U+E006F_U+E0074_U+E0061_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E006E_U+E007A_U+E0077_U+E0067_U+E006E_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0070_U+E0061_U+E0031_U+E0030_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0070_U+E0061_U+E0031_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0070_U+E0061_U+E0032_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0070_U+E0061_U+E0033_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0070_U+E0061_U+E0034_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0070_U+E0061_U+E0035_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0070_U+E0061_U+E0036_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0070_U+E0061_U+E0037_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0070_U+E0061_U+E0039_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0070_U+E0061_U+E006B_U+E0079_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0070_U+E0061_U+E006E_U+E0062_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0073_U+E0065_U+E006D_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0073_U+E006B_U+E0062_U+E0063_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0073_U+E006B_U+E0062_U+E006C_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0073_U+E006B_U+E006B_U+E0069_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0073_U+E006B_U+E006E_U+E0069_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0073_U+E006B_U+E0070_U+E0076_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0073_U+E006B_U+E0074_U+E0061_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0073_U+E006B_U+E0074_U+E0063_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0073_U+E006B_U+E007A_U+E0069_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0075_U+E0061_U+E0030_U+E0035_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0075_U+E0061_U+E0030_U+E0037_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0075_U+E0061_U+E0030_U+E0039_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0075_U+E0061_U+E0031_U+E0032_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0075_U+E0061_U+E0031_U+E0034_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0075_U+E0061_U+E0031_U+E0038_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0075_U+E0061_U+E0032_U+E0031_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0075_U+E0061_U+E0032_U+E0033_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0075_U+E0061_U+E0032_U+E0036_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0075_U+E0061_U+E0033_U+E0030_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0075_U+E0061_U+E0033_U+E0032_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0075_U+E0061_U+E0033_U+E0035_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0075_U+E0061_U+E0034_U+E0030_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0075_U+E0061_U+E0034_U+E0033_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0075_U+E0061_U+E0034_U+E0036_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0075_U+E0061_U+E0034_U+E0038_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0075_U+E0061_U+E0035_U+E0031_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0075_U+E0061_U+E0035_U+E0033_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0075_U+E0061_U+E0035_U+E0036_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0075_U+E0061_U+E0035_U+E0039_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0075_U+E0061_U+E0036_U+E0031_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0075_U+E0061_U+E0036_U+E0033_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0075_U+E0061_U+E0036_U+E0035_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0075_U+E0061_U+E0036_U+E0038_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0075_U+E0061_U+E0037_U+E0031_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0075_U+E0061_U+E0037_U+E0034_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0075_U+E0061_U+E0037_U+E0037_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0075_U+E0073_U+E0061_U+E006C_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0075_U+E0073_U+E0061_U+E007A_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E0075_U+E0073_U+E0074_U+E0078_U+E007F.png
+share/Lagom/emoji/U+1F3F4_U+E007A_U+E0077_U+E0068_U+E0061_U+E007F.png
+share/Lagom/emoji/U+1F3F5.png
+share/Lagom/emoji/U+1F3F7.png
+share/Lagom/emoji/U+1F3F8.png
+share/Lagom/emoji/U+1F3F9.png
+share/Lagom/emoji/U+1F3FA.png
+share/Lagom/emoji/U+1F3FB.png
+share/Lagom/emoji/U+1F3FC.png
+share/Lagom/emoji/U+1F3FD.png
+share/Lagom/emoji/U+1F3FE.png
+share/Lagom/emoji/U+1F3FF.png
+share/Lagom/emoji/U+1F400.png
+share/Lagom/emoji/U+1F401.png
+share/Lagom/emoji/U+1F402.png
+share/Lagom/emoji/U+1F403.png
+share/Lagom/emoji/U+1F404.png
+share/Lagom/emoji/U+1F405.png
+share/Lagom/emoji/U+1F406.png
+share/Lagom/emoji/U+1F407.png
+share/Lagom/emoji/U+1F408.png
+share/Lagom/emoji/U+1F408_U+200D_U+2B1B.png
+share/Lagom/emoji/U+1F409.png
+share/Lagom/emoji/U+1F40A.png
+share/Lagom/emoji/U+1F40B.png
+share/Lagom/emoji/U+1F40C.png
+share/Lagom/emoji/U+1F40D.png
+share/Lagom/emoji/U+1F40E.png
+share/Lagom/emoji/U+1F40F.png
+share/Lagom/emoji/U+1F410.png
+share/Lagom/emoji/U+1F411.png
+share/Lagom/emoji/U+1F412.png
+share/Lagom/emoji/U+1F413.png
+share/Lagom/emoji/U+1F414.png
+share/Lagom/emoji/U+1F415.png
+share/Lagom/emoji/U+1F415_U+200D_U+1F9BA.png
+share/Lagom/emoji/U+1F416.png
+share/Lagom/emoji/U+1F417.png
+share/Lagom/emoji/U+1F418.png
+share/Lagom/emoji/U+1F419.png
+share/Lagom/emoji/U+1F41A.png
+share/Lagom/emoji/U+1F41B.png
+share/Lagom/emoji/U+1F41C.png
+share/Lagom/emoji/U+1F41D.png
+share/Lagom/emoji/U+1F41E.png
+share/Lagom/emoji/U+1F41F.png
+share/Lagom/emoji/U+1F420.png
+share/Lagom/emoji/U+1F421.png
+share/Lagom/emoji/U+1F422.png
+share/Lagom/emoji/U+1F423.png
+share/Lagom/emoji/U+1F424.png
+share/Lagom/emoji/U+1F425.png
+share/Lagom/emoji/U+1F426.png
+share/Lagom/emoji/U+1F426_U+200D_U+1F525.png
+share/Lagom/emoji/U+1F426_U+200D_U+2B1B.png
+share/Lagom/emoji/U+1F427.png
+share/Lagom/emoji/U+1F428.png
+share/Lagom/emoji/U+1F429.png
+share/Lagom/emoji/U+1F42A.png
+share/Lagom/emoji/U+1F42B.png
+share/Lagom/emoji/U+1F42C.png
+share/Lagom/emoji/U+1F42D.png
+share/Lagom/emoji/U+1F42E.png
+share/Lagom/emoji/U+1F42F.png
+share/Lagom/emoji/U+1F430.png
+share/Lagom/emoji/U+1F431.png
+share/Lagom/emoji/U+1F431_U+200D_U+1F436.png
+share/Lagom/emoji/U+1F432.png
+share/Lagom/emoji/U+1F433.png
+share/Lagom/emoji/U+1F434.png
+share/Lagom/emoji/U+1F435.png
+share/Lagom/emoji/U+1F436.png
+share/Lagom/emoji/U+1F437.png
+share/Lagom/emoji/U+1F438.png
+share/Lagom/emoji/U+1F439.png
+share/Lagom/emoji/U+1F43A.png
+share/Lagom/emoji/U+1F43B.png
+share/Lagom/emoji/U+1F43B_U+200D_U+2744.png
+share/Lagom/emoji/U+1F43C.png
+share/Lagom/emoji/U+1F43D.png
+share/Lagom/emoji/U+1F43E.png
+share/Lagom/emoji/U+1F43F.png
+share/Lagom/emoji/U+1F440.png
+share/Lagom/emoji/U+1F441.png
+share/Lagom/emoji/U+1F441_U+200D_U+1F5E8.png
+share/Lagom/emoji/U+1F442.png
+share/Lagom/emoji/U+1F443.png
+share/Lagom/emoji/U+1F444.png
+share/Lagom/emoji/U+1F445.png
+share/Lagom/emoji/U+1F446.png
+share/Lagom/emoji/U+1F447.png
+share/Lagom/emoji/U+1F448.png
+share/Lagom/emoji/U+1F449.png
+share/Lagom/emoji/U+1F44A.png
+share/Lagom/emoji/U+1F44B.png
+share/Lagom/emoji/U+1F44C.png
+share/Lagom/emoji/U+1F44D.png
+share/Lagom/emoji/U+1F44E.png
+share/Lagom/emoji/U+1F44F.png
+share/Lagom/emoji/U+1F450.png
+share/Lagom/emoji/U+1F451.png
+share/Lagom/emoji/U+1F452.png
+share/Lagom/emoji/U+1F453.png
+share/Lagom/emoji/U+1F454.png
+share/Lagom/emoji/U+1F455.png
+share/Lagom/emoji/U+1F456.png
+share/Lagom/emoji/U+1F457.png
+share/Lagom/emoji/U+1F458.png
+share/Lagom/emoji/U+1F459.png
+share/Lagom/emoji/U+1F45A.png
+share/Lagom/emoji/U+1F45B.png
+share/Lagom/emoji/U+1F45C.png
+share/Lagom/emoji/U+1F45D.png
+share/Lagom/emoji/U+1F45E.png
+share/Lagom/emoji/U+1F45F.png
+share/Lagom/emoji/U+1F460.png
+share/Lagom/emoji/U+1F461.png
+share/Lagom/emoji/U+1F462.png
+share/Lagom/emoji/U+1F463.png
+share/Lagom/emoji/U+1F464.png
+share/Lagom/emoji/U+1F465.png
+share/Lagom/emoji/U+1F468.png
+share/Lagom/emoji/U+1F468_U+200D_U+1F466.png
+share/Lagom/emoji/U+1F468_U+200D_U+1F466_U+200D_U+1F466.png
+share/Lagom/emoji/U+1F468_U+200D_U+1F467.png
+share/Lagom/emoji/U+1F468_U+200D_U+1F467_U+200D_U+1F466.png
+share/Lagom/emoji/U+1F468_U+200D_U+1F467_U+200D_U+1F467.png
+share/Lagom/emoji/U+1F468_U+200D_U+1F468_U+200D_U+1F466.png
+share/Lagom/emoji/U+1F468_U+200D_U+1F468_U+200D_U+1F466_U+200D_U+1F466.png
+share/Lagom/emoji/U+1F468_U+200D_U+1F468_U+200D_U+1F467.png
+share/Lagom/emoji/U+1F468_U+200D_U+1F468_U+200D_U+1F467_U+200D_U+1F466.png
+share/Lagom/emoji/U+1F468_U+200D_U+1F468_U+200D_U+1F467_U+200D_U+1F467.png
+share/Lagom/emoji/U+1F468_U+200D_U+1F469_U+200D_U+1F466.png
+share/Lagom/emoji/U+1F468_U+200D_U+1F469_U+200D_U+1F466_U+200D_U+1F466.png
+share/Lagom/emoji/U+1F468_U+200D_U+1F469_U+200D_U+1F467.png
+share/Lagom/emoji/U+1F468_U+200D_U+1F469_U+200D_U+1F467_U+200D_U+1F466.png
+share/Lagom/emoji/U+1F468_U+200D_U+1F469_U+200D_U+1F467_U+200D_U+1F467.png
+share/Lagom/emoji/U+1F468_U+200D_U+1F4BB.png
+share/Lagom/emoji/U+1F468_U+200D_U+1F4BC.png
+share/Lagom/emoji/U+1F468_U+200D_U+1F527.png
+share/Lagom/emoji/U+1F468_U+200D_U+1F52C.png
+share/Lagom/emoji/U+1F468_U+200D_U+1F680.png
+share/Lagom/emoji/U+1F468_U+200D_U+1F692.png
+share/Lagom/emoji/U+1F468_U+200D_U+1F9AF.png
+share/Lagom/emoji/U+1F468_U+200D_U+1F9B0.png
+share/Lagom/emoji/U+1F468_U+200D_U+1F9B1.png
+share/Lagom/emoji/U+1F468_U+200D_U+1F9B2.png
+share/Lagom/emoji/U+1F468_U+200D_U+1F9B3.png
+share/Lagom/emoji/U+1F468_U+200D_U+1F9BD.png
+share/Lagom/emoji/U+1F468_U+200D_U+2695.png
+share/Lagom/emoji/U+1F468_U+200D_U+2696.png
+share/Lagom/emoji/U+1F468_U+200D_U+2764_U+200D_U+1F468.png
+share/Lagom/emoji/U+1F469.png
+share/Lagom/emoji/U+1F469_U+200D_U+1F466.png
+share/Lagom/emoji/U+1F469_U+200D_U+1F466_U+200D_U+1F466.png
+share/Lagom/emoji/U+1F469_U+200D_U+1F467.png
+share/Lagom/emoji/U+1F469_U+200D_U+1F467_U+200D_U+1F466.png
+share/Lagom/emoji/U+1F469_U+200D_U+1F467_U+200D_U+1F467.png
+share/Lagom/emoji/U+1F469_U+200D_U+1F469_U+200D_U+1F466.png
+share/Lagom/emoji/U+1F469_U+200D_U+1F469_U+200D_U+1F466_U+200D_U+1F466.png
+share/Lagom/emoji/U+1F469_U+200D_U+1F469_U+200D_U+1F467.png
+share/Lagom/emoji/U+1F469_U+200D_U+1F469_U+200D_U+1F467_U+200D_U+1F466.png
+share/Lagom/emoji/U+1F469_U+200D_U+1F469_U+200D_U+1F467_U+200D_U+1F467.png
+share/Lagom/emoji/U+1F469_U+200D_U+1F4BB.png
+share/Lagom/emoji/U+1F469_U+200D_U+1F4BC.png
+share/Lagom/emoji/U+1F469_U+200D_U+1F527.png
+share/Lagom/emoji/U+1F469_U+200D_U+1F52C.png
+share/Lagom/emoji/U+1F469_U+200D_U+1F680.png
+share/Lagom/emoji/U+1F469_U+200D_U+1F692.png
+share/Lagom/emoji/U+1F469_U+200D_U+1F9AF.png
+share/Lagom/emoji/U+1F469_U+200D_U+1F9B0.png
+share/Lagom/emoji/U+1F469_U+200D_U+1F9B1.png
+share/Lagom/emoji/U+1F469_U+200D_U+1F9B2.png
+share/Lagom/emoji/U+1F469_U+200D_U+1F9B3.png
+share/Lagom/emoji/U+1F469_U+200D_U+1F9BD.png
+share/Lagom/emoji/U+1F469_U+200D_U+2695.png
+share/Lagom/emoji/U+1F469_U+200D_U+2696.png
+share/Lagom/emoji/U+1F469_U+200D_U+2764_U+200D_U+1F468.png
+share/Lagom/emoji/U+1F469_U+200D_U+2764_U+200D_U+1F469.png
+share/Lagom/emoji/U+1F46F.png
+share/Lagom/emoji/U+1F471.png
+share/Lagom/emoji/U+1F471_U+200D_U+2640.png
+share/Lagom/emoji/U+1F471_U+200D_U+2642.png
+share/Lagom/emoji/U+1F473.png
+share/Lagom/emoji/U+1F473_U+200D_U+2640.png
+share/Lagom/emoji/U+1F473_U+200D_U+2642.png
+share/Lagom/emoji/U+1F478.png
+share/Lagom/emoji/U+1F479.png
+share/Lagom/emoji/U+1F47A.png
+share/Lagom/emoji/U+1F47B.png
+share/Lagom/emoji/U+1F47C.png
+share/Lagom/emoji/U+1F47D.png
+share/Lagom/emoji/U+1F47E.png
+share/Lagom/emoji/U+1F47F.png
+share/Lagom/emoji/U+1F480.png
+share/Lagom/emoji/U+1F481.png
+share/Lagom/emoji/U+1F481_U+200D_U+2640.png
+share/Lagom/emoji/U+1F481_U+200D_U+2642.png
+share/Lagom/emoji/U+1F482.png
+share/Lagom/emoji/U+1F482_U+200D_U+2640.png
+share/Lagom/emoji/U+1F482_U+200D_U+2642.png
+share/Lagom/emoji/U+1F483.png
+share/Lagom/emoji/U+1F484.png
+share/Lagom/emoji/U+1F485.png
+share/Lagom/emoji/U+1F486.png
+share/Lagom/emoji/U+1F486_U+200D_U+2640.png
+share/Lagom/emoji/U+1F486_U+200D_U+2642.png
+share/Lagom/emoji/U+1F487.png
+share/Lagom/emoji/U+1F487_U+200D_U+2640.png
+share/Lagom/emoji/U+1F487_U+200D_U+2642.png
+share/Lagom/emoji/U+1F488.png
+share/Lagom/emoji/U+1F489.png
+share/Lagom/emoji/U+1F48A.png
+share/Lagom/emoji/U+1F48B.png
+share/Lagom/emoji/U+1F48C.png
+share/Lagom/emoji/U+1F48D.png
+share/Lagom/emoji/U+1F48E.png
+share/Lagom/emoji/U+1F490.png
+share/Lagom/emoji/U+1F492.png
+share/Lagom/emoji/U+1F493.png
+share/Lagom/emoji/U+1F494.png
+share/Lagom/emoji/U+1F495.png
+share/Lagom/emoji/U+1F496.png
+share/Lagom/emoji/U+1F497.png
+share/Lagom/emoji/U+1F498.png
+share/Lagom/emoji/U+1F499.png
+share/Lagom/emoji/U+1F49A.png
+share/Lagom/emoji/U+1F49B.png
+share/Lagom/emoji/U+1F49C.png
+share/Lagom/emoji/U+1F49D.png
+share/Lagom/emoji/U+1F49E.png
+share/Lagom/emoji/U+1F49F.png
+share/Lagom/emoji/U+1F4A0.png
+share/Lagom/emoji/U+1F4A1.png
+share/Lagom/emoji/U+1F4A2.png
+share/Lagom/emoji/U+1F4A3.png
+share/Lagom/emoji/U+1F4A4.png
+share/Lagom/emoji/U+1F4A5.png
+share/Lagom/emoji/U+1F4A6.png
+share/Lagom/emoji/U+1F4A7.png
+share/Lagom/emoji/U+1F4A8.png
+share/Lagom/emoji/U+1F4A9.png
+share/Lagom/emoji/U+1F4AA.png
+share/Lagom/emoji/U+1F4AB.png
+share/Lagom/emoji/U+1F4AC.png
+share/Lagom/emoji/U+1F4AD.png
+share/Lagom/emoji/U+1F4AE.png
+share/Lagom/emoji/U+1F4AF.png
+share/Lagom/emoji/U+1F4B0.png
+share/Lagom/emoji/U+1F4B1.png
+share/Lagom/emoji/U+1F4B2.png
+share/Lagom/emoji/U+1F4B3.png
+share/Lagom/emoji/U+1F4B4.png
+share/Lagom/emoji/U+1F4B5.png
+share/Lagom/emoji/U+1F4B6.png
+share/Lagom/emoji/U+1F4B7.png
+share/Lagom/emoji/U+1F4B8.png
+share/Lagom/emoji/U+1F4B9.png
+share/Lagom/emoji/U+1F4BA.png
+share/Lagom/emoji/U+1F4BB.png
+share/Lagom/emoji/U+1F4BC.png
+share/Lagom/emoji/U+1F4BD.png
+share/Lagom/emoji/U+1F4BE.png
+share/Lagom/emoji/U+1F4BF.png
+share/Lagom/emoji/U+1F4C0.png
+share/Lagom/emoji/U+1F4C1.png
+share/Lagom/emoji/U+1F4C2.png
+share/Lagom/emoji/U+1F4C3.png
+share/Lagom/emoji/U+1F4C4.png
+share/Lagom/emoji/U+1F4C5.png
+share/Lagom/emoji/U+1F4C6.png
+share/Lagom/emoji/U+1F4C7.png
+share/Lagom/emoji/U+1F4C8.png
+share/Lagom/emoji/U+1F4C9.png
+share/Lagom/emoji/U+1F4CA.png
+share/Lagom/emoji/U+1F4CB.png
+share/Lagom/emoji/U+1F4CC.png
+share/Lagom/emoji/U+1F4CD.png
+share/Lagom/emoji/U+1F4CE.png
+share/Lagom/emoji/U+1F4CF.png
+share/Lagom/emoji/U+1F4D0.png
+share/Lagom/emoji/U+1F4D1.png
+share/Lagom/emoji/U+1F4D2.png
+share/Lagom/emoji/U+1F4D3.png
+share/Lagom/emoji/U+1F4D4.png
+share/Lagom/emoji/U+1F4D5.png
+share/Lagom/emoji/U+1F4D6.png
+share/Lagom/emoji/U+1F4D7.png
+share/Lagom/emoji/U+1F4D8.png
+share/Lagom/emoji/U+1F4D9.png
+share/Lagom/emoji/U+1F4DA.png
+share/Lagom/emoji/U+1F4DB.png
+share/Lagom/emoji/U+1F4DC.png
+share/Lagom/emoji/U+1F4DD.png
+share/Lagom/emoji/U+1F4DE.png
+share/Lagom/emoji/U+1F4DF.png
+share/Lagom/emoji/U+1F4E0.png
+share/Lagom/emoji/U+1F4E1.png
+share/Lagom/emoji/U+1F4E2.png
+share/Lagom/emoji/U+1F4E3.png
+share/Lagom/emoji/U+1F4E4.png
+share/Lagom/emoji/U+1F4E5.png
+share/Lagom/emoji/U+1F4E6.png
+share/Lagom/emoji/U+1F4E7.png
+share/Lagom/emoji/U+1F4E8.png
+share/Lagom/emoji/U+1F4E9.png
+share/Lagom/emoji/U+1F4EA.png
+share/Lagom/emoji/U+1F4EB.png
+share/Lagom/emoji/U+1F4EC.png
+share/Lagom/emoji/U+1F4ED.png
+share/Lagom/emoji/U+1F4EE.png
+share/Lagom/emoji/U+1F4EF.png
+share/Lagom/emoji/U+1F4F0.png
+share/Lagom/emoji/U+1F4F1.png
+share/Lagom/emoji/U+1F4F2.png
+share/Lagom/emoji/U+1F4F3.png
+share/Lagom/emoji/U+1F4F4.png
+share/Lagom/emoji/U+1F4F5.png
+share/Lagom/emoji/U+1F4F6.png
+share/Lagom/emoji/U+1F4F7.png
+share/Lagom/emoji/U+1F4F8.png
+share/Lagom/emoji/U+1F4F9.png
+share/Lagom/emoji/U+1F4FA.png
+share/Lagom/emoji/U+1F4FB.png
+share/Lagom/emoji/U+1F4FC.png
+share/Lagom/emoji/U+1F4FD.png
+share/Lagom/emoji/U+1F500.png
+share/Lagom/emoji/U+1F501.png
+share/Lagom/emoji/U+1F502.png
+share/Lagom/emoji/U+1F503.png
+share/Lagom/emoji/U+1F504.png
+share/Lagom/emoji/U+1F505.png
+share/Lagom/emoji/U+1F506.png
+share/Lagom/emoji/U+1F507.png
+share/Lagom/emoji/U+1F508.png
+share/Lagom/emoji/U+1F509.png
+share/Lagom/emoji/U+1F50A.png
+share/Lagom/emoji/U+1F50B.png
+share/Lagom/emoji/U+1F50C.png
+share/Lagom/emoji/U+1F50D.png
+share/Lagom/emoji/U+1F50E.png
+share/Lagom/emoji/U+1F50F.png
+share/Lagom/emoji/U+1F510.png
+share/Lagom/emoji/U+1F511.png
+share/Lagom/emoji/U+1F512.png
+share/Lagom/emoji/U+1F513.png
+share/Lagom/emoji/U+1F514.png
+share/Lagom/emoji/U+1F515.png
+share/Lagom/emoji/U+1F516.png
+share/Lagom/emoji/U+1F517.png
+share/Lagom/emoji/U+1F517_U+200D_U+1F4A5.png
+share/Lagom/emoji/U+1F518.png
+share/Lagom/emoji/U+1F519.png
+share/Lagom/emoji/U+1F51A.png
+share/Lagom/emoji/U+1F51B.png
+share/Lagom/emoji/U+1F51C.png
+share/Lagom/emoji/U+1F51D.png
+share/Lagom/emoji/U+1F51E.png
+share/Lagom/emoji/U+1F51F.png
+share/Lagom/emoji/U+1F520.png
+share/Lagom/emoji/U+1F521.png
+share/Lagom/emoji/U+1F522.png
+share/Lagom/emoji/U+1F523.png
+share/Lagom/emoji/U+1F524.png
+share/Lagom/emoji/U+1F525.png
+share/Lagom/emoji/U+1F526.png
+share/Lagom/emoji/U+1F527.png
+share/Lagom/emoji/U+1F528.png
+share/Lagom/emoji/U+1F529.png
+share/Lagom/emoji/U+1F52A.png
+share/Lagom/emoji/U+1F52B.png
+share/Lagom/emoji/U+1F52C.png
+share/Lagom/emoji/U+1F52D.png
+share/Lagom/emoji/U+1F52E.png
+share/Lagom/emoji/U+1F52F.png
+share/Lagom/emoji/U+1F530.png
+share/Lagom/emoji/U+1F531.png
+share/Lagom/emoji/U+1F532.png
+share/Lagom/emoji/U+1F533.png
+share/Lagom/emoji/U+1F534.png
+share/Lagom/emoji/U+1F535.png
+share/Lagom/emoji/U+1F536.png
+share/Lagom/emoji/U+1F537.png
+share/Lagom/emoji/U+1F538.png
+share/Lagom/emoji/U+1F539.png
+share/Lagom/emoji/U+1F53A.png
+share/Lagom/emoji/U+1F53B.png
+share/Lagom/emoji/U+1F53C.png
+share/Lagom/emoji/U+1F53D.png
+share/Lagom/emoji/U+1F549.png
+share/Lagom/emoji/U+1F54A.png
+share/Lagom/emoji/U+1F54B.png
+share/Lagom/emoji/U+1F54D.png
+share/Lagom/emoji/U+1F54E.png
+share/Lagom/emoji/U+1F550.png
+share/Lagom/emoji/U+1F551.png
+share/Lagom/emoji/U+1F552.png
+share/Lagom/emoji/U+1F553.png
+share/Lagom/emoji/U+1F554.png
+share/Lagom/emoji/U+1F555.png
+share/Lagom/emoji/U+1F556.png
+share/Lagom/emoji/U+1F557.png
+share/Lagom/emoji/U+1F558.png
+share/Lagom/emoji/U+1F559.png
+share/Lagom/emoji/U+1F55A.png
+share/Lagom/emoji/U+1F55B.png
+share/Lagom/emoji/U+1F55C.png
+share/Lagom/emoji/U+1F55D.png
+share/Lagom/emoji/U+1F55E.png
+share/Lagom/emoji/U+1F55F.png
+share/Lagom/emoji/U+1F560.png
+share/Lagom/emoji/U+1F561.png
+share/Lagom/emoji/U+1F562.png
+share/Lagom/emoji/U+1F563.png
+share/Lagom/emoji/U+1F564.png
+share/Lagom/emoji/U+1F565.png
+share/Lagom/emoji/U+1F566.png
+share/Lagom/emoji/U+1F567.png
+share/Lagom/emoji/U+1F56F.png
+share/Lagom/emoji/U+1F570.png
+share/Lagom/emoji/U+1F573.png
+share/Lagom/emoji/U+1F574.png
+share/Lagom/emoji/U+1F575.png
+share/Lagom/emoji/U+1F576.png
+share/Lagom/emoji/U+1F577.png
+share/Lagom/emoji/U+1F578.png
+share/Lagom/emoji/U+1F579.png
+share/Lagom/emoji/U+1F57A.png
+share/Lagom/emoji/U+1F587.png
+share/Lagom/emoji/U+1F58A.png
+share/Lagom/emoji/U+1F58B.png
+share/Lagom/emoji/U+1F58C.png
+share/Lagom/emoji/U+1F58D.png
+share/Lagom/emoji/U+1F590.png
+share/Lagom/emoji/U+1F595.png
+share/Lagom/emoji/U+1F596.png
+share/Lagom/emoji/U+1F5A4.png
+share/Lagom/emoji/U+1F5A5.png
+share/Lagom/emoji/U+1F5A8.png
+share/Lagom/emoji/U+1F5B1.png
+share/Lagom/emoji/U+1F5B2.png
+share/Lagom/emoji/U+1F5BC.png
+share/Lagom/emoji/U+1F5C2.png
+share/Lagom/emoji/U+1F5C3.png
+share/Lagom/emoji/U+1F5C4.png
+share/Lagom/emoji/U+1F5D1.png
+share/Lagom/emoji/U+1F5D2.png
+share/Lagom/emoji/U+1F5D3.png
+share/Lagom/emoji/U+1F5DC.png
+share/Lagom/emoji/U+1F5DD.png
+share/Lagom/emoji/U+1F5DE.png
+share/Lagom/emoji/U+1F5E1.png
+share/Lagom/emoji/U+1F5E3.png
+share/Lagom/emoji/U+1F5E8.png
+share/Lagom/emoji/U+1F5EF.png
+share/Lagom/emoji/U+1F5F3.png
+share/Lagom/emoji/U+1F5FA.png
+share/Lagom/emoji/U+1F5FB.png
+share/Lagom/emoji/U+1F5FC.png
+share/Lagom/emoji/U+1F5FD.png
+share/Lagom/emoji/U+1F5FE.png
+share/Lagom/emoji/U+1F5FF.png
+share/Lagom/emoji/U+1F600.png
+share/Lagom/emoji/U+1F601.png
+share/Lagom/emoji/U+1F602.png
+share/Lagom/emoji/U+1F603.png
+share/Lagom/emoji/U+1F604.png
+share/Lagom/emoji/U+1F605.png
+share/Lagom/emoji/U+1F606.png
+share/Lagom/emoji/U+1F607.png
+share/Lagom/emoji/U+1F608.png
+share/Lagom/emoji/U+1F609.png
+share/Lagom/emoji/U+1F60A.png
+share/Lagom/emoji/U+1F60B.png
+share/Lagom/emoji/U+1F60C.png
+share/Lagom/emoji/U+1F60D.png
+share/Lagom/emoji/U+1F60E.png
+share/Lagom/emoji/U+1F60F.png
+share/Lagom/emoji/U+1F610.png
+share/Lagom/emoji/U+1F611.png
+share/Lagom/emoji/U+1F612.png
+share/Lagom/emoji/U+1F613.png
+share/Lagom/emoji/U+1F614.png
+share/Lagom/emoji/U+1F615.png
+share/Lagom/emoji/U+1F616.png
+share/Lagom/emoji/U+1F617.png
+share/Lagom/emoji/U+1F618.png
+share/Lagom/emoji/U+1F619.png
+share/Lagom/emoji/U+1F61A.png
+share/Lagom/emoji/U+1F61B.png
+share/Lagom/emoji/U+1F61C.png
+share/Lagom/emoji/U+1F61D.png
+share/Lagom/emoji/U+1F61E.png
+share/Lagom/emoji/U+1F61F.png
+share/Lagom/emoji/U+1F620.png
+share/Lagom/emoji/U+1F621.png
+share/Lagom/emoji/U+1F622.png
+share/Lagom/emoji/U+1F623.png
+share/Lagom/emoji/U+1F624.png
+share/Lagom/emoji/U+1F625.png
+share/Lagom/emoji/U+1F626.png
+share/Lagom/emoji/U+1F627.png
+share/Lagom/emoji/U+1F628.png
+share/Lagom/emoji/U+1F629.png
+share/Lagom/emoji/U+1F62A.png
+share/Lagom/emoji/U+1F62B.png
+share/Lagom/emoji/U+1F62C.png
+share/Lagom/emoji/U+1F62D.png
+share/Lagom/emoji/U+1F62E.png
+share/Lagom/emoji/U+1F62E_U+200D_U+1F4A8.png
+share/Lagom/emoji/U+1F62F.png
+share/Lagom/emoji/U+1F630.png
+share/Lagom/emoji/U+1F631.png
+share/Lagom/emoji/U+1F632.png
+share/Lagom/emoji/U+1F633.png
+share/Lagom/emoji/U+1F634.png
+share/Lagom/emoji/U+1F635.png
+share/Lagom/emoji/U+1F635_U+200D_U+1F4AB.png
+share/Lagom/emoji/U+1F636.png
+share/Lagom/emoji/U+1F636_U+200D_U+1F32B.png
+share/Lagom/emoji/U+1F637.png
+share/Lagom/emoji/U+1F638.png
+share/Lagom/emoji/U+1F639.png
+share/Lagom/emoji/U+1F63A.png
+share/Lagom/emoji/U+1F63B.png
+share/Lagom/emoji/U+1F63C.png
+share/Lagom/emoji/U+1F63D.png
+share/Lagom/emoji/U+1F63E.png
+share/Lagom/emoji/U+1F63F.png
+share/Lagom/emoji/U+1F640.png
+share/Lagom/emoji/U+1F641.png
+share/Lagom/emoji/U+1F642.png
+share/Lagom/emoji/U+1F642_U+200D_U+2194.png
+share/Lagom/emoji/U+1F642_U+200D_U+2195.png
+share/Lagom/emoji/U+1F643.png
+share/Lagom/emoji/U+1F644.png
+share/Lagom/emoji/U+1F645.png
+share/Lagom/emoji/U+1F645_U+200D_U+2640.png
+share/Lagom/emoji/U+1F645_U+200D_U+2642.png
+share/Lagom/emoji/U+1F646.png
+share/Lagom/emoji/U+1F646_U+200D_U+2640.png
+share/Lagom/emoji/U+1F646_U+200D_U+2642.png
+share/Lagom/emoji/U+1F647.png
+share/Lagom/emoji/U+1F647_U+200D_U+2640.png
+share/Lagom/emoji/U+1F647_U+200D_U+2642.png
+share/Lagom/emoji/U+1F648.png
+share/Lagom/emoji/U+1F649.png
+share/Lagom/emoji/U+1F64A.png
+share/Lagom/emoji/U+1F64B.png
+share/Lagom/emoji/U+1F64B_U+200D_U+2640.png
+share/Lagom/emoji/U+1F64B_U+200D_U+2642.png
+share/Lagom/emoji/U+1F64C.png
+share/Lagom/emoji/U+1F64F.png
+share/Lagom/emoji/U+1F680.png
+share/Lagom/emoji/U+1F681.png
+share/Lagom/emoji/U+1F682.png
+share/Lagom/emoji/U+1F683.png
+share/Lagom/emoji/U+1F684.png
+share/Lagom/emoji/U+1F685.png
+share/Lagom/emoji/U+1F686.png
+share/Lagom/emoji/U+1F687.png
+share/Lagom/emoji/U+1F689.png
+share/Lagom/emoji/U+1F68E.png
+share/Lagom/emoji/U+1F68F.png
+share/Lagom/emoji/U+1F690.png
+share/Lagom/emoji/U+1F691.png
+share/Lagom/emoji/U+1F692.png
+share/Lagom/emoji/U+1F693.png
+share/Lagom/emoji/U+1F694.png
+share/Lagom/emoji/U+1F695.png
+share/Lagom/emoji/U+1F696.png
+share/Lagom/emoji/U+1F697.png
+share/Lagom/emoji/U+1F698.png
+share/Lagom/emoji/U+1F699.png
+share/Lagom/emoji/U+1F69A.png
+share/Lagom/emoji/U+1F69B.png
+share/Lagom/emoji/U+1F69C.png
+share/Lagom/emoji/U+1F69D.png
+share/Lagom/emoji/U+1F6A0.png
+share/Lagom/emoji/U+1F6A1.png
+share/Lagom/emoji/U+1F6A2.png
+share/Lagom/emoji/U+1F6A3.png
+share/Lagom/emoji/U+1F6A3_U+200D_U+2640.png
+share/Lagom/emoji/U+1F6A3_U+200D_U+2642.png
+share/Lagom/emoji/U+1F6A4.png
+share/Lagom/emoji/U+1F6A5.png
+share/Lagom/emoji/U+1F6A6.png
+share/Lagom/emoji/U+1F6A7.png
+share/Lagom/emoji/U+1F6A8.png
+share/Lagom/emoji/U+1F6A9.png
+share/Lagom/emoji/U+1F6AA.png
+share/Lagom/emoji/U+1F6AB.png
+share/Lagom/emoji/U+1F6AC.png
+share/Lagom/emoji/U+1F6AD.png
+share/Lagom/emoji/U+1F6AE.png
+share/Lagom/emoji/U+1F6AF.png
+share/Lagom/emoji/U+1F6B0.png
+share/Lagom/emoji/U+1F6B1.png
+share/Lagom/emoji/U+1F6B2.png
+share/Lagom/emoji/U+1F6B3.png
+share/Lagom/emoji/U+1F6B4.png
+share/Lagom/emoji/U+1F6B4_U+200D_U+2640.png
+share/Lagom/emoji/U+1F6B4_U+200D_U+2642.png
+share/Lagom/emoji/U+1F6B5.png
+share/Lagom/emoji/U+1F6B5_U+200D_U+2640.png
+share/Lagom/emoji/U+1F6B5_U+200D_U+2642.png
+share/Lagom/emoji/U+1F6B6.png
+share/Lagom/emoji/U+1F6B6_U+200D_U+2640.png
+share/Lagom/emoji/U+1F6B6_U+200D_U+2642.png
+share/Lagom/emoji/U+1F6B7.png
+share/Lagom/emoji/U+1F6B8.png
+share/Lagom/emoji/U+1F6B9.png
+share/Lagom/emoji/U+1F6BA.png
+share/Lagom/emoji/U+1F6BB.png
+share/Lagom/emoji/U+1F6BC.png
+share/Lagom/emoji/U+1F6BD.png
+share/Lagom/emoji/U+1F6BE.png
+share/Lagom/emoji/U+1F6BF.png
+share/Lagom/emoji/U+1F6C0.png
+share/Lagom/emoji/U+1F6C1.png
+share/Lagom/emoji/U+1F6C2.png
+share/Lagom/emoji/U+1F6C3.png
+share/Lagom/emoji/U+1F6C4.png
+share/Lagom/emoji/U+1F6C5.png
+share/Lagom/emoji/U+1F6CB.png
+share/Lagom/emoji/U+1F6CC.png
+share/Lagom/emoji/U+1F6CD.png
+share/Lagom/emoji/U+1F6CE.png
+share/Lagom/emoji/U+1F6CF.png
+share/Lagom/emoji/U+1F6D0.png
+share/Lagom/emoji/U+1F6D1.png
+share/Lagom/emoji/U+1F6D2.png
+share/Lagom/emoji/U+1F6D6.png
+share/Lagom/emoji/U+1F6D7.png
+share/Lagom/emoji/U+1F6DC.png
+share/Lagom/emoji/U+1F6DD.png
+share/Lagom/emoji/U+1F6DE.png
+share/Lagom/emoji/U+1F6DF.png
+share/Lagom/emoji/U+1F6E0.png
+share/Lagom/emoji/U+1F6E1.png
+share/Lagom/emoji/U+1F6E2.png
+share/Lagom/emoji/U+1F6E3.png
+share/Lagom/emoji/U+1F6E4.png
+share/Lagom/emoji/U+1F6E5.png
+share/Lagom/emoji/U+1F6E9.png
+share/Lagom/emoji/U+1F6EB.png
+share/Lagom/emoji/U+1F6EC.png
+share/Lagom/emoji/U+1F6F0.png
+share/Lagom/emoji/U+1F6F3.png
+share/Lagom/emoji/U+1F6F4.png
+share/Lagom/emoji/U+1F6F5.png
+share/Lagom/emoji/U+1F6F6.png
+share/Lagom/emoji/U+1F6F7.png
+share/Lagom/emoji/U+1F6F8.png
+share/Lagom/emoji/U+1F6F9.png
+share/Lagom/emoji/U+1F6FA.png
+share/Lagom/emoji/U+1F6FB.png
+share/Lagom/emoji/U+1F7E0.png
+share/Lagom/emoji/U+1F7E1.png
+share/Lagom/emoji/U+1F7E2.png
+share/Lagom/emoji/U+1F7E3.png
+share/Lagom/emoji/U+1F7E4.png
+share/Lagom/emoji/U+1F7E5.png
+share/Lagom/emoji/U+1F7E6.png
+share/Lagom/emoji/U+1F7E7.png
+share/Lagom/emoji/U+1F7E8.png
+share/Lagom/emoji/U+1F7E9.png
+share/Lagom/emoji/U+1F7EA.png
+share/Lagom/emoji/U+1F7EB.png
+share/Lagom/emoji/U+1F7F0.png
+share/Lagom/emoji/U+1F90C.png
+share/Lagom/emoji/U+1F90D.png
+share/Lagom/emoji/U+1F90E.png
+share/Lagom/emoji/U+1F90F.png
+share/Lagom/emoji/U+1F910.png
+share/Lagom/emoji/U+1F911.png
+share/Lagom/emoji/U+1F912.png
+share/Lagom/emoji/U+1F913.png
+share/Lagom/emoji/U+1F914.png
+share/Lagom/emoji/U+1F915.png
+share/Lagom/emoji/U+1F916.png
+share/Lagom/emoji/U+1F917.png
+share/Lagom/emoji/U+1F918.png
+share/Lagom/emoji/U+1F919.png
+share/Lagom/emoji/U+1F91A.png
+share/Lagom/emoji/U+1F91B.png
+share/Lagom/emoji/U+1F91C.png
+share/Lagom/emoji/U+1F91D.png
+share/Lagom/emoji/U+1F91E.png
+share/Lagom/emoji/U+1F91F.png
+share/Lagom/emoji/U+1F920.png
+share/Lagom/emoji/U+1F921.png
+share/Lagom/emoji/U+1F922.png
+share/Lagom/emoji/U+1F923.png
+share/Lagom/emoji/U+1F924.png
+share/Lagom/emoji/U+1F925.png
+share/Lagom/emoji/U+1F926.png
+share/Lagom/emoji/U+1F927.png
+share/Lagom/emoji/U+1F928.png
+share/Lagom/emoji/U+1F929.png
+share/Lagom/emoji/U+1F92A.png
+share/Lagom/emoji/U+1F92B.png
+share/Lagom/emoji/U+1F92C.png
+share/Lagom/emoji/U+1F92D.png
+share/Lagom/emoji/U+1F92E.png
+share/Lagom/emoji/U+1F92F.png
+share/Lagom/emoji/U+1F930.png
+share/Lagom/emoji/U+1F931.png
+share/Lagom/emoji/U+1F933.png
+share/Lagom/emoji/U+1F938.png
+share/Lagom/emoji/U+1F938_U+200D_U+2640.png
+share/Lagom/emoji/U+1F938_U+200D_U+2642.png
+share/Lagom/emoji/U+1F939.png
+share/Lagom/emoji/U+1F939_U+200D_U+2640.png
+share/Lagom/emoji/U+1F939_U+200D_U+2642.png
+share/Lagom/emoji/U+1F93A.png
+share/Lagom/emoji/U+1F93E.png
+share/Lagom/emoji/U+1F93E_U+200D_U+2640.png
+share/Lagom/emoji/U+1F93E_U+200D_U+2642.png
+share/Lagom/emoji/U+1F93F.png
+share/Lagom/emoji/U+1F940.png
+share/Lagom/emoji/U+1F941.png
+share/Lagom/emoji/U+1F942.png
+share/Lagom/emoji/U+1F943.png
+share/Lagom/emoji/U+1F944.png
+share/Lagom/emoji/U+1F945.png
+share/Lagom/emoji/U+1F947.png
+share/Lagom/emoji/U+1F948.png
+share/Lagom/emoji/U+1F949.png
+share/Lagom/emoji/U+1F94A.png
+share/Lagom/emoji/U+1F94B.png
+share/Lagom/emoji/U+1F94C.png
+share/Lagom/emoji/U+1F94D.png
+share/Lagom/emoji/U+1F94E.png
+share/Lagom/emoji/U+1F94F.png
+share/Lagom/emoji/U+1F950.png
+share/Lagom/emoji/U+1F951.png
+share/Lagom/emoji/U+1F952.png
+share/Lagom/emoji/U+1F953.png
+share/Lagom/emoji/U+1F954.png
+share/Lagom/emoji/U+1F955.png
+share/Lagom/emoji/U+1F956.png
+share/Lagom/emoji/U+1F957.png
+share/Lagom/emoji/U+1F958.png
+share/Lagom/emoji/U+1F959.png
+share/Lagom/emoji/U+1F95A.png
+share/Lagom/emoji/U+1F95B.png
+share/Lagom/emoji/U+1F95C.png
+share/Lagom/emoji/U+1F95D.png
+share/Lagom/emoji/U+1F95E.png
+share/Lagom/emoji/U+1F95F.png
+share/Lagom/emoji/U+1F960.png
+share/Lagom/emoji/U+1F961.png
+share/Lagom/emoji/U+1F962.png
+share/Lagom/emoji/U+1F963.png
+share/Lagom/emoji/U+1F964.png
+share/Lagom/emoji/U+1F965.png
+share/Lagom/emoji/U+1F966.png
+share/Lagom/emoji/U+1F967.png
+share/Lagom/emoji/U+1F968.png
+share/Lagom/emoji/U+1F969.png
+share/Lagom/emoji/U+1F96A.png
+share/Lagom/emoji/U+1F96B.png
+share/Lagom/emoji/U+1F96C.png
+share/Lagom/emoji/U+1F96D.png
+share/Lagom/emoji/U+1F96F.png
+share/Lagom/emoji/U+1F970.png
+share/Lagom/emoji/U+1F971.png
+share/Lagom/emoji/U+1F972.png
+share/Lagom/emoji/U+1F973.png
+share/Lagom/emoji/U+1F974.png
+share/Lagom/emoji/U+1F975.png
+share/Lagom/emoji/U+1F976.png
+share/Lagom/emoji/U+1F977.png
+share/Lagom/emoji/U+1F978.png
+share/Lagom/emoji/U+1F979.png
+share/Lagom/emoji/U+1F97A.png
+share/Lagom/emoji/U+1F97B.png
+share/Lagom/emoji/U+1F97C.png
+share/Lagom/emoji/U+1F97D.png
+share/Lagom/emoji/U+1F97E.png
+share/Lagom/emoji/U+1F97F.png
+share/Lagom/emoji/U+1F980.png
+share/Lagom/emoji/U+1F981.png
+share/Lagom/emoji/U+1F982.png
+share/Lagom/emoji/U+1F983.png
+share/Lagom/emoji/U+1F984.png
+share/Lagom/emoji/U+1F985.png
+share/Lagom/emoji/U+1F986.png
+share/Lagom/emoji/U+1F987.png
+share/Lagom/emoji/U+1F988.png
+share/Lagom/emoji/U+1F989.png
+share/Lagom/emoji/U+1F98A.png
+share/Lagom/emoji/U+1F98B.png
+share/Lagom/emoji/U+1F98C.png
+share/Lagom/emoji/U+1F98E.png
+share/Lagom/emoji/U+1F990.png
+share/Lagom/emoji/U+1F991.png
+share/Lagom/emoji/U+1F992.png
+share/Lagom/emoji/U+1F993.png
+share/Lagom/emoji/U+1F994.png
+share/Lagom/emoji/U+1F995.png
+share/Lagom/emoji/U+1F996.png
+share/Lagom/emoji/U+1F997.png
+share/Lagom/emoji/U+1F998.png
+share/Lagom/emoji/U+1F999.png
+share/Lagom/emoji/U+1F99A.png
+share/Lagom/emoji/U+1F99C.png
+share/Lagom/emoji/U+1F99D.png
+share/Lagom/emoji/U+1F99E.png
+share/Lagom/emoji/U+1F9A0.png
+share/Lagom/emoji/U+1F9A1.png
+share/Lagom/emoji/U+1F9A2.png
+share/Lagom/emoji/U+1F9A3.png
+share/Lagom/emoji/U+1F9A4.png
+share/Lagom/emoji/U+1F9A5.png
+share/Lagom/emoji/U+1F9A6.png
+share/Lagom/emoji/U+1F9A7.png
+share/Lagom/emoji/U+1F9A9.png
+share/Lagom/emoji/U+1F9AA.png
+share/Lagom/emoji/U+1F9AB.png
+share/Lagom/emoji/U+1F9AC.png
+share/Lagom/emoji/U+1F9AD.png
+share/Lagom/emoji/U+1F9AE.png
+share/Lagom/emoji/U+1F9AF.png
+share/Lagom/emoji/U+1F9B0.png
+share/Lagom/emoji/U+1F9B1.png
+share/Lagom/emoji/U+1F9B2.png
+share/Lagom/emoji/U+1F9B3.png
+share/Lagom/emoji/U+1F9B4.png
+share/Lagom/emoji/U+1F9B5.png
+share/Lagom/emoji/U+1F9B6.png
+share/Lagom/emoji/U+1F9B7.png
+share/Lagom/emoji/U+1F9B8.png
+share/Lagom/emoji/U+1F9B9.png
+share/Lagom/emoji/U+1F9BA.png
+share/Lagom/emoji/U+1F9BB.png
+share/Lagom/emoji/U+1F9BE.png
+share/Lagom/emoji/U+1F9BF.png
+share/Lagom/emoji/U+1F9C0.png
+share/Lagom/emoji/U+1F9C1.png
+share/Lagom/emoji/U+1F9C2.png
+share/Lagom/emoji/U+1F9C3.png
+share/Lagom/emoji/U+1F9C4.png
+share/Lagom/emoji/U+1F9C5.png
+share/Lagom/emoji/U+1F9C6.png
+share/Lagom/emoji/U+1F9C7.png
+share/Lagom/emoji/U+1F9C8.png
+share/Lagom/emoji/U+1F9C9.png
+share/Lagom/emoji/U+1F9CA.png
+share/Lagom/emoji/U+1F9CB.png
+share/Lagom/emoji/U+1F9CC.png
+share/Lagom/emoji/U+1F9CD.png
+share/Lagom/emoji/U+1F9CD_U+200D_U+2640.png
+share/Lagom/emoji/U+1F9CD_U+200D_U+2642.png
+share/Lagom/emoji/U+1F9CE.png
+share/Lagom/emoji/U+1F9CE_U+1F3FB.png
+share/Lagom/emoji/U+1F9CE_U+1F3FB_U+200D_U+2640.png
+share/Lagom/emoji/U+1F9CE_U+1F3FB_U+200D_U+2642.png
+share/Lagom/emoji/U+1F9CE_U+1F3FC.png
+share/Lagom/emoji/U+1F9CE_U+1F3FC_U+200D_U+2640.png
+share/Lagom/emoji/U+1F9CE_U+1F3FC_U+200D_U+2642.png
+share/Lagom/emoji/U+1F9CE_U+1F3FD.png
+share/Lagom/emoji/U+1F9CE_U+1F3FD_U+200D_U+2640.png
+share/Lagom/emoji/U+1F9CE_U+1F3FD_U+200D_U+2642.png
+share/Lagom/emoji/U+1F9CE_U+1F3FE.png
+share/Lagom/emoji/U+1F9CE_U+1F3FE_U+200D_U+2640.png
+share/Lagom/emoji/U+1F9CE_U+1F3FE_U+200D_U+2642.png
+share/Lagom/emoji/U+1F9CE_U+1F3FF.png
+share/Lagom/emoji/U+1F9CE_U+1F3FF_U+200D_U+2640.png
+share/Lagom/emoji/U+1F9CE_U+1F3FF_U+200D_U+2642.png
+share/Lagom/emoji/U+1F9CE_U+200D_U+2640.png
+share/Lagom/emoji/U+1F9CE_U+200D_U+2642.png
+share/Lagom/emoji/U+1F9D0.png
+share/Lagom/emoji/U+1F9D1.png
+share/Lagom/emoji/U+1F9D1_U+200D_U+1F33E.png
+share/Lagom/emoji/U+1F9D1_U+200D_U+1F373.png
+share/Lagom/emoji/U+1F9D1_U+200D_U+1F393.png
+share/Lagom/emoji/U+1F9D1_U+200D_U+1F4BB.png
+share/Lagom/emoji/U+1F9D1_U+200D_U+1F4BC.png
+share/Lagom/emoji/U+1F9D1_U+200D_U+1F527.png
+share/Lagom/emoji/U+1F9D1_U+200D_U+1F52C.png
+share/Lagom/emoji/U+1F9D1_U+200D_U+1F680.png
+share/Lagom/emoji/U+1F9D1_U+200D_U+1F692.png
+share/Lagom/emoji/U+1F9D1_U+200D_U+1F9AF.png
+share/Lagom/emoji/U+1F9D1_U+200D_U+1F9B0.png
+share/Lagom/emoji/U+1F9D1_U+200D_U+1F9B1.png
+share/Lagom/emoji/U+1F9D1_U+200D_U+1F9B2.png
+share/Lagom/emoji/U+1F9D1_U+200D_U+1F9B3.png
+share/Lagom/emoji/U+1F9D1_U+200D_U+1F9BD.png
+share/Lagom/emoji/U+1F9D1_U+200D_U+1F9D1_U+200D_U+1F9D2.png
+share/Lagom/emoji/U+1F9D1_U+200D_U+1F9D1_U+200D_U+1F9D2_U+200D_U+1F9D2.png
+share/Lagom/emoji/U+1F9D1_U+200D_U+1F9D2.png
+share/Lagom/emoji/U+1F9D1_U+200D_U+1F9D2_U+200D_U+1F9D2.png
+share/Lagom/emoji/U+1F9D1_U+200D_U+2695.png
+share/Lagom/emoji/U+1F9D1_U+200D_U+2696.png
+share/Lagom/emoji/U+1F9D4.png
+share/Lagom/emoji/U+1F9D4_U+200D_U+2640.png
+share/Lagom/emoji/U+1F9D4_U+200D_U+2642.png
+share/Lagom/emoji/U+1F9D7.png
+share/Lagom/emoji/U+1F9D7_U+200D_U+2640.png
+share/Lagom/emoji/U+1F9D7_U+200D_U+2642.png
+share/Lagom/emoji/U+1F9DC_U+200D_U+2640.png
+share/Lagom/emoji/U+1F9DD_U+200D_U+2642.png
+share/Lagom/emoji/U+1F9DE.png
+share/Lagom/emoji/U+1F9DF.png
+share/Lagom/emoji/U+1F9E0.png
+share/Lagom/emoji/U+1F9E1.png
+share/Lagom/emoji/U+1F9E3.png
+share/Lagom/emoji/U+1F9E4.png
+share/Lagom/emoji/U+1F9E5.png
+share/Lagom/emoji/U+1F9E6.png
+share/Lagom/emoji/U+1F9E7.png
+share/Lagom/emoji/U+1F9E8.png
+share/Lagom/emoji/U+1F9E9.png
+share/Lagom/emoji/U+1F9EA.png
+share/Lagom/emoji/U+1F9EB.png
+share/Lagom/emoji/U+1F9EC.png
+share/Lagom/emoji/U+1F9ED.png
+share/Lagom/emoji/U+1F9EE.png
+share/Lagom/emoji/U+1F9EF.png
+share/Lagom/emoji/U+1F9F0.png
+share/Lagom/emoji/U+1F9F1.png
+share/Lagom/emoji/U+1F9F2.png
+share/Lagom/emoji/U+1F9F3.png
+share/Lagom/emoji/U+1F9F4.png
+share/Lagom/emoji/U+1F9F5.png
+share/Lagom/emoji/U+1F9F6.png
+share/Lagom/emoji/U+1F9F7.png
+share/Lagom/emoji/U+1F9F8.png
+share/Lagom/emoji/U+1F9F9.png
+share/Lagom/emoji/U+1F9FA.png
+share/Lagom/emoji/U+1F9FB.png
+share/Lagom/emoji/U+1F9FC.png
+share/Lagom/emoji/U+1F9FD.png
+share/Lagom/emoji/U+1F9FE.png
+share/Lagom/emoji/U+1F9FF.png
+share/Lagom/emoji/U+1FA71.png
+share/Lagom/emoji/U+1FA72.png
+share/Lagom/emoji/U+1FA73.png
+share/Lagom/emoji/U+1FA74.png
+share/Lagom/emoji/U+1FA75.png
+share/Lagom/emoji/U+1FA76.png
+share/Lagom/emoji/U+1FA77.png
+share/Lagom/emoji/U+1FA78.png
+share/Lagom/emoji/U+1FA79.png
+share/Lagom/emoji/U+1FA7A.png
+share/Lagom/emoji/U+1FA7B.png
+share/Lagom/emoji/U+1FA7C.png
+share/Lagom/emoji/U+1FA80.png
+share/Lagom/emoji/U+1FA81.png
+share/Lagom/emoji/U+1FA82.png
+share/Lagom/emoji/U+1FA83.png
+share/Lagom/emoji/U+1FA84.png
+share/Lagom/emoji/U+1FA85.png
+share/Lagom/emoji/U+1FA87.png
+share/Lagom/emoji/U+1FA88.png
+share/Lagom/emoji/U+1FA90.png
+share/Lagom/emoji/U+1FA91.png
+share/Lagom/emoji/U+1FA92.png
+share/Lagom/emoji/U+1FA93.png
+share/Lagom/emoji/U+1FA94.png
+share/Lagom/emoji/U+1FA95.png
+share/Lagom/emoji/U+1FA96.png
+share/Lagom/emoji/U+1FA97.png
+share/Lagom/emoji/U+1FA98.png
+share/Lagom/emoji/U+1FA99.png
+share/Lagom/emoji/U+1FA9A.png
+share/Lagom/emoji/U+1FA9B.png
+share/Lagom/emoji/U+1FA9C.png
+share/Lagom/emoji/U+1FA9D.png
+share/Lagom/emoji/U+1FA9E.png
+share/Lagom/emoji/U+1FA9F.png
+share/Lagom/emoji/U+1FAA0.png
+share/Lagom/emoji/U+1FAA1.png
+share/Lagom/emoji/U+1FAA2.png
+share/Lagom/emoji/U+1FAA3.png
+share/Lagom/emoji/U+1FAA4.png
+share/Lagom/emoji/U+1FAA5.png
+share/Lagom/emoji/U+1FAA6.png
+share/Lagom/emoji/U+1FAA7.png
+share/Lagom/emoji/U+1FAA8.png
+share/Lagom/emoji/U+1FAA9.png
+share/Lagom/emoji/U+1FAAA.png
+share/Lagom/emoji/U+1FAAB.png
+share/Lagom/emoji/U+1FAAD.png
+share/Lagom/emoji/U+1FAAE.png
+share/Lagom/emoji/U+1FAAF.png
+share/Lagom/emoji/U+1FAB0.png
+share/Lagom/emoji/U+1FAB1.png
+share/Lagom/emoji/U+1FAB2.png
+share/Lagom/emoji/U+1FAB3.png
+share/Lagom/emoji/U+1FAB4.png
+share/Lagom/emoji/U+1FAB5.png
+share/Lagom/emoji/U+1FAB6.png
+share/Lagom/emoji/U+1FAB7.png
+share/Lagom/emoji/U+1FAB8.png
+share/Lagom/emoji/U+1FAB9.png
+share/Lagom/emoji/U+1FABA.png
+share/Lagom/emoji/U+1FABB.png
+share/Lagom/emoji/U+1FABC.png
+share/Lagom/emoji/U+1FABD.png
+share/Lagom/emoji/U+1FABF.png
+share/Lagom/emoji/U+1FAC0.png
+share/Lagom/emoji/U+1FAC1.png
+share/Lagom/emoji/U+1FAC2.png
+share/Lagom/emoji/U+1FAC3.png
+share/Lagom/emoji/U+1FAC4.png
+share/Lagom/emoji/U+1FAC5.png
+share/Lagom/emoji/U+1FACE.png
+share/Lagom/emoji/U+1FACF.png
+share/Lagom/emoji/U+1FAD0.png
+share/Lagom/emoji/U+1FAD1.png
+share/Lagom/emoji/U+1FAD2.png
+share/Lagom/emoji/U+1FAD3.png
+share/Lagom/emoji/U+1FAD4.png
+share/Lagom/emoji/U+1FAD5.png
+share/Lagom/emoji/U+1FAD6.png
+share/Lagom/emoji/U+1FAD7.png
+share/Lagom/emoji/U+1FAD8.png
+share/Lagom/emoji/U+1FAD9.png
+share/Lagom/emoji/U+1FADA.png
+share/Lagom/emoji/U+1FADB.png
+share/Lagom/emoji/U+1FAE0.png
+share/Lagom/emoji/U+1FAE1.png
+share/Lagom/emoji/U+1FAE2.png
+share/Lagom/emoji/U+1FAE3.png
+share/Lagom/emoji/U+1FAE4.png
+share/Lagom/emoji/U+1FAE5.png
+share/Lagom/emoji/U+1FAE6.png
+share/Lagom/emoji/U+1FAE7.png
+share/Lagom/emoji/U+1FAE8.png
+share/Lagom/emoji/U+1FAF0.png
+share/Lagom/emoji/U+1FAF1.png
+share/Lagom/emoji/U+1FAF2.png
+share/Lagom/emoji/U+1FAF3.png
+share/Lagom/emoji/U+1FAF4.png
+share/Lagom/emoji/U+1FAF5.png
+share/Lagom/emoji/U+1FAF6.png
+share/Lagom/emoji/U+1FAF6_U+1F3FB.png
+share/Lagom/emoji/U+1FAF6_U+1F3FC.png
+share/Lagom/emoji/U+1FAF6_U+1F3FD.png
+share/Lagom/emoji/U+1FAF6_U+1F3FE.png
+share/Lagom/emoji/U+1FAF6_U+1F3FF.png
+share/Lagom/emoji/U+1FAF7.png
+share/Lagom/emoji/U+1FAF8.png
+share/Lagom/emoji/U+203C.png
+share/Lagom/emoji/U+2049.png
+share/Lagom/emoji/U+2122.png
+share/Lagom/emoji/U+2139.png
+share/Lagom/emoji/U+2194.png
+share/Lagom/emoji/U+2195.png
+share/Lagom/emoji/U+2196.png
+share/Lagom/emoji/U+2197.png
+share/Lagom/emoji/U+2198.png
+share/Lagom/emoji/U+2199.png
+share/Lagom/emoji/U+21A9.png
+share/Lagom/emoji/U+21AA.png
+share/Lagom/emoji/U+231A.png
+share/Lagom/emoji/U+231B.png
+share/Lagom/emoji/U+2328.png
+share/Lagom/emoji/U+23CF.png
+share/Lagom/emoji/U+23E9.png
+share/Lagom/emoji/U+23EA.png
+share/Lagom/emoji/U+23EB.png
+share/Lagom/emoji/U+23EC.png
+share/Lagom/emoji/U+23ED.png
+share/Lagom/emoji/U+23EE.png
+share/Lagom/emoji/U+23EF.png
+share/Lagom/emoji/U+23F0.png
+share/Lagom/emoji/U+23F1.png
+share/Lagom/emoji/U+23F2.png
+share/Lagom/emoji/U+23F3.png
+share/Lagom/emoji/U+23F8.png
+share/Lagom/emoji/U+23F9.png
+share/Lagom/emoji/U+23FA.png
+share/Lagom/emoji/U+23_U+20E3.png
+share/Lagom/emoji/U+24C2.png
+share/Lagom/emoji/U+25AA.png
+share/Lagom/emoji/U+25AB.png
+share/Lagom/emoji/U+25B6.png
+share/Lagom/emoji/U+25C0.png
+share/Lagom/emoji/U+25FB.png
+share/Lagom/emoji/U+25FC.png
+share/Lagom/emoji/U+25FD.png
+share/Lagom/emoji/U+25FE.png
+share/Lagom/emoji/U+2600.png
+share/Lagom/emoji/U+2601.png
+share/Lagom/emoji/U+2602.png
+share/Lagom/emoji/U+2603.png
+share/Lagom/emoji/U+2604.png
+share/Lagom/emoji/U+260E.png
+share/Lagom/emoji/U+2611.png
+share/Lagom/emoji/U+2614.png
+share/Lagom/emoji/U+2615.png
+share/Lagom/emoji/U+2618.png
+share/Lagom/emoji/U+261D.png
+share/Lagom/emoji/U+2620.png
+share/Lagom/emoji/U+2622.png
+share/Lagom/emoji/U+2623.png
+share/Lagom/emoji/U+2626.png
+share/Lagom/emoji/U+262A.png
+share/Lagom/emoji/U+262E.png
+share/Lagom/emoji/U+262F.png
+share/Lagom/emoji/U+2638.png
+share/Lagom/emoji/U+2639.png
+share/Lagom/emoji/U+263A.png
+share/Lagom/emoji/U+2640.png
+share/Lagom/emoji/U+2642.png
+share/Lagom/emoji/U+2648.png
+share/Lagom/emoji/U+2649.png
+share/Lagom/emoji/U+264A.png
+share/Lagom/emoji/U+264B.png
+share/Lagom/emoji/U+264C.png
+share/Lagom/emoji/U+264D.png
+share/Lagom/emoji/U+264E.png
+share/Lagom/emoji/U+264F.png
+share/Lagom/emoji/U+2650.png
+share/Lagom/emoji/U+2651.png
+share/Lagom/emoji/U+2652.png
+share/Lagom/emoji/U+2653.png
+share/Lagom/emoji/U+265F.png
+share/Lagom/emoji/U+2660.png
+share/Lagom/emoji/U+2663.png
+share/Lagom/emoji/U+2665.png
+share/Lagom/emoji/U+2666.png
+share/Lagom/emoji/U+2668.png
+share/Lagom/emoji/U+267B.png
+share/Lagom/emoji/U+267E.png
+share/Lagom/emoji/U+267F.png
+share/Lagom/emoji/U+2692.png
+share/Lagom/emoji/U+2693.png
+share/Lagom/emoji/U+2694.png
+share/Lagom/emoji/U+2695.png
+share/Lagom/emoji/U+2696.png
+share/Lagom/emoji/U+2697.png
+share/Lagom/emoji/U+2699.png
+share/Lagom/emoji/U+269B.png
+share/Lagom/emoji/U+269C.png
+share/Lagom/emoji/U+26A0.png
+share/Lagom/emoji/U+26A1.png
+share/Lagom/emoji/U+26A7.png
+share/Lagom/emoji/U+26AA.png
+share/Lagom/emoji/U+26AB.png
+share/Lagom/emoji/U+26B0.png
+share/Lagom/emoji/U+26B1.png
+share/Lagom/emoji/U+26BD.png
+share/Lagom/emoji/U+26BE.png
+share/Lagom/emoji/U+26C4.png
+share/Lagom/emoji/U+26C5.png
+share/Lagom/emoji/U+26C8.png
+share/Lagom/emoji/U+26CE.png
+share/Lagom/emoji/U+26CF.png
+share/Lagom/emoji/U+26D1.png
+share/Lagom/emoji/U+26D3.png
+share/Lagom/emoji/U+26D4.png
+share/Lagom/emoji/U+26E9.png
+share/Lagom/emoji/U+26EA.png
+share/Lagom/emoji/U+26F0.png
+share/Lagom/emoji/U+26F1.png
+share/Lagom/emoji/U+26F2.png
+share/Lagom/emoji/U+26F3.png
+share/Lagom/emoji/U+26F4.png
+share/Lagom/emoji/U+26F5.png
+share/Lagom/emoji/U+26F7.png
+share/Lagom/emoji/U+26F8.png
+share/Lagom/emoji/U+26F9.png
+share/Lagom/emoji/U+26F9_U+200D_U+2640.png
+share/Lagom/emoji/U+26F9_U+200D_U+2642.png
+share/Lagom/emoji/U+26FA.png
+share/Lagom/emoji/U+26FD.png
+share/Lagom/emoji/U+2702.png
+share/Lagom/emoji/U+2705.png
+share/Lagom/emoji/U+2708.png
+share/Lagom/emoji/U+2709.png
+share/Lagom/emoji/U+270A.png
+share/Lagom/emoji/U+270B.png
+share/Lagom/emoji/U+270C.png
+share/Lagom/emoji/U+270D.png
+share/Lagom/emoji/U+270F.png
+share/Lagom/emoji/U+2712.png
+share/Lagom/emoji/U+2714.png
+share/Lagom/emoji/U+2716.png
+share/Lagom/emoji/U+271D.png
+share/Lagom/emoji/U+2721.png
+share/Lagom/emoji/U+2728.png
+share/Lagom/emoji/U+2733.png
+share/Lagom/emoji/U+2734.png
+share/Lagom/emoji/U+2744.png
+share/Lagom/emoji/U+2747.png
+share/Lagom/emoji/U+274C.png
+share/Lagom/emoji/U+274E.png
+share/Lagom/emoji/U+2753.png
+share/Lagom/emoji/U+2754.png
+share/Lagom/emoji/U+2755.png
+share/Lagom/emoji/U+2757.png
+share/Lagom/emoji/U+2763.png
+share/Lagom/emoji/U+2764.png
+share/Lagom/emoji/U+2764_U+200D_U+1F525.png
+share/Lagom/emoji/U+2764_U+200D_U+1FA79.png
+share/Lagom/emoji/U+2795.png
+share/Lagom/emoji/U+2796.png
+share/Lagom/emoji/U+2797.png
+share/Lagom/emoji/U+27A1.png
+share/Lagom/emoji/U+27B0.png
+share/Lagom/emoji/U+27BF.png
+share/Lagom/emoji/U+2934.png
+share/Lagom/emoji/U+2935.png
+share/Lagom/emoji/U+2A_U+20E3.png
+share/Lagom/emoji/U+2B05.png
+share/Lagom/emoji/U+2B06.png
+share/Lagom/emoji/U+2B07.png
+share/Lagom/emoji/U+2B1B.png
+share/Lagom/emoji/U+2B1C.png
+share/Lagom/emoji/U+2B50.png
+share/Lagom/emoji/U+2B55.png
+share/Lagom/emoji/U+3030.png
+share/Lagom/emoji/U+303D.png
+share/Lagom/emoji/U+30_U+20E3.png
+share/Lagom/emoji/U+31_U+20E3.png
+share/Lagom/emoji/U+3297.png
+share/Lagom/emoji/U+32_U+20E3.png
+share/Lagom/emoji/U+33_U+20E3.png
+share/Lagom/emoji/U+34_U+20E3.png
+share/Lagom/emoji/U+35_U+20E3.png
+share/Lagom/emoji/U+36_U+20E3.png
+share/Lagom/emoji/U+37_U+20E3.png
+share/Lagom/emoji/U+38_U+20E3.png
+share/Lagom/emoji/U+39_U+20E3.png
+share/Lagom/emoji/U+A9.png
+share/Lagom/emoji/U+AE.png
share/Lagom/fonts/CsillaBold10.font
share/Lagom/fonts/CsillaBold12.font
share/Lagom/fonts/CsillaRegular10.font
@@ -128,6 +2130,7 @@ share/Lagom/fonts/KaticaRegular10.font
share/Lagom/fonts/KaticaRegular12.font
share/Lagom/fonts/SerenitySans-Regular.ttf
share/Lagom/icons/16x16/app-browser.png
+share/Lagom/icons/16x16/app-system-monitor.png
share/Lagom/icons/16x16/audio-volume-high.png
share/Lagom/icons/16x16/audio-volume-muted.png
share/Lagom/icons/16x16/close-tab.png
@@ -145,6 +2148,7 @@ share/Lagom/icons/16x16/layers.png
share/Lagom/icons/16x16/layout.png
share/Lagom/icons/16x16/new-tab.png
share/Lagom/icons/16x16/open-parent-directory.png
+share/Lagom/icons/16x16/paste.png
share/Lagom/icons/16x16/pause.png
share/Lagom/icons/16x16/play.png
share/Lagom/icons/16x16/select-all.png
@@ -155,6 +2159,7 @@ share/Lagom/icons/16x16/zoom-in.png
share/Lagom/icons/16x16/zoom-out.png
share/Lagom/icons/16x16/zoom-reset.png
share/Lagom/icons/32x32/app-browser.png
+share/Lagom/icons/32x32/app-system-monitor.png
share/Lagom/icons/32x32/filetype-folder.png
share/Lagom/icons/32x32/filetype-unknown.png
share/Lagom/icons/32x32/msgbox-warning.png
diff --git a/www/larbin/Makefile b/www/larbin/Makefile
index 1306badd5d16..30284c2449b2 100644
--- a/www/larbin/Makefile
+++ b/www/larbin/Makefile
@@ -11,6 +11,9 @@ WWW= http://www.ailleret.com/
LICENSE= GPLv2
LICENSE_FILE= ${WRKSRC}/COPYING
+DEPRECATED= Abandonware, obsolete web crawler
+EXPIRATION_DATE=2024-05-31
+
BUILD_DEPENDS= bash:shells/bash \
makedepend:devel/makedepend
diff --git a/www/libdatachannel/Makefile b/www/libdatachannel/Makefile
index d1c7c630bb02..3ce1985ff362 100644
--- a/www/libdatachannel/Makefile
+++ b/www/libdatachannel/Makefile
@@ -1,6 +1,6 @@
PORTNAME= libdatachannel
DISTVERSIONPREFIX= v
-DISTVERSION= 0.20.3
+DISTVERSION= 0.21.1
CATEGORIES= www
MAINTAINER= yuri@FreeBSD.org
diff --git a/www/libdatachannel/distinfo b/www/libdatachannel/distinfo
index a1680f25392b..49b3d9e2bf2a 100644
--- a/www/libdatachannel/distinfo
+++ b/www/libdatachannel/distinfo
@@ -1,6 +1,6 @@
-TIMESTAMP = 1713502180
-SHA256 (paullouisageneau-libdatachannel-v0.20.3_GH0.tar.gz) = 31274df211173bec5b3c104559fed25b5466b53f438c050fb71719d53a12c8e7
-SIZE (paullouisageneau-libdatachannel-v0.20.3_GH0.tar.gz) = 52630159
+TIMESTAMP = 1715832106
+SHA256 (paullouisageneau-libdatachannel-v0.21.1_GH0.tar.gz) = 0f43577037db2093031b7dce882ce83f3c47769292aba1ac995ba594a0849ce0
+SIZE (paullouisageneau-libdatachannel-v0.21.1_GH0.tar.gz) = 52635317
SHA256 (SergiusTheBest-plog-e21baecd4753f14da64ede979c5a19302618b752_GH0.tar.gz) = 658e037fe999036cca8b91a61ac07171980aeeaf2e3421b87c71454fdff07ce2
SIZE (SergiusTheBest-plog-e21baecd4753f14da64ede979c5a19302618b752_GH0.tar.gz) = 132465
SHA256 (sctplab-usrsctp-ebb18adac6501bad4501b1f6dccb67a1c85cc299_GH0.tar.gz) = 1281cb1acd159e359aa52285de83fa00e5c1fdf4d2edcb02f7535b9550885f1c
diff --git a/www/libdatachannel/pkg-plist b/www/libdatachannel/pkg-plist
index 2daa9d74706b..87a9e9662640 100644
--- a/www/libdatachannel/pkg-plist
+++ b/www/libdatachannel/pkg-plist
@@ -5,13 +5,16 @@ include/rtc/common.hpp
include/rtc/configuration.hpp
include/rtc/datachannel.hpp
include/rtc/description.hpp
+include/rtc/frameinfo.hpp
include/rtc/global.hpp
+include/rtc/h264rtpdepacketizer.hpp
include/rtc/h264rtppacketizer.hpp
include/rtc/h265nalunit.hpp
include/rtc/h265rtppacketizer.hpp
include/rtc/mediahandler.hpp
include/rtc/message.hpp
include/rtc/nalunit.hpp
+include/rtc/pacinghandler.hpp
include/rtc/peerconnection.hpp
include/rtc/plihandler.hpp
include/rtc/reliability.hpp
@@ -21,10 +24,12 @@ include/rtc/rtcpnackresponder.hpp
include/rtc/rtcpreceivingsession.hpp
include/rtc/rtcpsrreporter.hpp
include/rtc/rtp.hpp
+include/rtc/rtpdepacketizer.hpp
include/rtc/rtppacketizationconfig.hpp
include/rtc/rtppacketizer.hpp
include/rtc/track.hpp
include/rtc/utils.hpp
+include/rtc/version.h
include/rtc/websocket.hpp
include/rtc/websocketserver.hpp
lib/cmake/LibDataChannel/LibDataChannelConfig.cmake
@@ -32,5 +37,5 @@ lib/cmake/LibDataChannel/LibDataChannelConfigVersion.cmake
lib/cmake/LibDataChannel/LibDataChannelTargets-%%CMAKE_BUILD_TYPE%%.cmake
lib/cmake/LibDataChannel/LibDataChannelTargets.cmake
lib/libdatachannel.so
-lib/libdatachannel.so.0.20
-lib/libdatachannel.so.0.20.3
+lib/libdatachannel.so.0.21
+lib/libdatachannel.so.0.21.1
diff --git a/www/libjwt/Makefile b/www/libjwt/Makefile
index 8cdfed93c813..6a3287566887 100644
--- a/www/libjwt/Makefile
+++ b/www/libjwt/Makefile
@@ -1,5 +1,5 @@
PORTNAME= libjwt
-PORTVERSION= 1.17.0
+PORTVERSION= 1.17.1
MASTER_SITES= https://github.com/benmcollins/libjwt/releases/download/v${PORTVERSION}/
CATEGORIES= www
diff --git a/www/libjwt/distinfo b/www/libjwt/distinfo
index 88234fe867a7..4cc004c890d4 100644
--- a/www/libjwt/distinfo
+++ b/www/libjwt/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1708448966
-SHA256 (libjwt-1.17.0.tar.bz2) = b8b257da9b64ba9075fce3a3f670ae02dee7fc95ab7009a2e1ad60905e3f8d48
-SIZE (libjwt-1.17.0.tar.bz2) = 407710
+TIMESTAMP = 1716142054
+SHA256 (libjwt-1.17.1.tar.bz2) = 1db8ffcd2fc5e0ee750aee8d90aaecf467282a4836c88524f04bb068b1a06d72
+SIZE (libjwt-1.17.1.tar.bz2) = 404481
diff --git a/www/libjwt/pkg-plist b/www/libjwt/pkg-plist
index 25cceef44d80..c17190bae8ff 100644
--- a/www/libjwt/pkg-plist
+++ b/www/libjwt/pkg-plist
@@ -4,5 +4,5 @@ include/jwt.h
lib/libjwt.a
lib/libjwt.so
lib/libjwt.so.2
-lib/libjwt.so.2.10.0
+lib/libjwt.so.2.10.1
libdata/pkgconfig/libjwt.pc
diff --git a/www/libnghttp2/Makefile b/www/libnghttp2/Makefile
index 1e669cdffb16..5fb6931fb024 100644
--- a/www/libnghttp2/Makefile
+++ b/www/libnghttp2/Makefile
@@ -1,5 +1,5 @@
PORTNAME= nghttp2
-PORTVERSION= 1.61.0
+PORTVERSION= 1.62.1
CATEGORIES= www net
MASTER_SITES= https://github.com/nghttp2/nghttp2/releases/download/v${PORTVERSION}/
PKGNAMEPREFIX= lib
@@ -12,12 +12,12 @@ WWW= https://nghttp2.org/ \
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/COPYING
-USES= compiler:c++14-lang cpe libtool pathfix pkgconfig tar:xz
+USES= compiler:c++20-lang cpe libtool pathfix pkgconfig tar:xz
CONFIGURE_ARGS= --enable-lib-only
GNU_CONFIGURE= yes
INSTALL_TARGET= install-strip
-USE_CXXSTD= c++14
+USE_CXXSTD= c++20
USE_LDCONFIG= yes
.include <bsd.port.mk>
diff --git a/www/libnghttp2/distinfo b/www/libnghttp2/distinfo
index 8579be1c53e4..91ec4a354b3f 100644
--- a/www/libnghttp2/distinfo
+++ b/www/libnghttp2/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1712261836
-SHA256 (nghttp2-1.61.0.tar.xz) = c0e660175b9dc429f11d25b9507a834fb752eea9135ab420bb7cb7e9dbcc9654
-SIZE (nghttp2-1.61.0.tar.xz) = 1645808
+TIMESTAMP = 1716142056
+SHA256 (nghttp2-1.62.1.tar.xz) = 2345d4dc136fda28ce243e0bb21f2e7e8ef6293d62c799abbf6f633a6887af72
+SIZE (nghttp2-1.62.1.tar.xz) = 1606084
diff --git a/www/libnghttp2/pkg-plist b/www/libnghttp2/pkg-plist
index e6e6a7de5732..1afc3abca0e9 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.28.0
+lib/libnghttp2.so.14.28.1
libdata/pkgconfig/libnghttp2.pc
diff --git a/www/libnghttp3/Makefile b/www/libnghttp3/Makefile
index 2598406e1086..ec31e881245a 100644
--- a/www/libnghttp3/Makefile
+++ b/www/libnghttp3/Makefile
@@ -1,5 +1,5 @@
PORTNAME= nghttp3
-PORTVERSION= 1.2.0
+PORTVERSION= 1.3.0
CATEGORIES= www net
MASTER_SITES= https://github.com/ngtcp2/nghttp3/releases/download/v${PORTVERSION}/
PKGNAMEPREFIX= lib
diff --git a/www/libnghttp3/distinfo b/www/libnghttp3/distinfo
index 5f16776ebf0a..04b98100afcc 100644
--- a/www/libnghttp3/distinfo
+++ b/www/libnghttp3/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1708448968
-SHA256 (nghttp3-1.2.0.tar.xz) = d2e216bae7bd7362f850922e4237a5caa204853b3594b22adccab4c1e1c1d1aa
-SIZE (nghttp3-1.2.0.tar.xz) = 387592
+TIMESTAMP = 1715842554
+SHA256 (nghttp3-1.3.0.tar.xz) = 450525981d302f23832b18edd1a62cf58019392ca6402408d0eb1a7f3fd92ecf
+SIZE (nghttp3-1.3.0.tar.xz) = 390176
diff --git a/www/libnghttp3/pkg-plist b/www/libnghttp3/pkg-plist
index 8fbd9026ecbc..c2e591154dd4 100644
--- a/www/libnghttp3/pkg-plist
+++ b/www/libnghttp3/pkg-plist
@@ -3,5 +3,5 @@ include/nghttp3/version.h
lib/libnghttp3.a
lib/libnghttp3.so
lib/libnghttp3.so.9
-lib/libnghttp3.so.9.2.0
+lib/libnghttp3.so.9.2.1
libdata/pkgconfig/libnghttp3.pc
diff --git a/www/librespeed/Makefile b/www/librespeed/Makefile
index 510b4fda1d8d..22e7b6cc6757 100644
--- a/www/librespeed/Makefile
+++ b/www/librespeed/Makefile
@@ -1,5 +1,5 @@
PORTNAME= librespeed
-DISTVERSION= 5.3.0
+DISTVERSION= 5.3.2
CATEGORIES= www net
PKGNAMESUFFIX= ${PHP_PKGNAMESUFFIX}
diff --git a/www/librespeed/distinfo b/www/librespeed/distinfo
index 990f551c55e8..3022fb60de45 100644
--- a/www/librespeed/distinfo
+++ b/www/librespeed/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1701029291
-SHA256 (librespeed-speedtest-5.3.0_GH0.tar.gz) = c43a1682caffdb2102eee89e8440d426cd627a79d0106458105be37c6064f935
-SIZE (librespeed-speedtest-5.3.0_GH0.tar.gz) = 2132374
+TIMESTAMP = 1716206651
+SHA256 (librespeed-speedtest-5.3.2_GH0.tar.gz) = 00afd688e7616b5083752269b840fc59628b776be115930bcb3ea02498c92d90
+SIZE (librespeed-speedtest-5.3.2_GH0.tar.gz) = 2132667
diff --git a/www/librewolf/Makefile b/www/librewolf/Makefile
index 652a61847ef9..2fc6440cd509 100644
--- a/www/librewolf/Makefile
+++ b/www/librewolf/Makefile
@@ -1,5 +1,6 @@
PORTNAME= librewolf
DISTVERSION= 124.0.1-1
+PORTREVISION= 1
CATEGORIES= www wayland
MASTER_SITES= https://gitlab.com/api/v4/projects/32320088/packages/generic/librewolf-source/${DISTVERSION:R}-1/
DISTNAME= ${PORTNAME}-${DISTVERSION:R}-1.source.
diff --git a/www/librewolf/files/patch-rust-1.78.0 b/www/librewolf/files/patch-rust-1.78.0
new file mode 100644
index 000000000000..5c34337cb7a6
--- /dev/null
+++ b/www/librewolf/files/patch-rust-1.78.0
@@ -0,0 +1,3542 @@
+
+# HG changeset patch
+# User Henri Sivonen <hsivonen@hsivonen.fi>
+# Date 1714462184 0
+# Node ID 1db2ef126a6a8555dbf50345e16492c977b42e92
+# Parent a545e84b3674c4878f2e618b7bce23058f2ac690
+Bug 1882209 - Update encoding_rs to 0.8.34 to deal with rustc changes. r=glandium,supply-chain-reviewers
+
+Differential Revision: https://phabricator.services.mozilla.com/D207167
+
+diff --git a/.cargo/config.toml.in b/.cargo/config.toml.in
+--- .cargo/config.in
++++ .cargo/config.in
+@@ -40,6 +40,11 @@ replace-with = "vendored-sources"
+ rev = "9a2ef335c366044ffe73b1c4acabe50a1daefe05"
+ replace-with = "vendored-sources"
+
++[source."git+https://github.com/hsivonen/any_all_workaround?rev=7fb1b7034c9f172aade21ee1c8554e8d8a48af80"]
++git = "https://github.com/hsivonen/any_all_workaround"
++rev = "7fb1b7034c9f172aade21ee1c8554e8d8a48af80"
++replace-with = "vendored-sources"
++
+ [source."git+https://github.com/hsivonen/chardetng?rev=3484d3e3ebdc8931493aa5df4d7ee9360a90e76b"]
+ git = "https://github.com/hsivonen/chardetng"
+ rev = "3484d3e3ebdc8931493aa5df4d7ee9360a90e76b"
+diff --git a/Cargo.lock b/Cargo.lock
+--- Cargo.lock
++++ Cargo.lock
+@@ -87,16 +87,25 @@ dependencies = [
+
+ [[package]]
+ name = "anstyle"
+ version = "1.0.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "b84bf0a05bbb2a83e5eb6fa36bb6e87baa08193c35ff52bbf6b38d8af2890e46"
+
+ [[package]]
++name = "any_all_workaround"
++version = "0.1.0"
++source = "git+https://github.com/hsivonen/any_all_workaround?rev=7fb1b7034c9f172aade21ee1c8554e8d8a48af80#7fb1b7034c9f172aade21ee1c8554e8d8a48af80"
++dependencies = [
++ "cfg-if 1.0.0",
++ "version_check",
++]
++
++[[package]]
+ name = "anyhow"
+ version = "1.0.69"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800"
+
+ [[package]]
+ name = "app_services_logger"
+ version = "0.1.0"
+@@ -1571,22 +1580,22 @@ dependencies = [
+ "encoding_rs",
+ "nserror",
+ "nsstring",
+ "xmldecl",
+ ]
+
+ [[package]]
+ name = "encoding_rs"
+-version = "0.8.33"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+-dependencies = [
++version = "0.8.34"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"
++dependencies = [
++ "any_all_workaround",
+ "cfg-if 1.0.0",
+- "packed_simd",
+ ]
+
+ [[package]]
+ name = "enum-map"
+ version = "2.7.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "6866f3bfdf8207509a033af1a75a7b08abda06bbaaeae6669323fd5a097df2e9"
+ dependencies = [
+@@ -4321,26 +4330,16 @@ checksum = "8d91edf4fbb970279443471345a4
+ name = "oxilangtag-ffi"
+ version = "0.1.0"
+ dependencies = [
+ "nsstring",
+ "oxilangtag",
+ ]
+
+ [[package]]
+-name = "packed_simd"
+-version = "0.3.9"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1f9f08af0c877571712e2e3e686ad79efad9657dbf0f7c3c8ba943ff6c38932d"
+-dependencies = [
+- "cfg-if 1.0.0",
+- "num-traits",
+-]
+-
+-[[package]]
+ name = "parking_lot"
+ version = "0.12.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+ dependencies = [
+ "lock_api",
+ "parking_lot_core",
+ ]
+diff --git a/Cargo.toml b/Cargo.toml
+--- Cargo.toml
++++ Cargo.toml
+@@ -190,6 +190,7 @@ cssparser-macros = { git = "https://github.com/servo/r
+ cssparser-macros = { git = "https://github.com/servo/rust-cssparser", rev = "aaa966d9d6ae70c4b8a62bb5e3a14c068bb7dff0" }
+
+ # Other overrides
++any_all_workaround = { git = "https://github.com/hsivonen/any_all_workaround", rev = "7fb1b7034c9f172aade21ee1c8554e8d8a48af80" }
+ chardetng = { git = "https://github.com/hsivonen/chardetng", rev = "3484d3e3ebdc8931493aa5df4d7ee9360a90e76b" }
+ chardetng_c = { git = "https://github.com/hsivonen/chardetng_c", rev = "ed8a4c6f900a90d4dbc1d64b856e61490a1c3570" }
+ coremidi = { git = "https://github.com/chris-zen/coremidi.git", rev = "fc68464b5445caf111e41f643a2e69ccce0b4f83" }
+diff --git a/config/makefiles/rust.mk b/config/makefiles/rust.mk
+--- config/makefiles/rust.mk
++++ config/makefiles/rust.mk
+@@ -260,17 +260,17 @@ export COREAUDIO_SDK_PATH=$(IPHONEOS_SDK
+ export IPHONEOS_SDK_DIR
+ PATH := $(topsrcdir)/build/macosx:$(PATH)
+ endif
+ endif
+
+ ifndef RUSTC_BOOTSTRAP
+ RUSTC_BOOTSTRAP := mozglue_static,qcms
+ ifdef MOZ_RUST_SIMD
+-RUSTC_BOOTSTRAP := $(RUSTC_BOOTSTRAP),encoding_rs,packed_simd
++RUSTC_BOOTSTRAP := $(RUSTC_BOOTSTRAP),encoding_rs,any_all_workaround
+ endif
+ export RUSTC_BOOTSTRAP
+ endif
+
+ target_rust_ltoable := force-cargo-library-build $(ADD_RUST_LTOABLE)
+ target_rust_nonltoable := force-cargo-test-run force-cargo-program-build
+
+ ifdef MOZ_PGO_RUST
+diff --git a/supply-chain/audits.toml b/supply-chain/audits.toml
+--- supply-chain/audits.toml
++++ supply-chain/audits.toml
+@@ -596,16 +596,29 @@ who = "Mike Hommey <mh+mozilla@glandium.
+ criteria = "safe-to-deploy"
+ delta = "0.1.2 -> 0.1.4"
+
+ [[audits.android_system_properties]]
+ who = "Mike Hommey <mh+mozilla@glandium.org>"
+ criteria = "safe-to-deploy"
+ delta = "0.1.4 -> 0.1.5"
+
++[[audits.any_all_workaround]]
++who = "Henri Sivonen <hsivonen@hsivonen.fi>"
++criteria = "safe-to-deploy"
++version = "0.1.0"
++notes = "The little code that is in this crate I reviewed and modified from packed_simd (which has previously been vendored in full instead of just this small part)."
++
++[[audits.any_all_workaround]]
++who = "Henri Sivonen <hsivonen@hsivonen.fi>"
++criteria = "safe-to-deploy"
++delta = "0.1.0 -> 0.1.0@git:7fb1b7034c9f172aade21ee1c8554e8d8a48af80"
++importable = false
++notes = "This is a trivial workaround copied from elsewhere in m-c, specifically qcms."
++
+ [[audits.anyhow]]
+ who = "Mike Hommey <mh+mozilla@glandium.org>"
+ criteria = "safe-to-deploy"
+ delta = "1.0.57 -> 1.0.61"
+
+ [[audits.anyhow]]
+ who = "Bobby Holley <bobbyholley@gmail.com>"
+ criteria = "safe-to-deploy"
+diff --git a/supply-chain/config.toml b/supply-chain/config.toml
+--- supply-chain/config.toml
++++ supply-chain/config.toml
+@@ -14,16 +14,20 @@ url = "https://raw.githubusercontent.com
+ url = "https://raw.githubusercontent.com/google/supply-chain/main/audits.toml"
+
+ [imports.isrg]
+ url = "https://raw.githubusercontent.com/divviup/libprio-rs/main/supply-chain/audits.toml"
+
+ [imports.mozilla]
+ url = "https://raw.githubusercontent.com/mozilla/supply-chain/main/audits.toml"
+
++[policy.any_all_workaround]
++audit-as-crates-io = true
++notes = "This is the upstream code plus the ARM intrinsics workaround from qcms, see bug 1882209."
++
+ [policy.autocfg]
+ audit-as-crates-io = true
+ notes = "This is the upstream code plus a few local fixes, see bug 1685697."
+
+ [policy.chardetng]
+ audit-as-crates-io = true
+ notes = "This is a crate Henri wrote which is also published. We should probably update Firefox to tip and certify that."
+
+diff --git a/supply-chain/imports.lock b/supply-chain/imports.lock
+--- supply-chain/imports.lock
++++ supply-chain/imports.lock
+@@ -192,16 +192,23 @@ user-name = "David Tolnay"
+
+ [[publisher.encoding_rs]]
+ version = "0.8.33"
+ when = "2023-08-23"
+ user-id = 4484
+ user-login = "hsivonen"
+ user-name = "Henri Sivonen"
+
++[[publisher.encoding_rs]]
++version = "0.8.34"
++when = "2024-04-10"
++user-id = 4484
++user-login = "hsivonen"
++user-name = "Henri Sivonen"
++
+ [[publisher.errno]]
+ version = "0.3.8"
+ when = "2023-11-28"
+ user-id = 6825
+ user-login = "sunfishcode"
+ user-name = "Dan Gohman"
+
+ [[publisher.etagere]]
+diff --git a/third_party/rust/any_all_workaround/.cargo-checksum.json b/third_party/rust/any_all_workaround/.cargo-checksum.json
+new file mode 100644
+--- /dev/null
++++ third_party/rust/any_all_workaround/.cargo-checksum.json
+@@ -0,0 +1,1 @@
++{"files":{"Cargo.toml":"f8c127449dc9432d404c21c99833e4617ab88a797445af249a7fe3c989985d6d","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb","LICENSE-MIT-QCMS":"36d847ae882f6574ebc72f56a4f354e4f104fde4a584373496482e97d52d31bc","README.md":"4c617b8ced3a27b7edecf0e5e41ed451c04e88dab529e7a35fccc4e1551efbd7","build.rs":"56b29ab6da3e49075bfd0a7b690267c8016298bf0d332e2e68bbaf19decbbf71","src/lib.rs":"7118106690b9d25c5d0a3e2079feb83d76f1d434d0da36b9d0351806d27c850d"},"package":null}
+\ No newline at end of file
+diff --git a/third_party/rust/any_all_workaround/Cargo.toml b/third_party/rust/any_all_workaround/Cargo.toml
+new file mode 100644
+--- /dev/null
++++ third_party/rust/any_all_workaround/Cargo.toml
+@@ -0,0 +1,28 @@
++# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
++#
++# When uploading crates to the registry Cargo will automatically
++# "normalize" Cargo.toml files for maximal compatibility
++# with all versions of Cargo and also rewrite `path` dependencies
++# to registry (e.g., crates.io) dependencies.
++#
++# If you are reading this file be aware that the original Cargo.toml
++# will likely look very different (and much more reasonable).
++# See Cargo.toml.orig for the original contents.
++
++[package]
++edition = "2021"
++name = "any_all_workaround"
++version = "0.1.0"
++authors = ["Henri Sivonen <hsivonen@hsivonen.fi>"]
++description = "Workaround for bad LLVM codegen for boolean reductions on 32-bit ARM"
++homepage = "https://docs.rs/any_all_workaround/"
++documentation = "https://docs.rs/any_all_workaround/"
++readme = "README.md"
++license = "MIT OR Apache-2.0"
++repository = "https://github.com/hsivonen/any_all_workaround"
++
++[dependencies]
++cfg-if = "1.0"
++
++[build-dependencies]
++version_check = "0.9"
+diff --git a/third_party/rust/packed_simd/LICENSE-APACHE b/third_party/rust/any_all_workaround/LICENSE-APACHE
+rename from third_party/rust/packed_simd/LICENSE-APACHE
+rename to third_party/rust/any_all_workaround/LICENSE-APACHE
+diff --git a/third_party/rust/packed_simd/LICENSE-MIT b/third_party/rust/any_all_workaround/LICENSE-MIT
+rename from third_party/rust/packed_simd/LICENSE-MIT
+rename to third_party/rust/any_all_workaround/LICENSE-MIT
+diff --git a/third_party/rust/any_all_workaround/LICENSE-MIT-QCMS b/third_party/rust/any_all_workaround/LICENSE-MIT-QCMS
+new file mode 100644
+--- /dev/null
++++ third_party/rust/any_all_workaround/LICENSE-MIT-QCMS
+@@ -0,0 +1,21 @@
++qcms
++Copyright (C) 2009-2024 Mozilla Corporation
++Copyright (C) 1998-2007 Marti Maria
++
++Permission is hereby granted, free of charge, to any person obtaining
++a copy of this software and associated documentation files (the "Software"),
++to deal in the Software without restriction, including without limitation
++the rights to use, copy, modify, merge, publish, distribute, sublicense,
++and/or sell copies of the Software, and to permit persons to whom the Software
++is furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included in
++all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
++THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+diff --git a/third_party/rust/any_all_workaround/README.md b/third_party/rust/any_all_workaround/README.md
+new file mode 100644
+--- /dev/null
++++ third_party/rust/any_all_workaround/README.md
+@@ -0,0 +1,13 @@
++# any_all_workaround
++
++This is a workaround for bad codegen ([Rust bug](https://github.com/rust-lang/portable-simd/issues/146), [LLVM bug](https://github.com/llvm/llvm-project/issues/50466)) for the `any()` and `all()` reductions for NEON-backed SIMD vectors on 32-bit ARM. On other platforms these delegate to `any()` and `all()` in `core::simd`.
++
++The plan is to abandon this crate once the LLVM bug is fixed or `core::simd` works around the LLVM bug.
++
++The code is forked from the [`packed_simd` crate](https://raw.githubusercontent.com/hsivonen/packed_simd/d938e39bee9bc5c222f5f2f2a0df9e53b5ce36ae/src/codegen/reductions/mask/arm.rs).
++
++This crate requires Nightly Rust as it depends on the `portable_simd` feature.
++
++# License
++
++`MIT OR Apache-2.0`, since that's how `packed_simd` is licensed. (The ARM intrinsics Rust version workaround is from qcms, see LICENSE-MIT-QCMS.)
+diff --git a/third_party/rust/any_all_workaround/build.rs b/third_party/rust/any_all_workaround/build.rs
+new file mode 100644
+--- /dev/null
++++ third_party/rust/any_all_workaround/build.rs
+@@ -0,0 +1,7 @@
++extern crate version_check as rustc;
++
++fn main() {
++ if rustc::is_min_version("1.78.0").unwrap_or(false) {
++ println!("cargo:rustc-cfg=stdsimd_split");
++ }
++}
+diff --git a/third_party/rust/any_all_workaround/src/lib.rs b/third_party/rust/any_all_workaround/src/lib.rs
+new file mode 100644
+--- /dev/null
++++ third_party/rust/any_all_workaround/src/lib.rs
+@@ -0,0 +1,110 @@
++// This code began as a fork of
++// https://raw.githubusercontent.com/rust-lang/packed_simd/d938e39bee9bc5c222f5f2f2a0df9e53b5ce36ae/src/codegen/reductions/mask/arm.rs
++// which didn't have a license header on the file, but Cargo.toml said "MIT OR Apache-2.0".
++// See LICENSE-MIT and LICENSE-APACHE.
++
++#![no_std]
++#![feature(portable_simd)]
++#![cfg_attr(
++ all(
++ stdsimd_split,
++ target_arch = "arm",
++ target_endian = "little",
++ target_feature = "neon",
++ target_feature = "v7"
++ ),
++ feature(stdarch_arm_neon_intrinsics)
++)]
++#![cfg_attr(
++ all(
++ not(stdsimd_split),
++ target_arch = "arm",
++ target_endian = "little",
++ target_feature = "neon",
++ target_feature = "v7"
++ ),
++ feature(stdsimd)
++)]
++
++use cfg_if::cfg_if;
++use core::simd::mask16x8;
++use core::simd::mask32x4;
++use core::simd::mask8x16;
++
++cfg_if! {
++ if #[cfg(all(target_arch = "arm", target_endian = "little", target_feature = "neon", target_feature = "v7"))] {
++ use core::simd::mask8x8;
++ use core::simd::mask16x4;
++ use core::simd::mask32x2;
++ macro_rules! arm_128_v7_neon_impl {
++ ($all:ident, $any:ident, $id:ident, $half:ident, $vpmin:ident, $vpmax:ident) => {
++ #[inline]
++ pub fn $all(s: $id) -> bool {
++ use core::arch::arm::$vpmin;
++ use core::mem::transmute;
++ unsafe {
++ union U {
++ halves: ($half, $half),
++ vec: $id,
++ }
++ let halves = U { vec: s }.halves;
++ let h: $half = transmute($vpmin(transmute(halves.0), transmute(halves.1)));
++ h.all()
++ }
++ }
++ #[inline]
++ pub fn $any(s: $id) -> bool {
++ use core::arch::arm::$vpmax;
++ use core::mem::transmute;
++ unsafe {
++ union U {
++ halves: ($half, $half),
++ vec: $id,
++ }
++ let halves = U { vec: s }.halves;
++ let h: $half = transmute($vpmax(transmute(halves.0), transmute(halves.1)));
++ h.any()
++ }
++ }
++ }
++ }
++ } else {
++ macro_rules! arm_128_v7_neon_impl {
++ ($all:ident, $any:ident, $id:ident, $half:ident, $vpmin:ident, $vpmax:ident) => {
++ #[inline(always)]
++ pub fn $all(s: $id) -> bool {
++ s.all()
++ }
++ #[inline(always)]
++ pub fn $any(s: $id) -> bool {
++ s.any()
++ }
++ }
++ }
++ }
++}
++
++arm_128_v7_neon_impl!(
++ all_mask8x16,
++ any_mask8x16,
++ mask8x16,
++ mask8x8,
++ vpmin_u8,
++ vpmax_u8
++);
++arm_128_v7_neon_impl!(
++ all_mask16x8,
++ any_mask16x8,
++ mask16x8,
++ mask16x4,
++ vpmin_u16,
++ vpmax_u16
++);
++arm_128_v7_neon_impl!(
++ all_mask32x4,
++ any_mask32x4,
++ mask32x4,
++ mask32x2,
++ vpmin_u32,
++ vpmax_u32
++);
+diff --git a/third_party/rust/encoding_rs/.cargo-checksum.json b/third_party/rust/encoding_rs/.cargo-checksum.json
+--- third_party/rust/encoding_rs/.cargo-checksum.json
++++ third_party/rust/encoding_rs/.cargo-checksum.json
+@@ -1,1 +1,1 @@
+-{"files":{"CONTRIBUTING.md":"ca1901f3e8532fb4cec894fd3664f0eaa898c0c4b961d1b992d1ed54eacf362a","COPYRIGHT":"11789f45bb180841cd362a5eee6789c68ddb573a11105e30768c308a6add0190","Cargo.toml":"42fa83322aa9fd6723b77d35d0cacb92cbb6e7f573ce11c55f5225292866f8f4","Ideas.md":"b7452893f500163868d8de52c09addaf91e1632454ed02e892c467ed7ec39dbd","LICENSE-APACHE":"cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30","LICENSE-MIT":"3fa4ca83dcc9237839b1bdeb2e6d16bdfb5ec0c5ce42b24694d8bbf0dcbef72c","LICENSE-WHATWG":"838118388fe5c2e7f1dbbaeed13e1c7f3ebf88be91319c7c1d77c18e987d1a50","README.md":"d938e8ab0b9ab67e74a1a4f48f23fdce956d0ad3a3f6147ae7612a92763c88d5","ci/miri.sh":"43cb8d82f49e3bfe2d2274b6ccd6f0714a4188ccef0cecc040829883cfdbee25","doc/Big5.txt":"f73a2edc5cb6c2d140ba6e07f4542e1c4a234950378acde1df93480f0ca0be0b","doc/EUC-JP.txt":"ee2818b907d0137f40a9ab9fd525fc700a44dbdddb6cf0c157a656566bae4bf1","doc/EUC-KR.txt":"71d9e2ccf3b124e8bdfb433c8cf2773fd878077038d0cec3c7237a50f4a78a30","doc/GBK.txt":"c1b522b5a799884e5001da661f42c5a8f4d0acb9ef1d74b206f22b5f65365606","doc/IBM866.txt":"a5a433e804d0f83af785015179fbc1d9b0eaf1f7960efcd04093e136b51fbd0e","doc/ISO-2022-JP.txt":"af86684f5a8f0e2868d7b2c292860140c3d2e5527530ca091f1b28198e8e2fe6","doc/ISO-8859-10.txt":"6d3949ad7c81ca176895101ed81a1db7df1060d64e262880b94bd31bb344ab4d","doc/ISO-8859-13.txt":"3951dd89cf93f7729148091683cf8511f4529388b7dc8dcd0d62eaed55be93fa","doc/ISO-8859-14.txt":"3d330784a0374fd255a38b47949675cc7168c800530534b0a01cac6edc623adc","doc/ISO-8859-15.txt":"24b1084aab5127a85aab99153f86e24694d0a3615f53b5ce23683f97cf66c47a","doc/ISO-8859-16.txt":"ce0272559b92ba76d7a7e476f6424ae4a5cc72e75b183611b08392e44add4d25","doc/ISO-8859-2.txt":"18ceff88c13d1b5ba455a3919b1e3de489045c4c3d2dd7e8527c125c75d54aad","doc/ISO-8859-3.txt":"21798404c68f4f5db59223362f24999da96968c0628427321fccce7d2849a130","doc/ISO-8859-4.txt":"d27f6520c6c5bfbcc19176b71d081cdb3bccde1622bb3e420d5680e812632d53","doc/ISO-8859-5.txt":"a10ec8d6ea7a78ad15da7275f6cb1a3365118527e28f9af6d0d5830501303f3a","doc/ISO-8859-6.txt":"ccda8a2efc96115336bdd77776637b9712425e44fbcf745353b9057fbef144e7","doc/ISO-8859-7.txt":"17900fa1f27a445958f0a77d7d9056be375a6bd7ee4492aa680c7c1500bab85e","doc/ISO-8859-8-I.txt":"8357555646d54265a9b9ffa3e68b08d132312f1561c60108ff9b8b1167b6ecf2","doc/ISO-8859-8.txt":"72cd6f3afb7b4a9c16a66a362473315770b7755d72c86c870e52fc3eba86c8af","doc/KOI8-R.txt":"839cf19a38da994488004ed7814b1f6151640156a9a2af02bf2efca745fb5966","doc/KOI8-U.txt":"0cc76624ed1f024183e2298b7e019957da2c70c8ca06e0fc4e6f353f50a5054f","doc/Shift_JIS.txt":"34c49141818cb9ddbcf59cc858f78a79be8ad148d563f26415108ae1f148443f","doc/UTF-16BE.txt":"e2e280d8acbaa6d2a6b3569d60e17500a285f2baa0df3363dd85537cd5a1ef8f","doc/UTF-16LE.txt":"70bdc170e3fc5298ba68f10125fb5eeb8b077036cc96bb4416c4de396f6d76c1","doc/UTF-8.txt":"ea7bae742e613010ced002cf4b601a737d2203fad65e115611451bc4428f548a","doc/gb18030.txt":"dc71378a8f07a2d8659f69ee81fb8791fef56ba86f124b429978285237bb4a7b","doc/macintosh.txt":"57491e53866711b4672d9b9ff35380b9dac9e0d8e3d6c20bdd6140603687c023","doc/replacement.txt":"4b6c3bbd7999d9d4108a281594bd02d13607e334a95465afff8c2c08d395f0e4","doc/windows-1250.txt":"61296bb6a21cdab602300d32ecfba434cb82de5ac3bc88d58710d2f125e28d39","doc/windows-1251.txt":"7deea1c61dea1485c8ff02db2c7d578db7a9aab63ab1cfd02ec04b515864689e","doc/windows-1252.txt":"933ef3bdddfce5ee132b9f1a1aa8b47423d2587bbe475b19028d0a6d38e180b6","doc/windows-1253.txt":"1a38748b88e99071a5c7b3d5456ead4caedeabab50d50d658be105bc113714de","doc/windows-1254.txt":"f8372f86c6f8d642563cd6ddc025260553292a39423df1683a98670bd7bf2b47","doc/windows-1255.txt":"4e5852494730054e2da258a74e1b9d780abbcdd8ce22ebc218ca2efe9e90493d","doc/windows-1256.txt":"c0879c5172abedead302a406e8f60d9cd9598694a0ffa4fd288ffe4fef7b8ea1","doc/windows-1257.txt":"c28a0c9f964fcb2b46d21f537c402446501a2800670481d6abf9fd9e9018d523","doc/windows-1258.txt":"5019ae4d61805c79aacbf17c93793342dbb098d65a1837783bc3e2c6d6a23602","doc/windows-874.txt":"4ef0e4501c5feba8b17aee1818602ed44b36ca8475db771ce2fc16d392cabecc","doc/x-mac-cyrillic.txt":"58be154d8a888ca3d484b83b44f749823ef339ab27f14d90ca9a856f5050a8bd","doc/x-user-defined.txt":"f9cd07c4321bf5cfb0be4bdddd251072999b04a6cf7a6f5bc63709a84e2c1ffc","generate-encoding-data.py":"be989dd25c6b946e3e8745fdc8e8a80fcf24b3be99ad0b4b78153ba3f6ab6310","rustfmt.toml":"85c1a3b4382fd89e991cbb81b70fb52780472edc064c963943cdaaa56e0a2030","src/ascii.rs":"c44c002641adb5ebc4368707a8cc0a076d2f33e6a5c27b1b69988eb515f5653d","src/big5.rs":"ec6e2913011a38e9a3e825a1731f139a7ca1d5b264fefae51a3cc1a68a57cef9","src/data.rs":"8a617cc57032092d65850eb27e00de687c80aea3299e839a1f58b42d0b35abf3","src/euc_jp.rs":"32047f5b540188c4cb19c07165f846b9786a09f18e315ed3e9bda1293dae52aa","src/euc_kr.rs":"9b25afc72d9378700eecfac58d55ad1c5946d6cd0ccde2c29c08200ef2de6bb9","src/gb18030.rs":"808587168d73f0c80f8520f0ca9b161866ed2efeb17a05e85fdf3b8efe7ba28a","src/handles.rs":"cc83dc0754751d67f5688a65c5e0191cba02f6bacce81a0813a243cba55eef7a","src/iso_2022_jp.rs":"9bb485e82574f4b7d4b2364f0ff276acb6a0bc111758420a3b0ec5e04c196652","src/lib.rs":"1dc07b818e45846b16ddcaf0de46c8862dd7df8099123ec38b95c3f8ad9c91ec","src/macros.rs":"200997f8870de8bfd8cdc475e92115df42108c0df661e49d3d1cbc32056e1d99","src/mem.rs":"0bf34103e0ad1b842a13a082dee2b920b05cf4fb0f145c9ee7f608f4cb4a544f","src/replacement.rs":"7660b34a53f8c1ca2bdfa0e51e843ec28326950952ad8bc96569feb93ac62308","src/shift_jis.rs":"6951ae67e36b1a12fa3a30734957f444d8b1b4ae0e2bde52060b29bd0f16d9d9","src/simd_funcs.rs":"2612aba86e1d201096d7e47a859bc3444f85934cc82d8adc6d39a4304d9eecfc","src/single_byte.rs":"3c9e9c1f946ae622c725ba9421240c1faa9a05e95fa10dd4642a25cb276a1edc","src/test_data/big5_in.txt":"4c5a8691f8dc717311889c63894026d2fb62725a86c4208ca274a9cc8d42a503","src/test_data/big5_in_ref.txt":"99d399e17750cf9c7cf30bb253dbfe35b81c4fcbdead93cfa48b1429213473c7","src/test_data/big5_out.txt":"6193ca97c297aa20e09396038d18e938bb7ea331c26f0f2454097296723a0b13","src/test_data/big5_out_ref.txt":"36567691f557df144f6cc520015a87038dfa156f296fcf103b56ae9a718be1fc","src/test_data/euc_kr_in.txt":"c86a7224f3215fa0d04e685622a752fdc72763e8ae076230c7fd62de57ec4074","src/test_data/euc_kr_in_ref.txt":"1f419f4ca47d708b54c73c461545a022ae2e20498fdbf8005a483d752a204883","src/test_data/euc_kr_out.txt":"e7f32e026f70be1e1b58e0047baf7d3d2c520269c4f9b9992e158b4decb0a1a3","src/test_data/euc_kr_out_ref.txt":"c9907857980b20b8e9e3b584482ed6567a2be6185d72237b6322f0404944924e","src/test_data/gb18030_in.txt":"ab7231b2d3e9afacdbd7d7f3b9e5361a7ff9f7e1cfdb4f3bd905b9362b309e53","src/test_data/gb18030_in_ref.txt":"dc5069421adca2043c55f5012b55a76fdff651d22e6e699fd0978f8d5706815c","src/test_data/gb18030_out.txt":"f0208d527f5ca63de7d9a0323be8d5cf12d8a104b2943d92c2701f0c3364dac1","src/test_data/gb18030_out_ref.txt":"6819fe47627e4ea01027003fc514b9f21a1322e732d7f1fb92cc6c5455bc6c07","src/test_data/iso_2022_jp_in.txt":"cd24bbdcb1834e25db54646fbf4c41560a13dc7540f6be3dba4f5d97d44513af","src/test_data/iso_2022_jp_in_ref.txt":"3dc4e6a5e06471942d086b16c9440945e78415f6f3f47e43717e4bc2eac2cdf5","src/test_data/iso_2022_jp_out.txt":"9b6f015329dda6c3f9ee5ce6dbd6fa9c89acc21283e886836c78b8d833480c21","src/test_data/iso_2022_jp_out_ref.txt":"78cb260093a20116ad9a42f43b05d1848c5ab100b6b9a850749809e943884b35","src/test_data/jis0208_in.txt":"6df3030553ffb0a6615bb33dc8ea9dca6d9623a9028e2ffec754ce3c3da824cc","src/test_data/jis0208_in_ref.txt":"3dc4e6a5e06471942d086b16c9440945e78415f6f3f47e43717e4bc2eac2cdf5","src/test_data/jis0208_out.txt":"4ec24477e1675ce750733bdc3c5add1cd27b6bd4ce1f09289564646e9654e857","src/test_data/jis0208_out_ref.txt":"c3e1cef5032b2b1d93a406f31ff940c4e2dfe8859b8b17ca2761fee7a75a0e48","src/test_data/jis0212_in.txt":"c011f0dd72bd7c8cd922df9374ef8d2769a77190514c77f6c62b415852eeb9fe","src/test_data/jis0212_in_ref.txt":"7d9458b3d2f73e7092a7f505c08ce1d233dde18aa679fbcf9889256239cc9e06","src/test_data/shift_jis_in.txt":"02e389ccef0dd2122e63f503899402cb7f797912c2444cc80ab93131116c5524","src/test_data/shift_jis_in_ref.txt":"512f985950ca902e643c88682dba9708b7c38d3c5ec2925168ab00ac94ab19f9","src/test_data/shift_jis_out.txt":"5fbc44da7bf639bf6cfe0fa1fd3eba7102b88f81919c9ea991302712f69426fb","src/test_data/shift_jis_out_ref.txt":"466322c6fed8286c64582731755290c2296508efdd258826e6279686649b481f","src/test_labels_names.rs":"23a2e11b02b3b8d15fb5613a625e3edb2c61e70e3c581abfd638719a4088200d","src/testing.rs":"f59e671e95a98a56f6b573e8c6be4d71e670bf52f7e20eb1605d990aafa1894e","src/utf_16.rs":"c071a147fad38d750c2c247e141b76b929a48007b99f26b2922b9caecdaf2f25","src/utf_8.rs":"7b7d887b347f1aefa03246b028a36a72758a4ce76c28f3b45c19467851aa7839","src/variant.rs":"1fab5363588a1554a7169de8731ea9cded7ac63ea35caabdd1c27a8dde68c27b","src/x_user_defined.rs":"c9c010730dfb9f141d4fed19350c08a21af240913a54bb64f5ca89ff93b6b7d1"},"package":"7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"}
+\ No newline at end of file
++{"files":{"CONTRIBUTING.md":"ca1901f3e8532fb4cec894fd3664f0eaa898c0c4b961d1b992d1ed54eacf362a","COPYRIGHT":"11789f45bb180841cd362a5eee6789c68ddb573a11105e30768c308a6add0190","Cargo.toml":"22a4d210c92dae9f32c6944ef340ee8fdd027f99c081577e8907123e2a93383e","Ideas.md":"b7452893f500163868d8de52c09addaf91e1632454ed02e892c467ed7ec39dbd","LICENSE-APACHE":"cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30","LICENSE-MIT":"3fa4ca83dcc9237839b1bdeb2e6d16bdfb5ec0c5ce42b24694d8bbf0dcbef72c","LICENSE-WHATWG":"838118388fe5c2e7f1dbbaeed13e1c7f3ebf88be91319c7c1d77c18e987d1a50","README.md":"1d08aefcb92afa81b18154049c9abbcad4540a23f7172e9f9bbed5af33f1a087","ci/miri.sh":"43cb8d82f49e3bfe2d2274b6ccd6f0714a4188ccef0cecc040829883cfdbee25","doc/Big5.txt":"f73a2edc5cb6c2d140ba6e07f4542e1c4a234950378acde1df93480f0ca0be0b","doc/EUC-JP.txt":"ee2818b907d0137f40a9ab9fd525fc700a44dbdddb6cf0c157a656566bae4bf1","doc/EUC-KR.txt":"71d9e2ccf3b124e8bdfb433c8cf2773fd878077038d0cec3c7237a50f4a78a30","doc/GBK.txt":"c1b522b5a799884e5001da661f42c5a8f4d0acb9ef1d74b206f22b5f65365606","doc/IBM866.txt":"a5a433e804d0f83af785015179fbc1d9b0eaf1f7960efcd04093e136b51fbd0e","doc/ISO-2022-JP.txt":"af86684f5a8f0e2868d7b2c292860140c3d2e5527530ca091f1b28198e8e2fe6","doc/ISO-8859-10.txt":"6d3949ad7c81ca176895101ed81a1db7df1060d64e262880b94bd31bb344ab4d","doc/ISO-8859-13.txt":"3951dd89cf93f7729148091683cf8511f4529388b7dc8dcd0d62eaed55be93fa","doc/ISO-8859-14.txt":"3d330784a0374fd255a38b47949675cc7168c800530534b0a01cac6edc623adc","doc/ISO-8859-15.txt":"24b1084aab5127a85aab99153f86e24694d0a3615f53b5ce23683f97cf66c47a","doc/ISO-8859-16.txt":"ce0272559b92ba76d7a7e476f6424ae4a5cc72e75b183611b08392e44add4d25","doc/ISO-8859-2.txt":"18ceff88c13d1b5ba455a3919b1e3de489045c4c3d2dd7e8527c125c75d54aad","doc/ISO-8859-3.txt":"21798404c68f4f5db59223362f24999da96968c0628427321fccce7d2849a130","doc/ISO-8859-4.txt":"d27f6520c6c5bfbcc19176b71d081cdb3bccde1622bb3e420d5680e812632d53","doc/ISO-8859-5.txt":"a10ec8d6ea7a78ad15da7275f6cb1a3365118527e28f9af6d0d5830501303f3a","doc/ISO-8859-6.txt":"ccda8a2efc96115336bdd77776637b9712425e44fbcf745353b9057fbef144e7","doc/ISO-8859-7.txt":"17900fa1f27a445958f0a77d7d9056be375a6bd7ee4492aa680c7c1500bab85e","doc/ISO-8859-8-I.txt":"8357555646d54265a9b9ffa3e68b08d132312f1561c60108ff9b8b1167b6ecf2","doc/ISO-8859-8.txt":"72cd6f3afb7b4a9c16a66a362473315770b7755d72c86c870e52fc3eba86c8af","doc/KOI8-R.txt":"839cf19a38da994488004ed7814b1f6151640156a9a2af02bf2efca745fb5966","doc/KOI8-U.txt":"0cc76624ed1f024183e2298b7e019957da2c70c8ca06e0fc4e6f353f50a5054f","doc/Shift_JIS.txt":"34c49141818cb9ddbcf59cc858f78a79be8ad148d563f26415108ae1f148443f","doc/UTF-16BE.txt":"e2e280d8acbaa6d2a6b3569d60e17500a285f2baa0df3363dd85537cd5a1ef8f","doc/UTF-16LE.txt":"70bdc170e3fc5298ba68f10125fb5eeb8b077036cc96bb4416c4de396f6d76c1","doc/UTF-8.txt":"ea7bae742e613010ced002cf4b601a737d2203fad65e115611451bc4428f548a","doc/gb18030.txt":"dc71378a8f07a2d8659f69ee81fb8791fef56ba86f124b429978285237bb4a7b","doc/macintosh.txt":"57491e53866711b4672d9b9ff35380b9dac9e0d8e3d6c20bdd6140603687c023","doc/replacement.txt":"4b6c3bbd7999d9d4108a281594bd02d13607e334a95465afff8c2c08d395f0e4","doc/windows-1250.txt":"61296bb6a21cdab602300d32ecfba434cb82de5ac3bc88d58710d2f125e28d39","doc/windows-1251.txt":"7deea1c61dea1485c8ff02db2c7d578db7a9aab63ab1cfd02ec04b515864689e","doc/windows-1252.txt":"933ef3bdddfce5ee132b9f1a1aa8b47423d2587bbe475b19028d0a6d38e180b6","doc/windows-1253.txt":"1a38748b88e99071a5c7b3d5456ead4caedeabab50d50d658be105bc113714de","doc/windows-1254.txt":"f8372f86c6f8d642563cd6ddc025260553292a39423df1683a98670bd7bf2b47","doc/windows-1255.txt":"4e5852494730054e2da258a74e1b9d780abbcdd8ce22ebc218ca2efe9e90493d","doc/windows-1256.txt":"c0879c5172abedead302a406e8f60d9cd9598694a0ffa4fd288ffe4fef7b8ea1","doc/windows-1257.txt":"c28a0c9f964fcb2b46d21f537c402446501a2800670481d6abf9fd9e9018d523","doc/windows-1258.txt":"5019ae4d61805c79aacbf17c93793342dbb098d65a1837783bc3e2c6d6a23602","doc/windows-874.txt":"4ef0e4501c5feba8b17aee1818602ed44b36ca8475db771ce2fc16d392cabecc","doc/x-mac-cyrillic.txt":"58be154d8a888ca3d484b83b44f749823ef339ab27f14d90ca9a856f5050a8bd","doc/x-user-defined.txt":"f9cd07c4321bf5cfb0be4bdddd251072999b04a6cf7a6f5bc63709a84e2c1ffc","generate-encoding-data.py":"be989dd25c6b946e3e8745fdc8e8a80fcf24b3be99ad0b4b78153ba3f6ab6310","rustfmt.toml":"85c1a3b4382fd89e991cbb81b70fb52780472edc064c963943cdaaa56e0a2030","src/ascii.rs":"588e38b01e666d5e7462617ea7e90a108d608dec9e016f3d273ac0744af2e05d","src/big5.rs":"ec6e2913011a38e9a3e825a1731f139a7ca1d5b264fefae51a3cc1a68a57cef9","src/data.rs":"8a617cc57032092d65850eb27e00de687c80aea3299e839a1f58b42d0b35abf3","src/euc_jp.rs":"32047f5b540188c4cb19c07165f846b9786a09f18e315ed3e9bda1293dae52aa","src/euc_kr.rs":"9b25afc72d9378700eecfac58d55ad1c5946d6cd0ccde2c29c08200ef2de6bb9","src/gb18030.rs":"808587168d73f0c80f8520f0ca9b161866ed2efeb17a05e85fdf3b8efe7ba28a","src/handles.rs":"b08cef1f5785bb6a4822f2e844c6df1b046b737b7a075e4593eaa8c4208e9fe2","src/iso_2022_jp.rs":"9bb485e82574f4b7d4b2364f0ff276acb6a0bc111758420a3b0ec5e04c196652","src/lib.rs":"834f44b670ec48ee82c0e12223d1567313fdd9f88bca5f4b117c82c1828f559f","src/macros.rs":"200997f8870de8bfd8cdc475e92115df42108c0df661e49d3d1cbc32056e1d99","src/mem.rs":"948571137d3b151df8db4fb2c733e74ae595d055cdf0ad83abcab9341d6adabe","src/replacement.rs":"7660b34a53f8c1ca2bdfa0e51e843ec28326950952ad8bc96569feb93ac62308","src/shift_jis.rs":"6951ae67e36b1a12fa3a30734957f444d8b1b4ae0e2bde52060b29bd0f16d9d9","src/simd_funcs.rs":"05c6e77af74bfe73cd39a752067c11425d6b46e5da419910f54bf75a5c02a984","src/single_byte.rs":"3ad87116fb339434a4b58e8f2b15485f2b66b9f7814d708f16194ed08f6d6ccf","src/test_data/big5_in.txt":"4c5a8691f8dc717311889c63894026d2fb62725a86c4208ca274a9cc8d42a503","src/test_data/big5_in_ref.txt":"99d399e17750cf9c7cf30bb253dbfe35b81c4fcbdead93cfa48b1429213473c7","src/test_data/big5_out.txt":"6193ca97c297aa20e09396038d18e938bb7ea331c26f0f2454097296723a0b13","src/test_data/big5_out_ref.txt":"36567691f557df144f6cc520015a87038dfa156f296fcf103b56ae9a718be1fc","src/test_data/euc_kr_in.txt":"c86a7224f3215fa0d04e685622a752fdc72763e8ae076230c7fd62de57ec4074","src/test_data/euc_kr_in_ref.txt":"1f419f4ca47d708b54c73c461545a022ae2e20498fdbf8005a483d752a204883","src/test_data/euc_kr_out.txt":"e7f32e026f70be1e1b58e0047baf7d3d2c520269c4f9b9992e158b4decb0a1a3","src/test_data/euc_kr_out_ref.txt":"c9907857980b20b8e9e3b584482ed6567a2be6185d72237b6322f0404944924e","src/test_data/gb18030_in.txt":"ab7231b2d3e9afacdbd7d7f3b9e5361a7ff9f7e1cfdb4f3bd905b9362b309e53","src/test_data/gb18030_in_ref.txt":"dc5069421adca2043c55f5012b55a76fdff651d22e6e699fd0978f8d5706815c","src/test_data/gb18030_out.txt":"f0208d527f5ca63de7d9a0323be8d5cf12d8a104b2943d92c2701f0c3364dac1","src/test_data/gb18030_out_ref.txt":"6819fe47627e4ea01027003fc514b9f21a1322e732d7f1fb92cc6c5455bc6c07","src/test_data/iso_2022_jp_in.txt":"cd24bbdcb1834e25db54646fbf4c41560a13dc7540f6be3dba4f5d97d44513af","src/test_data/iso_2022_jp_in_ref.txt":"3dc4e6a5e06471942d086b16c9440945e78415f6f3f47e43717e4bc2eac2cdf5","src/test_data/iso_2022_jp_out.txt":"9b6f015329dda6c3f9ee5ce6dbd6fa9c89acc21283e886836c78b8d833480c21","src/test_data/iso_2022_jp_out_ref.txt":"78cb260093a20116ad9a42f43b05d1848c5ab100b6b9a850749809e943884b35","src/test_data/jis0208_in.txt":"6df3030553ffb0a6615bb33dc8ea9dca6d9623a9028e2ffec754ce3c3da824cc","src/test_data/jis0208_in_ref.txt":"3dc4e6a5e06471942d086b16c9440945e78415f6f3f47e43717e4bc2eac2cdf5","src/test_data/jis0208_out.txt":"4ec24477e1675ce750733bdc3c5add1cd27b6bd4ce1f09289564646e9654e857","src/test_data/jis0208_out_ref.txt":"c3e1cef5032b2b1d93a406f31ff940c4e2dfe8859b8b17ca2761fee7a75a0e48","src/test_data/jis0212_in.txt":"c011f0dd72bd7c8cd922df9374ef8d2769a77190514c77f6c62b415852eeb9fe","src/test_data/jis0212_in_ref.txt":"7d9458b3d2f73e7092a7f505c08ce1d233dde18aa679fbcf9889256239cc9e06","src/test_data/shift_jis_in.txt":"02e389ccef0dd2122e63f503899402cb7f797912c2444cc80ab93131116c5524","src/test_data/shift_jis_in_ref.txt":"512f985950ca902e643c88682dba9708b7c38d3c5ec2925168ab00ac94ab19f9","src/test_data/shift_jis_out.txt":"5fbc44da7bf639bf6cfe0fa1fd3eba7102b88f81919c9ea991302712f69426fb","src/test_data/shift_jis_out_ref.txt":"466322c6fed8286c64582731755290c2296508efdd258826e6279686649b481f","src/test_labels_names.rs":"23a2e11b02b3b8d15fb5613a625e3edb2c61e70e3c581abfd638719a4088200d","src/testing.rs":"f59e671e95a98a56f6b573e8c6be4d71e670bf52f7e20eb1605d990aafa1894e","src/utf_16.rs":"c071a147fad38d750c2c247e141b76b929a48007b99f26b2922b9caecdaf2f25","src/utf_8.rs":"7b7d887b347f1aefa03246b028a36a72758a4ce76c28f3b45c19467851aa7839","src/variant.rs":"1fab5363588a1554a7169de8731ea9cded7ac63ea35caabdd1c27a8dde68c27b","src/x_user_defined.rs":"9456ca46168ef86c98399a2536f577ef7be3cdde90c0c51392d8ac48519d3fae"},"package":"b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"}
+\ No newline at end of file
+diff --git a/third_party/rust/encoding_rs/Cargo.toml b/third_party/rust/encoding_rs/Cargo.toml
+--- third_party/rust/encoding_rs/Cargo.toml
++++ third_party/rust/encoding_rs/Cargo.toml
+@@ -6,18 +6,19 @@
+ # to registry (e.g., crates.io) dependencies.
+ #
+ # If you are reading this file be aware that the original Cargo.toml
+ # will likely look very different (and much more reasonable).
+ # See Cargo.toml.orig for the original contents.
+
+ [package]
+ edition = "2018"
++rust-version = "1.36"
+ name = "encoding_rs"
+-version = "0.8.33"
++version = "0.8.34"
+ authors = ["Henri Sivonen <hsivonen@hsivonen.fi>"]
+ description = "A Gecko-oriented implementation of the Encoding Standard"
+ homepage = "https://docs.rs/encoding_rs/"
+ documentation = "https://docs.rs/encoding_rs/"
+ readme = "README.md"
+ keywords = [
+ "encoding",
+ "web",
+@@ -31,23 +32,23 @@ categories = [
+ "internationalization",
+ ]
+ license = "(Apache-2.0 OR MIT) AND BSD-3-Clause"
+ repository = "https://github.com/hsivonen/encoding_rs"
+
+ [profile.release]
+ lto = true
+
++[dependencies.any_all_workaround]
++version = "0.1.0"
++optional = true
++
+ [dependencies.cfg-if]
+ version = "1.0"
+
+-[dependencies.packed_simd]
+-version = "0.3.9"
+-optional = true
+-
+ [dependencies.serde]
+ version = "1.0"
+ optional = true
+
+ [dev-dependencies.bincode]
+ version = "1.0"
+
+ [dev-dependencies.serde_derive]
+@@ -69,15 +70,9 @@ fast-legacy-encode = [
+ "fast-hanja-encode",
+ "fast-kanji-encode",
+ "fast-gb-hanzi-encode",
+ "fast-big5-hanzi-encode",
+ ]
+ less-slow-big5-hanzi-encode = []
+ less-slow-gb-hanzi-encode = []
+ less-slow-kanji-encode = []
+-simd-accel = [
+- "packed_simd",
+- "packed_simd/into_bits",
+-]
+-
+-[badges.travis-ci]
+-repository = "hsivonen/encoding_rs"
++simd-accel = ["any_all_workaround"]
+diff --git a/third_party/rust/encoding_rs/README.md b/third_party/rust/encoding_rs/README.md
+--- third_party/rust/encoding_rs/README.md
++++ third_party/rust/encoding_rs/README.md
+@@ -162,50 +162,36 @@ wrappers.
+ * [C++](https://github.com/hsivonen/recode_cpp)
+
+ ## Optional features
+
+ There are currently these optional cargo features:
+
+ ### `simd-accel`
+
+-Enables SIMD acceleration using the nightly-dependent `packed_simd` crate.
++Enables SIMD acceleration using the nightly-dependent `portable_simd` standard
++library feature.
+
+ This is an opt-in feature, because enabling this feature _opts out_ of Rust's
+ guarantees of future compilers compiling old code (aka. "stability story").
+
+ Currently, this has not been tested to be an improvement except for these
+-targets:
++targets and enabling the `simd-accel` feature is expected to break the build
++on other targets:
+
+ * x86_64
+ * i686
+ * aarch64
+ * thumbv7neon
+
+ If you use nightly Rust, you use targets whose first component is one of the
+ above, and you are prepared _to have to revise your configuration when updating
+ Rust_, you should enable this feature. Otherwise, please _do not_ enable this
+ feature.
+
+-_Note!_ If you are compiling for a target that does not have 128-bit SIMD
+-enabled as part of the target definition and you are enabling 128-bit SIMD
+-using `-C target_feature`, you need to enable the `core_arch` Cargo feature
+-for `packed_simd` to compile a crates.io snapshot of `core_arch` instead of
+-using the standard-library copy of `core::arch`, because the `core::arch`
+-module of the pre-compiled standard library has been compiled with the
+-assumption that the CPU doesn't have 128-bit SIMD. At present this applies
+-mainly to 32-bit ARM targets whose first component does not include the
+-substring `neon`.
+-
+-The encoding_rs side of things has not been properly set up for POWER,
+-PowerPC, MIPS, etc., SIMD at this time, so even if you were to follow
+-the advice from the previous paragraph, you probably shouldn't use
+-the `simd-accel` option on the less mainstream architectures at this
+-time.
+-
+ Used by Firefox.
+
+ ### `serde`
+
+ Enables support for serializing and deserializing `&'static Encoding`-typed
+ struct fields using [Serde][1].
+
+ [1]: https://serde.rs/
+@@ -376,18 +362,19 @@ It is a goal to support the latest stabl
+ the version of Rust that's used for Firefox Nightly.
+
+ At this time, there is no firm commitment to support a version older than
+ what's required by Firefox, and there is no commitment to treat MSRV changes
+ as semver-breaking, because this crate depends on `cfg-if`, which doesn't
+ appear to treat MSRV changes as semver-breaking, so it would be useless for
+ this crate to treat MSRV changes as semver-breaking.
+
+-As of 2021-02-04, MSRV appears to be Rust 1.36.0 for using the crate and
++As of 2024-04-04, MSRV appears to be Rust 1.36.0 for using the crate and
+ 1.42.0 for doc tests to pass without errors about the global allocator.
++With the `simd-accel` feature, the MSRV is even higher.
+
+ ## Compatibility with rust-encoding
+
+ A compatibility layer that implements the rust-encoding API on top of
+ encoding_rs is
+ [provided as a separate crate](https://github.com/hsivonen/encoding_rs_compat)
+ (cannot be uploaded to crates.io). The compatibility layer was originally
+ written with the assuption that Firefox would need it, but it is not currently
+@@ -441,20 +428,27 @@ To regenerate the generated code:
+ - [x] Implement the rust-encoding API in terms of encoding_rs.
+ - [x] Add SIMD acceleration for Aarch64.
+ - [x] Investigate the use of NEON on 32-bit ARM.
+ - [ ] ~Investigate Bj旦rn H旦hrmann's lookup table acceleration for UTF-8 as
+ adapted to Rust in rust-encoding.~
+ - [x] Add actually fast CJK encode options.
+ - [ ] ~Investigate [Bob Steagall's lookup table acceleration for UTF-8](https://github.com/BobSteagall/CppNow2018/blob/master/FastConversionFromUTF-8/Fast%20Conversion%20From%20UTF-8%20with%20C%2B%2B%2C%20DFAs%2C%20and%20SSE%20Intrinsics%20-%20Bob%20Steagall%20-%20C%2B%2BNow%202018.pdf).~
+ - [x] Provide a build mode that works without `alloc` (with lesser API surface).
+-- [ ] Migrate to `std::simd` once it is stable and declare 1.0.
++- [x] Migrate to `std::simd` ~once it is stable and declare 1.0.~
++- [ ] Migrate `unsafe` slice access by larger types than `u8`/`u16` to `align_to`.
+
+ ## Release Notes
+
++### 0.8.34
++
++* Use the `portable_simd` nightly feature of the standard library instead of the `packed_simd` crate. Only affects the `simd-accel` optional nightly feature.
++* Internal documentation improvements and minor code improvements around `unsafe`.
++* Added `rust-version` to `Cargo.toml`.
++
+ ### 0.8.33
+
+ * Use `packed_simd` instead of `packed_simd_2` again now that updates are back under the `packed_simd` name. Only affects the `simd-accel` optional nightly feature.
+
+ ### 0.8.32
+
+ * Removed `build.rs`. (This removal should resolve false positives reported by some antivirus products. This may break some build configurations that have opted out of Rust's guarantees against future build breakage.)
+ * Internal change to what API is used for reinterpreting the lane configuration of SIMD vectors.
+diff --git a/third_party/rust/encoding_rs/src/ascii.rs b/third_party/rust/encoding_rs/src/ascii.rs
+--- third_party/rust/encoding_rs/src/ascii.rs
++++ third_party/rust/encoding_rs/src/ascii.rs
+@@ -46,71 +46,87 @@ cfg_if! {
+ #[allow(dead_code)]
+ #[inline(always)]
+ fn likely(b: bool) -> bool {
+ b
+ }
+ }
+ }
+
++// Safety invariants for masks: data & mask = 0 for valid ASCII or basic latin utf-16
++
+ // `as` truncates, so works on 32-bit, too.
+ #[allow(dead_code)]
+ pub const ASCII_MASK: usize = 0x8080_8080_8080_8080u64 as usize;
+
+ // `as` truncates, so works on 32-bit, too.
+ #[allow(dead_code)]
+ pub const BASIC_LATIN_MASK: usize = 0xFF80_FF80_FF80_FF80u64 as usize;
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_naive {
+ ($name:ident, $src_unit:ty, $dst_unit:ty) => {
++ /// Safety: src and dst must have len_unit elements and be aligned
++ /// Safety-usable invariant: will return Some() when it fails
++ /// to convert. The first value will be a u8 that is > 127.
+ #[inline(always)]
+ pub unsafe fn $name(
+ src: *const $src_unit,
+ dst: *mut $dst_unit,
+ len: usize,
+ ) -> Option<($src_unit, usize)> {
+ // Yes, manually omitting the bound check here matters
+ // a lot for perf.
+ for i in 0..len {
++ // Safety: len invariant used here
+ let code_unit = *(src.add(i));
++ // Safety: Upholds safety-usable invariant here
+ if code_unit > 127 {
+ return Some((code_unit, i));
+ }
++ // Safety: len invariant used here
+ *(dst.add(i)) = code_unit as $dst_unit;
+ }
+ return None;
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_alu {
+ ($name:ident,
++ // safety invariant: src/dst MUST be u8
+ $src_unit:ty,
+ $dst_unit:ty,
++ // Safety invariant: stride_fn must consume and produce two usizes, and return the index of the first non-ascii when it fails
+ $stride_fn:ident) => {
++ /// Safety: src and dst must have len elements, src is valid for read, dst is valid for
++ /// write
++ /// Safety-usable invariant: will return Some() when it fails
++ /// to convert. The first value will be a u8 that is > 127.
+ #[cfg_attr(feature = "cargo-clippy", allow(never_loop, cast_ptr_alignment))]
+ #[inline(always)]
+ pub unsafe fn $name(
+ src: *const $src_unit,
+ dst: *mut $dst_unit,
+ len: usize,
+ ) -> Option<($src_unit, usize)> {
+ let mut offset = 0usize;
+ // This loop is only broken out of as a `goto` forward
+ loop {
++ // Safety: until_alignment becomes the number of bytes we need to munch until we are aligned to usize
+ let mut until_alignment = {
+ // Check if the other unit aligns if we move the narrower unit
+ // to alignment.
+ // if ::core::mem::size_of::<$src_unit>() == ::core::mem::size_of::<$dst_unit>() {
+ // ascii_to_ascii
+ let src_alignment = (src as usize) & ALU_ALIGNMENT_MASK;
+ let dst_alignment = (dst as usize) & ALU_ALIGNMENT_MASK;
+ if src_alignment != dst_alignment {
++ // Safety: bails early and ends up in the na誰ve branch where usize-alignment doesn't matter
+ break;
+ }
+ (ALU_ALIGNMENT - src_alignment) & ALU_ALIGNMENT_MASK
+ // } else if ::core::mem::size_of::<$src_unit>() < ::core::mem::size_of::<$dst_unit>() {
+ // ascii_to_basic_latin
+ // let src_until_alignment = (ALIGNMENT - ((src as usize) & ALIGNMENT_MASK)) & ALIGNMENT_MASK;
+ // if (dst.add(src_until_alignment) as usize) & ALIGNMENT_MASK != 0 {
+ // break;
+@@ -129,74 +145,104 @@ macro_rules! ascii_alu {
+ // Moving pointers to alignment seems to be a pessimization on
+ // x86_64 for operations that have UTF-16 as the internal
+ // Unicode representation. However, since it seems to be a win
+ // on ARM (tested ARMv7 code running on ARMv8 [rpi3]), except
+ // mixed results when encoding from UTF-16 and since x86 and
+ // x86_64 should be using SSE2 in due course, keeping the move
+ // to alignment here. It would be good to test on more ARM CPUs
+ // and on real MIPS and POWER hardware.
++ //
++ // Safety: This is the na誰ve code once again, for `until_alignment` bytes
+ while until_alignment != 0 {
+ let code_unit = *(src.add(offset));
+ if code_unit > 127 {
++ // Safety: Upholds safety-usable invariant here
+ return Some((code_unit, offset));
+ }
+ *(dst.add(offset)) = code_unit as $dst_unit;
++ // Safety: offset is the number of bytes copied so far
+ offset += 1;
+ until_alignment -= 1;
+ }
+ let len_minus_stride = len - ALU_STRIDE_SIZE;
+ loop {
++ // Safety: num_ascii is known to be a byte index of a non-ascii byte due to stride_fn's invariant
+ if let Some(num_ascii) = $stride_fn(
++ // Safety: These are known to be valid and aligned since we have at
++ // least ALU_STRIDE_SIZE data in these buffers, and offset is the
++ // number of elements copied so far, which according to the
++ // until_alignment calculation above will cause both src and dst to be
++ // aligned to usize after this add
+ src.add(offset) as *const usize,
+ dst.add(offset) as *mut usize,
+ ) {
+ offset += num_ascii;
++ // Safety: Upholds safety-usable invariant here by indexing into non-ascii byte
+ return Some((*(src.add(offset)), offset));
+ }
++ // Safety: offset continues to be the number of bytes copied so far, and
++ // maintains usize alignment for the next loop iteration
+ offset += ALU_STRIDE_SIZE;
++ // Safety: This is `offset > len - stride. This loop will continue as long as
++ // `offset <= len - stride`, which means there are `stride` bytes to still be read.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ break;
+ }
++
++ // Safety: This is the na誰ve code, same as ascii_naive, and has no requirements
++ // other than src/dst being valid for the the right lens
+ while offset < len {
++ // Safety: len invariant used here
+ let code_unit = *(src.add(offset));
+ if code_unit > 127 {
++ // Safety: Upholds safety-usable invariant here
+ return Some((code_unit, offset));
+ }
++ // Safety: len invariant used here
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ None
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! basic_latin_alu {
+ ($name:ident,
++ // safety invariant: use u8 for src/dest for ascii, and u16 for basic_latin
+ $src_unit:ty,
+ $dst_unit:ty,
++ // safety invariant: stride function must munch ALU_STRIDE_SIZE*size(src_unit) bytes off of src and
++ // write ALU_STRIDE_SIZE*size(dst_unit) bytes to dst
+ $stride_fn:ident) => {
++ /// Safety: src and dst must have len elements, src is valid for read, dst is valid for
++ /// write
++ /// Safety-usable invariant: will return Some() when it fails
++ /// to convert. The first value will be a u8 that is > 127.
+ #[cfg_attr(
+ feature = "cargo-clippy",
+ allow(never_loop, cast_ptr_alignment, cast_lossless)
+ )]
+ #[inline(always)]
+ pub unsafe fn $name(
+ src: *const $src_unit,
+ dst: *mut $dst_unit,
+ len: usize,
+ ) -> Option<($src_unit, usize)> {
+ let mut offset = 0usize;
+ // This loop is only broken out of as a `goto` forward
+ loop {
++ // Safety: until_alignment becomes the number of bytes we need to munch from src/dest until we are aligned to usize
++ // We ensure basic-latin has the same alignment as ascii, starting with ascii since it is smaller.
+ let mut until_alignment = {
+ // Check if the other unit aligns if we move the narrower unit
+ // to alignment.
+ // if ::core::mem::size_of::<$src_unit>() == ::core::mem::size_of::<$dst_unit>() {
+ // ascii_to_ascii
+ // let src_alignment = (src as usize) & ALIGNMENT_MASK;
+ // let dst_alignment = (dst as usize) & ALIGNMENT_MASK;
+ // if src_alignment != dst_alignment {
+@@ -232,66 +278,89 @@ macro_rules! basic_latin_alu {
+ // Moving pointers to alignment seems to be a pessimization on
+ // x86_64 for operations that have UTF-16 as the internal
+ // Unicode representation. However, since it seems to be a win
+ // on ARM (tested ARMv7 code running on ARMv8 [rpi3]), except
+ // mixed results when encoding from UTF-16 and since x86 and
+ // x86_64 should be using SSE2 in due course, keeping the move
+ // to alignment here. It would be good to test on more ARM CPUs
+ // and on real MIPS and POWER hardware.
++ //
++ // Safety: This is the na誰ve code once again, for `until_alignment` bytes
+ while until_alignment != 0 {
+ let code_unit = *(src.add(offset));
+ if code_unit > 127 {
++ // Safety: Upholds safety-usable invariant here
+ return Some((code_unit, offset));
+ }
+ *(dst.add(offset)) = code_unit as $dst_unit;
++ // Safety: offset is the number of bytes copied so far
+ offset += 1;
+ until_alignment -= 1;
+ }
+ let len_minus_stride = len - ALU_STRIDE_SIZE;
+ loop {
+ if !$stride_fn(
++ // Safety: These are known to be valid and aligned since we have at
++ // least ALU_STRIDE_SIZE data in these buffers, and offset is the
++ // number of elements copied so far, which according to the
++ // until_alignment calculation above will cause both src and dst to be
++ // aligned to usize after this add
+ src.add(offset) as *const usize,
+ dst.add(offset) as *mut usize,
+ ) {
+ break;
+ }
++ // Safety: offset continues to be the number of bytes copied so far, and
++ // maintains usize alignment for the next loop iteration
+ offset += ALU_STRIDE_SIZE;
++ // Safety: This is `offset > len - stride. This loop will continue as long as
++ // `offset <= len - stride`, which means there are `stride` bytes to still be read.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ break;
+ }
++ // Safety: This is the na誰ve code once again, for leftover bytes
+ while offset < len {
++ // Safety: len invariant used here
+ let code_unit = *(src.add(offset));
+ if code_unit > 127 {
++ // Safety: Upholds safety-usable invariant here
+ return Some((code_unit, offset));
+ }
++ // Safety: len invariant used here
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ None
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! latin1_alu {
++ // safety invariant: stride function must munch ALU_STRIDE_SIZE*size(src_unit) bytes off of src and
++ // write ALU_STRIDE_SIZE*size(dst_unit) bytes to dst
+ ($name:ident, $src_unit:ty, $dst_unit:ty, $stride_fn:ident) => {
++ /// Safety: src and dst must have len elements, src is valid for read, dst is valid for
++ /// write
+ #[cfg_attr(
+ feature = "cargo-clippy",
+ allow(never_loop, cast_ptr_alignment, cast_lossless)
+ )]
+ #[inline(always)]
+ pub unsafe fn $name(src: *const $src_unit, dst: *mut $dst_unit, len: usize) {
+ let mut offset = 0usize;
+ // This loop is only broken out of as a `goto` forward
+ loop {
++ // Safety: until_alignment becomes the number of bytes we need to munch from src/dest until we are aligned to usize
++ // We ensure the UTF-16 side has the same alignment as the Latin-1 side, starting with Latin-1 since it is smaller.
+ let mut until_alignment = {
+ if ::core::mem::size_of::<$src_unit>() < ::core::mem::size_of::<$dst_unit>() {
+ // unpack
+ let src_until_alignment = (ALU_ALIGNMENT
+ - ((src as usize) & ALU_ALIGNMENT_MASK))
+ & ALU_ALIGNMENT_MASK;
+ if (dst.wrapping_add(src_until_alignment) as usize) & ALU_ALIGNMENT_MASK
+ != 0
+@@ -308,373 +377,485 @@ macro_rules! latin1_alu {
+ != 0
+ {
+ break;
+ }
+ dst_until_alignment
+ }
+ };
+ if until_alignment + ALU_STRIDE_SIZE <= len {
++ // Safety: This is the na誰ve code once again, for `until_alignment` bytes
+ while until_alignment != 0 {
+ let code_unit = *(src.add(offset));
+ *(dst.add(offset)) = code_unit as $dst_unit;
++ // Safety: offset is the number of bytes copied so far
+ offset += 1;
+ until_alignment -= 1;
+ }
+ let len_minus_stride = len - ALU_STRIDE_SIZE;
+ loop {
+ $stride_fn(
++ // Safety: These are known to be valid and aligned since we have at
++ // least ALU_STRIDE_SIZE data in these buffers, and offset is the
++ // number of elements copied so far, which according to the
++ // until_alignment calculation above will cause both src and dst to be
++ // aligned to usize after this add
+ src.add(offset) as *const usize,
+ dst.add(offset) as *mut usize,
+ );
++ // Safety: offset continues to be the number of bytes copied so far, and
++ // maintains usize alignment for the next loop iteration
+ offset += ALU_STRIDE_SIZE;
++ // Safety: This is `offset > len - stride. This loop will continue as long as
++ // `offset <= len - stride`, which means there are `stride` bytes to still be read.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ break;
+ }
++ // Safety: This is the na誰ve code once again, for leftover bytes
+ while offset < len {
++ // Safety: len invariant used here
+ let code_unit = *(src.add(offset));
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_simd_check_align {
+ (
+ $name:ident,
+ $src_unit:ty,
+ $dst_unit:ty,
++ // Safety: This function must require aligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_both_aligned:ident,
++ // Safety: This function must require aligned/unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_src_aligned:ident,
++ // Safety: This function must require unaligned/aligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_dst_aligned:ident,
++ // Safety: This function must require unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_neither_aligned:ident
+ ) => {
++ /// Safety: src/dst must be valid for reads/writes of `len` elements of their units.
++ ///
++ /// Safety-usable invariant: will return Some() when it encounters non-ASCII, with the first element in the Some being
++ /// guaranteed to be non-ASCII (> 127), and the second being the offset where it is found
+ #[inline(always)]
+ pub unsafe fn $name(
+ src: *const $src_unit,
+ dst: *mut $dst_unit,
+ len: usize,
+ ) -> Option<($src_unit, usize)> {
+ let mut offset = 0usize;
++ // Safety: if this check succeeds we're valid for reading/writing at least `SIMD_STRIDE_SIZE` elements.
+ if SIMD_STRIDE_SIZE <= len {
+ let len_minus_stride = len - SIMD_STRIDE_SIZE;
+ // XXX Should we first process one stride unconditionally as unaligned to
+ // avoid the cost of the branchiness below if the first stride fails anyway?
+ // XXX Should we just use unaligned SSE2 access unconditionally? It seems that
+ // on Haswell, it would make sense to just use unaligned and not bother
+ // checking. Need to benchmark older architectures before deciding.
+ let dst_masked = (dst as usize) & SIMD_ALIGNMENT_MASK;
++ // Safety: checking whether src is aligned
+ if ((src as usize) & SIMD_ALIGNMENT_MASK) == 0 {
++ // Safety: Checking whether dst is aligned
+ if dst_masked == 0 {
+ loop {
++ // Safety: We're valid to read/write SIMD_STRIDE_SIZE elements and have the appropriate alignments
+ if !$stride_both_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE` which means we always have at least `SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ } else {
+ loop {
++ // Safety: We're valid to read/write SIMD_STRIDE_SIZE elements and have the appropriate alignments
+ if !$stride_src_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE` which means we always have at least `SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ } else {
+ if dst_masked == 0 {
+ loop {
++ // Safety: We're valid to read/write SIMD_STRIDE_SIZE elements and have the appropriate alignments
+ if !$stride_dst_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE` which means we always have at least `SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ } else {
+ loop {
++ // Safety: We're valid to read/write SIMD_STRIDE_SIZE elements and have the appropriate alignments
+ if !$stride_neither_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE` which means we always have at least `SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ }
+ }
+ while offset < len {
++ // Safety: uses len invariant here and below
+ let code_unit = *(src.add(offset));
+ if code_unit > 127 {
++ // Safety: upholds safety-usable invariant
+ return Some((code_unit, offset));
+ }
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ None
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_simd_check_align_unrolled {
+ (
+ $name:ident,
+ $src_unit:ty,
+ $dst_unit:ty,
++ // Safety: This function must require aligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_both_aligned:ident,
++ // Safety: This function must require aligned/unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_src_aligned:ident,
++ // Safety: This function must require unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_neither_aligned:ident,
++ // Safety: This function must require aligned src/dest that are valid for reading/writing 2*SIMD_STRIDE_SIZE src_unit/dst_unit
+ $double_stride_both_aligned:ident,
++ // Safety: This function must require aligned/unaligned src/dest that are valid for reading/writing 2*SIMD_STRIDE_SIZE src_unit/dst_unit
+ $double_stride_src_aligned:ident
+ ) => {
+- #[inline(always)]
++ /// Safety: src/dst must be valid for reads/writes of `len` elements of their units.
++ ///
++ /// Safety-usable invariant: will return Some() when it encounters non-ASCII, with the first element in the Some being
++ /// guaranteed to be non-ASCII (> 127), and the second being the offset where it is found #[inline(always)]
+ pub unsafe fn $name(
+ src: *const $src_unit,
+ dst: *mut $dst_unit,
+ len: usize,
+ ) -> Option<($src_unit, usize)> {
+ let unit_size = ::core::mem::size_of::<$src_unit>();
+ let mut offset = 0usize;
+ // This loop is only broken out of as a goto forward without
+ // actually looping
+ 'outer: loop {
++ // Safety: if this check succeeds we're valid for reading/writing at least `SIMD_STRIDE_SIZE` elements.
+ if SIMD_STRIDE_SIZE <= len {
+ // First, process one unaligned
++ // Safety: this is safe to call since we're valid for this read/write
+ if !$stride_neither_aligned(src, dst) {
+ break 'outer;
+ }
+ offset = SIMD_STRIDE_SIZE;
+
+ // We have now seen 16 ASCII bytes. Let's guess that
+ // there will be enough more to justify more expense
+ // in the case of non-ASCII.
+ // Use aligned reads for the sake of old microachitectures.
++ //
++ // Safety: this correctly calculates the number of src_units that need to be read before the remaining list is aligned.
++ // This is less that SIMD_ALIGNMENT, which is also SIMD_STRIDE_SIZE (as documented)
+ let until_alignment = ((SIMD_ALIGNMENT
+ - ((src.add(offset) as usize) & SIMD_ALIGNMENT_MASK))
+ & SIMD_ALIGNMENT_MASK)
+ / unit_size;
+- // This addition won't overflow, because even in the 32-bit PAE case the
++ // Safety: This addition won't overflow, because even in the 32-bit PAE case the
+ // address space holds enough code that the slice length can't be that
+ // close to address space size.
+ // offset now equals SIMD_STRIDE_SIZE, hence times 3 below.
++ //
++ // Safety: if this check succeeds we're valid for reading/writing at least `2 * SIMD_STRIDE_SIZE` elements plus `until_alignment`.
++ // The extra SIMD_STRIDE_SIZE in the condition is because `offset` is already `SIMD_STRIDE_SIZE`.
+ if until_alignment + (SIMD_STRIDE_SIZE * 3) <= len {
+ if until_alignment != 0 {
++ // Safety: this is safe to call since we're valid for this read/write (and more), and don't care about alignment
++ // This will copy over bytes that get decoded twice since it's not incrementing `offset` by SIMD_STRIDE_SIZE. This is fine.
+ if !$stride_neither_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += until_alignment;
+ }
++ // Safety: At this point we're valid for reading/writing 2*SIMD_STRIDE_SIZE elements
++ // Safety: Now `offset` is aligned for `src`
+ let len_minus_stride_times_two = len - (SIMD_STRIDE_SIZE * 2);
++ // Safety: This is whether dst is aligned
+ let dst_masked = (dst.add(offset) as usize) & SIMD_ALIGNMENT_MASK;
+ if dst_masked == 0 {
+ loop {
++ // Safety: both are aligned, we can call the aligned function. We're valid for reading/writing double stride from the initial condition
++ // and the loop break condition below
+ if let Some(advance) =
+ $double_stride_both_aligned(src.add(offset), dst.add(offset))
+ {
+ offset += advance;
+ let code_unit = *(src.add(offset));
++ // Safety: uses safety-usable invariant on ascii_to_ascii_simd_double_stride to return
++ // guaranteed non-ascii
+ return Some((code_unit, offset));
+ }
+ offset += SIMD_STRIDE_SIZE * 2;
++ // Safety: This is `offset > len - 2 * SIMD_STRIDE_SIZE` which means we always have at least `2 * SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride_times_two {
+ break;
+ }
+ }
++ // Safety: We're valid for reading/writing one more, and can still assume alignment
+ if offset + SIMD_STRIDE_SIZE <= len {
+ if !$stride_both_aligned(src.add(offset), dst.add(offset)) {
+ break 'outer;
+ }
+ offset += SIMD_STRIDE_SIZE;
+ }
+ } else {
+ loop {
++ // Safety: only src is aligned here. We're valid for reading/writing double stride from the initial condition
++ // and the loop break condition below
+ if let Some(advance) =
+ $double_stride_src_aligned(src.add(offset), dst.add(offset))
+ {
+ offset += advance;
+ let code_unit = *(src.add(offset));
++ // Safety: uses safety-usable invariant on ascii_to_ascii_simd_double_stride to return
++ // guaranteed non-ascii
+ return Some((code_unit, offset));
+ }
+ offset += SIMD_STRIDE_SIZE * 2;
++ // Safety: This is `offset > len - 2 * SIMD_STRIDE_SIZE` which means we always have at least `2 * SIMD_STRIDE_SIZE` elements to munch next time.
++
+ if offset > len_minus_stride_times_two {
+ break;
+ }
+ }
++ // Safety: We're valid for reading/writing one more, and can still assume alignment
+ if offset + SIMD_STRIDE_SIZE <= len {
+ if !$stride_src_aligned(src.add(offset), dst.add(offset)) {
+ break 'outer;
+ }
+ offset += SIMD_STRIDE_SIZE;
+ }
+ }
+ } else {
+ // At most two iterations, so unroll
+ if offset + SIMD_STRIDE_SIZE <= len {
++ // Safety: The check above ensures we're allowed to read/write this, and we don't use alignment
+ if !$stride_neither_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
+ if offset + SIMD_STRIDE_SIZE <= len {
++ // Safety: The check above ensures we're allowed to read/write this, and we don't use alignment
+ if !$stride_neither_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
+ }
+ }
+ }
+ }
+ break 'outer;
+ }
+ while offset < len {
++ // Safety: relies straightforwardly on the `len` invariant
+ let code_unit = *(src.add(offset));
+ if code_unit > 127 {
++ // Safety-usable invariant upheld here
+ return Some((code_unit, offset));
+ }
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ None
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! latin1_simd_check_align {
+ (
+ $name:ident,
+ $src_unit:ty,
+ $dst_unit:ty,
++ // Safety: This function must require aligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_both_aligned:ident,
++ // Safety: This function must require aligned/unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_src_aligned:ident,
++ // Safety: This function must require unaligned/aligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_dst_aligned:ident,
++ // Safety: This function must require unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_neither_aligned:ident
++
+ ) => {
++ /// Safety: src/dst must be valid for reads/writes of `len` elements of their units.
+ #[inline(always)]
+ pub unsafe fn $name(src: *const $src_unit, dst: *mut $dst_unit, len: usize) {
+ let mut offset = 0usize;
++ // Safety: if this check succeeds we're valid for reading/writing at least `SIMD_STRIDE_SIZE` elements.
+ if SIMD_STRIDE_SIZE <= len {
+ let len_minus_stride = len - SIMD_STRIDE_SIZE;
++ // Whether dst is aligned
+ let dst_masked = (dst as usize) & SIMD_ALIGNMENT_MASK;
++ // Whether src is aligned
+ if ((src as usize) & SIMD_ALIGNMENT_MASK) == 0 {
+ if dst_masked == 0 {
+ loop {
++ // Safety: Both were aligned, we can use the aligned function
+ $stride_both_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE`, which means in the next iteration we're valid for
++ // reading/writing at least SIMD_STRIDE_SIZE elements.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ } else {
+ loop {
++ // Safety: src was aligned, dst was not
+ $stride_src_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE`, which means in the next iteration we're valid for
++ // reading/writing at least SIMD_STRIDE_SIZE elements.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ } else {
+ if dst_masked == 0 {
+ loop {
++ // Safety: src was aligned, dst was not
+ $stride_dst_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE`, which means in the next iteration we're valid for
++ // reading/writing at least SIMD_STRIDE_SIZE elements.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ } else {
+ loop {
++ // Safety: Neither were aligned
+ $stride_neither_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE`, which means in the next iteration we're valid for
++ // reading/writing at least SIMD_STRIDE_SIZE elements.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ }
+ }
+ while offset < len {
++ // Safety: relies straightforwardly on the `len` invariant
+ let code_unit = *(src.add(offset));
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! latin1_simd_check_align_unrolled {
+ (
+ $name:ident,
+ $src_unit:ty,
+ $dst_unit:ty,
++ // Safety: This function must require aligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_both_aligned:ident,
++ // Safety: This function must require aligned/unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_src_aligned:ident,
++ // Safety: This function must require unaligned/aligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_dst_aligned:ident,
++ // Safety: This function must require unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_neither_aligned:ident
+ ) => {
++ /// Safety: src/dst must be valid for reads/writes of `len` elements of their units.
+ #[inline(always)]
+ pub unsafe fn $name(src: *const $src_unit, dst: *mut $dst_unit, len: usize) {
+ let unit_size = ::core::mem::size_of::<$src_unit>();
+ let mut offset = 0usize;
++ // Safety: if this check succeeds we're valid for reading/writing at least `SIMD_STRIDE_SIZE` elements.
+ if SIMD_STRIDE_SIZE <= len {
++ // Safety: this correctly calculates the number of src_units that need to be read before the remaining list is aligned.
++ // This is by definition less than SIMD_STRIDE_SIZE.
+ let mut until_alignment = ((SIMD_STRIDE_SIZE
+ - ((src as usize) & SIMD_ALIGNMENT_MASK))
+ & SIMD_ALIGNMENT_MASK)
+ / unit_size;
+ while until_alignment != 0 {
++ // Safety: This is a straightforward copy, since until_alignment is < SIMD_STRIDE_SIZE < len, this is in-bounds
+ *(dst.add(offset)) = *(src.add(offset)) as $dst_unit;
+ offset += 1;
+ until_alignment -= 1;
+ }
++ // Safety: here offset will be `until_alignment`, i.e. enough to align `src`.
+ let len_minus_stride = len - SIMD_STRIDE_SIZE;
++ // Safety: if this check succeeds we're valid for reading/writing at least `2 * SIMD_STRIDE_SIZE` elements.
+ if offset + SIMD_STRIDE_SIZE * 2 <= len {
+ let len_minus_stride_times_two = len_minus_stride - SIMD_STRIDE_SIZE;
++ // Safety: at this point src is known to be aligned at offset, dst is not.
+ if (dst.add(offset) as usize) & SIMD_ALIGNMENT_MASK == 0 {
+ loop {
++ // Safety: We checked alignment of dst above, we can use the alignment functions. We're allowed to read/write 2*SIMD_STRIDE_SIZE elements, which we do.
+ $stride_both_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
+ $stride_both_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - 2 * SIMD_STRIDE_SIZE` which means we always have at least `2 * SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride_times_two {
+ break;
+ }
+ }
+ } else {
+ loop {
++ // Safety: we ensured alignment of src already.
+ $stride_src_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
+ $stride_src_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - 2 * SIMD_STRIDE_SIZE` which means we always have at least `2 * SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride_times_two {
+ break;
+ }
+ }
+ }
+ }
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE` which means we are valid to munch SIMD_STRIDE_SIZE more elements, which we do
+ if offset < len_minus_stride {
+ $stride_src_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
+ }
+ }
+ while offset < len {
++ // Safety: uses len invariant here and below
+ let code_unit = *(src.add(offset));
+ // On x86_64, this loop autovectorizes but in the pack
+ // case there are instructions whose purpose is to make sure
+ // each u16 in the vector is truncated before packing. However,
+ // since we don't care about saturating behavior of SSE2 packing
+ // when the input isn't Latin1, those instructions are useless.
+ // Unfortunately, using the `assume` intrinsic to lie to the
+ // optimizer doesn't make LLVM omit the trunctation that we
+@@ -688,138 +869,180 @@ macro_rules! latin1_simd_check_align_unr
+ offset += 1;
+ }
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_simd_unalign {
++ // Safety: stride_neither_aligned must be a function that requires src/dest be valid for unaligned reads/writes for SIMD_STRIDE_SIZE elements of type src_unit/dest_unit
+ ($name:ident, $src_unit:ty, $dst_unit:ty, $stride_neither_aligned:ident) => {
++ /// Safety: src and dst must be valid for reads/writes of len elements of type src_unit/dst_unit
++ ///
++ /// Safety-usable invariant: will return Some() when it encounters non-ASCII, with the first element in the Some being
++ /// guaranteed to be non-ASCII (> 127), and the second being the offset where it is found
+ #[inline(always)]
+ pub unsafe fn $name(
+ src: *const $src_unit,
+ dst: *mut $dst_unit,
+ len: usize,
+ ) -> Option<($src_unit, usize)> {
+ let mut offset = 0usize;
++ // Safety: if this check succeeds we're valid for reading/writing at least `stride` elements.
+ if SIMD_STRIDE_SIZE <= len {
+ let len_minus_stride = len - SIMD_STRIDE_SIZE;
+ loop {
++ // Safety: We know we're valid for `stride` reads/writes, so we can call this function. We don't need alignment.
+ if !$stride_neither_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // This is `offset > len - stride` which means we always have at least `stride` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ while offset < len {
++ // Safety: Uses len invariant here and below
+ let code_unit = *(src.add(offset));
+ if code_unit > 127 {
++ // Safety-usable invariant upheld here
+ return Some((code_unit, offset));
+ }
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ None
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! latin1_simd_unalign {
++ // Safety: stride_neither_aligned must be a function that requires src/dest be valid for unaligned reads/writes for SIMD_STRIDE_SIZE elements of type src_unit/dest_unit
+ ($name:ident, $src_unit:ty, $dst_unit:ty, $stride_neither_aligned:ident) => {
++ /// Safety: src and dst must be valid for unaligned reads/writes of len elements of type src_unit/dst_unit
+ #[inline(always)]
+ pub unsafe fn $name(src: *const $src_unit, dst: *mut $dst_unit, len: usize) {
+ let mut offset = 0usize;
++ // Safety: if this check succeeds we're valid for reading/writing at least `stride` elements.
+ if SIMD_STRIDE_SIZE <= len {
+ let len_minus_stride = len - SIMD_STRIDE_SIZE;
+ loop {
++ // Safety: We know we're valid for `stride` reads/writes, so we can call this function. We don't need alignment.
+ $stride_neither_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
++ // This is `offset > len - stride` which means we always have at least `stride` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ while offset < len {
++ // Safety: Uses len invariant here
+ let code_unit = *(src.add(offset));
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_to_ascii_simd_stride {
++ // Safety: load/store must be valid for 16 bytes of read/write, which may be unaligned. (candidates: `(load|store)(16|8)_(unaligned|aligned)` functions)
+ ($name:ident, $load:ident, $store:ident) => {
++ /// Safety: src and dst must be valid for 16 bytes of read/write according to
++ /// the $load/$store fn, which may allow for unaligned reads/writes or require
++ /// alignment to either 16x8 or u8x16.
+ #[inline(always)]
+ pub unsafe fn $name(src: *const u8, dst: *mut u8) -> bool {
+ let simd = $load(src);
+ if !simd_is_ascii(simd) {
+ return false;
+ }
+ $store(dst, simd);
+ true
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_to_ascii_simd_double_stride {
++ // Safety: store must be valid for 32 bytes of write, which may be unaligned (candidates: `store(8|16)_(aligned|unaligned)`)
+ ($name:ident, $store:ident) => {
++ /// Safety: src must be valid for 32 bytes of aligned u8x16 read
++ /// dst must be valid for 32 bytes of unaligned write according to
++ /// the $store fn, which may allow for unaligned writes or require
++ /// alignment to either 16x8 or u8x16.
++ ///
++ /// Safety-usable invariant: Returns Some(index) if the element at `index` is invalid ASCII
+ #[inline(always)]
+ pub unsafe fn $name(src: *const u8, dst: *mut u8) -> Option<usize> {
+ let first = load16_aligned(src);
+ let second = load16_aligned(src.add(SIMD_STRIDE_SIZE));
+ $store(dst, first);
+ if unlikely(!simd_is_ascii(first | second)) {
++ // Safety: mask_ascii produces a mask of all the high bits.
+ let mask_first = mask_ascii(first);
+ if mask_first != 0 {
++ // Safety: on little endian systems this will be the number of ascii bytes
++ // before the first non-ascii, i.e. valid for indexing src
++ // TODO SAFETY: What about big-endian systems?
+ return Some(mask_first.trailing_zeros() as usize);
+ }
+ $store(dst.add(SIMD_STRIDE_SIZE), second);
+ let mask_second = mask_ascii(second);
++ // Safety: on little endian systems this will be the number of ascii bytes
++ // before the first non-ascii, i.e. valid for indexing src
+ return Some(SIMD_STRIDE_SIZE + mask_second.trailing_zeros() as usize);
+ }
+ $store(dst.add(SIMD_STRIDE_SIZE), second);
+ None
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_to_basic_latin_simd_stride {
++ // Safety: load/store must be valid for 16 bytes of read/write, which may be unaligned. (candidates: `(load|store)(16|8)_(unaligned|aligned)` functions)
+ ($name:ident, $load:ident, $store:ident) => {
++ /// Safety: src and dst must be valid for 16/32 bytes of read/write according to
++ /// the $load/$store fn, which may allow for unaligned reads/writes or require
++ /// alignment to either 16x8 or u8x16.
+ #[inline(always)]
+ pub unsafe fn $name(src: *const u8, dst: *mut u16) -> bool {
+ let simd = $load(src);
+ if !simd_is_ascii(simd) {
+ return false;
+ }
+ let (first, second) = simd_unpack(simd);
+ $store(dst, first);
+ $store(dst.add(8), second);
+ true
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_to_basic_latin_simd_double_stride {
++ // Safety: store must be valid for 16 bytes of write, which may be unaligned
+ ($name:ident, $store:ident) => {
++ /// Safety: src must be valid for 2*SIMD_STRIDE_SIZE bytes of aligned reads,
++ /// aligned to either 16x8 or u8x16.
++ /// dst must be valid for 2*SIMD_STRIDE_SIZE bytes of aligned or unaligned reads
+ #[inline(always)]
+ pub unsafe fn $name(src: *const u8, dst: *mut u16) -> Option<usize> {
+ let first = load16_aligned(src);
+ let second = load16_aligned(src.add(SIMD_STRIDE_SIZE));
+ let (a, b) = simd_unpack(first);
+ $store(dst, a);
++ // Safety: divide by 2 since it's a u16 pointer
+ $store(dst.add(SIMD_STRIDE_SIZE / 2), b);
+ if unlikely(!simd_is_ascii(first | second)) {
+ let mask_first = mask_ascii(first);
+ if mask_first != 0 {
+ return Some(mask_first.trailing_zeros() as usize);
+ }
+ let (c, d) = simd_unpack(second);
+ $store(dst.add(SIMD_STRIDE_SIZE), c);
+@@ -832,47 +1055,59 @@ macro_rules! ascii_to_basic_latin_simd_d
+ $store(dst.add(SIMD_STRIDE_SIZE + (SIMD_STRIDE_SIZE / 2)), d);
+ None
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! unpack_simd_stride {
++ // Safety: load/store must be valid for 16 bytes of read/write, which may be unaligned. (candidates: `(load|store)(16|8)_(unaligned|aligned)` functions)
+ ($name:ident, $load:ident, $store:ident) => {
++ /// Safety: src and dst must be valid for 16 bytes of read/write according to
++ /// the $load/$store fn, which may allow for unaligned reads/writes or require
++ /// alignment to either 16x8 or u8x16.
+ #[inline(always)]
+ pub unsafe fn $name(src: *const u8, dst: *mut u16) {
+ let simd = $load(src);
+ let (first, second) = simd_unpack(simd);
+ $store(dst, first);
+ $store(dst.add(8), second);
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! basic_latin_to_ascii_simd_stride {
++ // Safety: load/store must be valid for 16 bytes of read/write, which may be unaligned. (candidates: `(load|store)(16|8)_(unaligned|aligned)` functions)
+ ($name:ident, $load:ident, $store:ident) => {
++ /// Safety: src and dst must be valid for 32/16 bytes of read/write according to
++ /// the $load/$store fn, which may allow for unaligned reads/writes or require
++ /// alignment to either 16x8 or u8x16.
+ #[inline(always)]
+ pub unsafe fn $name(src: *const u16, dst: *mut u8) -> bool {
+ let first = $load(src);
+ let second = $load(src.add(8));
+ if simd_is_basic_latin(first | second) {
+ $store(dst, simd_pack(first, second));
+ true
+ } else {
+ false
+ }
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! pack_simd_stride {
++ // Safety: load/store must be valid for 16 bytes of read/write, which may be unaligned. (candidates: `(load|store)(16|8)_(unaligned|aligned)` functions)
+ ($name:ident, $load:ident, $store:ident) => {
++ /// Safety: src and dst must be valid for 32/16 bytes of read/write according to
++ /// the $load/$store fn, which may allow for unaligned reads/writes or require
++ /// alignment to either 16x8 or u8x16.
+ #[inline(always)]
+ pub unsafe fn $name(src: *const u16, dst: *mut u8) {
+ let first = $load(src);
+ let second = $load(src.add(8));
+ $store(dst, simd_pack(first, second));
+ }
+ };
+ }
+@@ -888,24 +1123,28 @@ cfg_if! {
+ // pub const ALIGNMENT: usize = 8;
+
+ pub const ALU_STRIDE_SIZE: usize = 16;
+
+ pub const ALU_ALIGNMENT: usize = 8;
+
+ pub const ALU_ALIGNMENT_MASK: usize = 7;
+
++ // Safety for stride macros: We stick to the load8_aligned/etc family of functions. We consistently produce
++ // neither_unaligned variants using only unaligned inputs.
+ ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_neither_aligned, load16_unaligned, store16_unaligned);
+
+ ascii_to_basic_latin_simd_stride!(ascii_to_basic_latin_stride_neither_aligned, load16_unaligned, store8_unaligned);
+ unpack_simd_stride!(unpack_stride_neither_aligned, load16_unaligned, store8_unaligned);
+
+ basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_neither_aligned, load8_unaligned, store16_unaligned);
+ pack_simd_stride!(pack_stride_neither_aligned, load8_unaligned, store16_unaligned);
+
++ // Safety for conversion macros: We use the unalign macro with unalign functions above. All stride functions were produced
++ // by stride macros that universally munch a single SIMD_STRIDE_SIZE worth of elements.
+ ascii_simd_unalign!(ascii_to_ascii, u8, u8, ascii_to_ascii_stride_neither_aligned);
+ ascii_simd_unalign!(ascii_to_basic_latin, u8, u16, ascii_to_basic_latin_stride_neither_aligned);
+ ascii_simd_unalign!(basic_latin_to_ascii, u16, u8, basic_latin_to_ascii_stride_neither_aligned);
+ latin1_simd_unalign!(unpack_latin1, u8, u16, unpack_stride_neither_aligned);
+ latin1_simd_unalign!(pack_latin1, u16, u8, pack_stride_neither_aligned);
+ } else if #[cfg(all(feature = "simd-accel", target_endian = "little", target_feature = "neon"))] {
+ // SIMD with different instructions for aligned and unaligned loads and stores.
+ //
+@@ -914,16 +1153,19 @@ cfg_if! {
+ // but the benchmark results I see don't agree.
+
+ pub const SIMD_STRIDE_SIZE: usize = 16;
+
+ pub const MAX_STRIDE_SIZE: usize = 16;
+
+ pub const SIMD_ALIGNMENT_MASK: usize = 15;
+
++ // Safety for stride macros: We stick to the load8_aligned/etc family of functions. We consistently name
++ // aligned/unaligned functions according to src/dst being aligned/unaligned
++
+ ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_both_aligned, load16_aligned, store16_aligned);
+ ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_src_aligned, load16_aligned, store16_unaligned);
+ ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_dst_aligned, load16_unaligned, store16_aligned);
+ ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_neither_aligned, load16_unaligned, store16_unaligned);
+
+ ascii_to_basic_latin_simd_stride!(ascii_to_basic_latin_stride_both_aligned, load16_aligned, store8_aligned);
+ ascii_to_basic_latin_simd_stride!(ascii_to_basic_latin_stride_src_aligned, load16_aligned, store8_unaligned);
+ ascii_to_basic_latin_simd_stride!(ascii_to_basic_latin_stride_dst_aligned, load16_unaligned, store8_aligned);
+@@ -939,36 +1181,43 @@ cfg_if! {
+ basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_dst_aligned, load8_unaligned, store16_aligned);
+ basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_neither_aligned, load8_unaligned, store16_unaligned);
+
+ pack_simd_stride!(pack_stride_both_aligned, load8_aligned, store16_aligned);
+ pack_simd_stride!(pack_stride_src_aligned, load8_aligned, store16_unaligned);
+ pack_simd_stride!(pack_stride_dst_aligned, load8_unaligned, store16_aligned);
+ pack_simd_stride!(pack_stride_neither_aligned, load8_unaligned, store16_unaligned);
+
++ // Safety for conversion macros: We use the correct pattern of both/src/dst/neither here. All stride functions were produced
++ // by stride macros that universally munch a single SIMD_STRIDE_SIZE worth of elements.
++
+ ascii_simd_check_align!(ascii_to_ascii, u8, u8, ascii_to_ascii_stride_both_aligned, ascii_to_ascii_stride_src_aligned, ascii_to_ascii_stride_dst_aligned, ascii_to_ascii_stride_neither_aligned);
+ ascii_simd_check_align!(ascii_to_basic_latin, u8, u16, ascii_to_basic_latin_stride_both_aligned, ascii_to_basic_latin_stride_src_aligned, ascii_to_basic_latin_stride_dst_aligned, ascii_to_basic_latin_stride_neither_aligned);
+ ascii_simd_check_align!(basic_latin_to_ascii, u16, u8, basic_latin_to_ascii_stride_both_aligned, basic_latin_to_ascii_stride_src_aligned, basic_latin_to_ascii_stride_dst_aligned, basic_latin_to_ascii_stride_neither_aligned);
+ latin1_simd_check_align!(unpack_latin1, u8, u16, unpack_stride_both_aligned, unpack_stride_src_aligned, unpack_stride_dst_aligned, unpack_stride_neither_aligned);
+ latin1_simd_check_align!(pack_latin1, u16, u8, pack_stride_both_aligned, pack_stride_src_aligned, pack_stride_dst_aligned, pack_stride_neither_aligned);
+ } else if #[cfg(all(feature = "simd-accel", target_feature = "sse2"))] {
+ // SIMD with different instructions for aligned and unaligned loads and stores.
+ //
+ // Newer microarchitectures are not supposed to have a performance difference between
+ // aligned and unaligned SSE2 loads and stores when the address is actually aligned,
+ // but the benchmark results I see don't agree.
+
+ pub const SIMD_STRIDE_SIZE: usize = 16;
+
++ /// Safety-usable invariant: This should be identical to SIMD_STRIDE_SIZE (used by ascii_simd_check_align_unrolled)
+ pub const SIMD_ALIGNMENT: usize = 16;
+
+ pub const MAX_STRIDE_SIZE: usize = 16;
+
+ pub const SIMD_ALIGNMENT_MASK: usize = 15;
+
++ // Safety for stride macros: We stick to the load8_aligned/etc family of functions. We consistently name
++ // aligned/unaligned functions according to src/dst being aligned/unaligned
++
+ ascii_to_ascii_simd_double_stride!(ascii_to_ascii_simd_double_stride_both_aligned, store16_aligned);
+ ascii_to_ascii_simd_double_stride!(ascii_to_ascii_simd_double_stride_src_aligned, store16_unaligned);
+
+ ascii_to_basic_latin_simd_double_stride!(ascii_to_basic_latin_simd_double_stride_both_aligned, store8_aligned);
+ ascii_to_basic_latin_simd_double_stride!(ascii_to_basic_latin_simd_double_stride_src_aligned, store8_unaligned);
+
+ ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_both_aligned, load16_aligned, store16_aligned);
+ ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_src_aligned, load16_aligned, store16_unaligned);
+@@ -984,33 +1233,43 @@ cfg_if! {
+ basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_both_aligned, load8_aligned, store16_aligned);
+ basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_src_aligned, load8_aligned, store16_unaligned);
+ basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_dst_aligned, load8_unaligned, store16_aligned);
+ basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_neither_aligned, load8_unaligned, store16_unaligned);
+
+ pack_simd_stride!(pack_stride_both_aligned, load8_aligned, store16_aligned);
+ pack_simd_stride!(pack_stride_src_aligned, load8_aligned, store16_unaligned);
+
++ // Safety for conversion macros: We use the correct pattern of both/src/dst/neither/double_both/double_src here. All stride functions were produced
++ // by stride macros that universally munch a single SIMD_STRIDE_SIZE worth of elements.
++
+ ascii_simd_check_align_unrolled!(ascii_to_ascii, u8, u8, ascii_to_ascii_stride_both_aligned, ascii_to_ascii_stride_src_aligned, ascii_to_ascii_stride_neither_aligned, ascii_to_ascii_simd_double_stride_both_aligned, ascii_to_ascii_simd_double_stride_src_aligned);
+ ascii_simd_check_align_unrolled!(ascii_to_basic_latin, u8, u16, ascii_to_basic_latin_stride_both_aligned, ascii_to_basic_latin_stride_src_aligned, ascii_to_basic_latin_stride_neither_aligned, ascii_to_basic_latin_simd_double_stride_both_aligned, ascii_to_basic_latin_simd_double_stride_src_aligned);
+
+ ascii_simd_check_align!(basic_latin_to_ascii, u16, u8, basic_latin_to_ascii_stride_both_aligned, basic_latin_to_ascii_stride_src_aligned, basic_latin_to_ascii_stride_dst_aligned, basic_latin_to_ascii_stride_neither_aligned);
+ latin1_simd_check_align_unrolled!(unpack_latin1, u8, u16, unpack_stride_both_aligned, unpack_stride_src_aligned, unpack_stride_dst_aligned, unpack_stride_neither_aligned);
+ latin1_simd_check_align_unrolled!(pack_latin1, u16, u8, pack_stride_both_aligned, pack_stride_src_aligned, pack_stride_dst_aligned, pack_stride_neither_aligned);
+ } else if #[cfg(all(target_endian = "little", target_pointer_width = "64"))] {
+ // Aligned ALU word, little-endian, 64-bit
+
++ /// Safety invariant: this is the amount of bytes consumed by
++ /// unpack_alu. This will be twice the pointer width, as it consumes two usizes.
++ /// This is also the number of bytes produced by pack_alu.
++ /// This is also the number of u16 code units produced/consumed by unpack_alu/pack_alu respectively.
+ pub const ALU_STRIDE_SIZE: usize = 16;
+
+ pub const MAX_STRIDE_SIZE: usize = 16;
+
++ // Safety invariant: this is the pointer width in bytes
+ pub const ALU_ALIGNMENT: usize = 8;
+
++ // Safety invariant: this is a mask for getting the bits of a pointer not aligned to ALU_ALIGNMENT
+ pub const ALU_ALIGNMENT_MASK: usize = 7;
+
++ /// Safety: dst must point to valid space for writing four `usize`s
+ #[inline(always)]
+ unsafe fn unpack_alu(word: usize, second_word: usize, dst: *mut usize) {
+ let first = ((0x0000_0000_FF00_0000usize & word) << 24) |
+ ((0x0000_0000_00FF_0000usize & word) << 16) |
+ ((0x0000_0000_0000_FF00usize & word) << 8) |
+ (0x0000_0000_0000_00FFusize & word);
+ let second = ((0xFF00_0000_0000_0000usize & word) >> 8) |
+ ((0x00FF_0000_0000_0000usize & word) >> 16) |
+@@ -1019,22 +1278,24 @@ cfg_if! {
+ let third = ((0x0000_0000_FF00_0000usize & second_word) << 24) |
+ ((0x0000_0000_00FF_0000usize & second_word) << 16) |
+ ((0x0000_0000_0000_FF00usize & second_word) << 8) |
+ (0x0000_0000_0000_00FFusize & second_word);
+ let fourth = ((0xFF00_0000_0000_0000usize & second_word) >> 8) |
+ ((0x00FF_0000_0000_0000usize & second_word) >> 16) |
+ ((0x0000_FF00_0000_0000usize & second_word) >> 24) |
+ ((0x0000_00FF_0000_0000usize & second_word) >> 32);
++ // Safety: fn invariant used here
+ *dst = first;
+ *(dst.add(1)) = second;
+ *(dst.add(2)) = third;
+ *(dst.add(3)) = fourth;
+ }
+
++ /// Safety: dst must point to valid space for writing two `usize`s
+ #[inline(always)]
+ unsafe fn pack_alu(first: usize, second: usize, third: usize, fourth: usize, dst: *mut usize) {
+ let word = ((0x00FF_0000_0000_0000usize & second) << 8) |
+ ((0x0000_00FF_0000_0000usize & second) << 16) |
+ ((0x0000_0000_00FF_0000usize & second) << 24) |
+ ((0x0000_0000_0000_00FFusize & second) << 32) |
+ ((0x00FF_0000_0000_0000usize & first) >> 24) |
+ ((0x0000_00FF_0000_0000usize & first) >> 16) |
+@@ -1043,70 +1304,88 @@ cfg_if! {
+ let second_word = ((0x00FF_0000_0000_0000usize & fourth) << 8) |
+ ((0x0000_00FF_0000_0000usize & fourth) << 16) |
+ ((0x0000_0000_00FF_0000usize & fourth) << 24) |
+ ((0x0000_0000_0000_00FFusize & fourth) << 32) |
+ ((0x00FF_0000_0000_0000usize & third) >> 24) |
+ ((0x0000_00FF_0000_0000usize & third) >> 16) |
+ ((0x0000_0000_00FF_0000usize & third) >> 8) |
+ (0x0000_0000_0000_00FFusize & third);
++ // Safety: fn invariant used here
+ *dst = word;
+ *(dst.add(1)) = second_word;
+ }
+ } else if #[cfg(all(target_endian = "little", target_pointer_width = "32"))] {
+ // Aligned ALU word, little-endian, 32-bit
+
++ /// Safety invariant: this is the amount of bytes consumed by
++ /// unpack_alu. This will be twice the pointer width, as it consumes two usizes.
++ /// This is also the number of bytes produced by pack_alu.
++ /// This is also the number of u16 code units produced/consumed by unpack_alu/pack_alu respectively.
+ pub const ALU_STRIDE_SIZE: usize = 8;
+
+ pub const MAX_STRIDE_SIZE: usize = 8;
+
++ // Safety invariant: this is the pointer width in bytes
+ pub const ALU_ALIGNMENT: usize = 4;
+
++ // Safety invariant: this is a mask for getting the bits of a pointer not aligned to ALU_ALIGNMENT
+ pub const ALU_ALIGNMENT_MASK: usize = 3;
+
++ /// Safety: dst must point to valid space for writing four `usize`s
+ #[inline(always)]
+ unsafe fn unpack_alu(word: usize, second_word: usize, dst: *mut usize) {
+ let first = ((0x0000_FF00usize & word) << 8) |
+ (0x0000_00FFusize & word);
+ let second = ((0xFF00_0000usize & word) >> 8) |
+ ((0x00FF_0000usize & word) >> 16);
+ let third = ((0x0000_FF00usize & second_word) << 8) |
+ (0x0000_00FFusize & second_word);
+ let fourth = ((0xFF00_0000usize & second_word) >> 8) |
+ ((0x00FF_0000usize & second_word) >> 16);
++ // Safety: fn invariant used here
+ *dst = first;
+ *(dst.add(1)) = second;
+ *(dst.add(2)) = third;
+ *(dst.add(3)) = fourth;
+ }
+
++ /// Safety: dst must point to valid space for writing two `usize`s
+ #[inline(always)]
+ unsafe fn pack_alu(first: usize, second: usize, third: usize, fourth: usize, dst: *mut usize) {
+ let word = ((0x00FF_0000usize & second) << 8) |
+ ((0x0000_00FFusize & second) << 16) |
+ ((0x00FF_0000usize & first) >> 8) |
+ (0x0000_00FFusize & first);
+ let second_word = ((0x00FF_0000usize & fourth) << 8) |
+ ((0x0000_00FFusize & fourth) << 16) |
+ ((0x00FF_0000usize & third) >> 8) |
+ (0x0000_00FFusize & third);
++ // Safety: fn invariant used here
+ *dst = word;
+ *(dst.add(1)) = second_word;
+ }
+ } else if #[cfg(all(target_endian = "big", target_pointer_width = "64"))] {
+ // Aligned ALU word, big-endian, 64-bit
+
++ /// Safety invariant: this is the amount of bytes consumed by
++ /// unpack_alu. This will be twice the pointer width, as it consumes two usizes.
++ /// This is also the number of bytes produced by pack_alu.
++ /// This is also the number of u16 code units produced/consumed by unpack_alu/pack_alu respectively.
+ pub const ALU_STRIDE_SIZE: usize = 16;
+
+ pub const MAX_STRIDE_SIZE: usize = 16;
+
++ // Safety invariant: this is the pointer width in bytes
+ pub const ALU_ALIGNMENT: usize = 8;
+
++ // Safety invariant: this is a mask for getting the bits of a pointer not aligned to ALU_ALIGNMENT
+ pub const ALU_ALIGNMENT_MASK: usize = 7;
+
++ /// Safety: dst must point to valid space for writing four `usize`s
+ #[inline(always)]
+ unsafe fn unpack_alu(word: usize, second_word: usize, dst: *mut usize) {
+ let first = ((0xFF00_0000_0000_0000usize & word) >> 8) |
+ ((0x00FF_0000_0000_0000usize & word) >> 16) |
+ ((0x0000_FF00_0000_0000usize & word) >> 24) |
+ ((0x0000_00FF_0000_0000usize & word) >> 32);
+ let second = ((0x0000_0000_FF00_0000usize & word) << 24) |
+ ((0x0000_0000_00FF_0000usize & word) << 16) |
+@@ -1115,22 +1394,24 @@ cfg_if! {
+ let third = ((0xFF00_0000_0000_0000usize & second_word) >> 8) |
+ ((0x00FF_0000_0000_0000usize & second_word) >> 16) |
+ ((0x0000_FF00_0000_0000usize & second_word) >> 24) |
+ ((0x0000_00FF_0000_0000usize & second_word) >> 32);
+ let fourth = ((0x0000_0000_FF00_0000usize & second_word) << 24) |
+ ((0x0000_0000_00FF_0000usize & second_word) << 16) |
+ ((0x0000_0000_0000_FF00usize & second_word) << 8) |
+ (0x0000_0000_0000_00FFusize & second_word);
++ // Safety: fn invariant used here
+ *dst = first;
+ *(dst.add(1)) = second;
+ *(dst.add(2)) = third;
+ *(dst.add(3)) = fourth;
+ }
+
++ /// Safety: dst must point to valid space for writing two `usize`s
+ #[inline(always)]
+ unsafe fn pack_alu(first: usize, second: usize, third: usize, fourth: usize, dst: *mut usize) {
+ let word = ((0x00FF0000_00000000usize & first) << 8) |
+ ((0x000000FF_00000000usize & first) << 16) |
+ ((0x00000000_00FF0000usize & first) << 24) |
+ ((0x00000000_000000FFusize & first) << 32) |
+ ((0x00FF0000_00000000usize & second) >> 24) |
+ ((0x000000FF_00000000usize & second) >> 16) |
+@@ -1139,67 +1420,80 @@ cfg_if! {
+ let second_word = ((0x00FF0000_00000000usize & third) << 8) |
+ ((0x000000FF_00000000usize & third) << 16) |
+ ((0x00000000_00FF0000usize & third) << 24) |
+ ((0x00000000_000000FFusize & third) << 32) |
+ ((0x00FF0000_00000000usize & fourth) >> 24) |
+ ((0x000000FF_00000000usize & fourth) >> 16) |
+ ((0x00000000_00FF0000usize & fourth) >> 8) |
+ (0x00000000_000000FFusize & fourth);
++ // Safety: fn invariant used here
+ *dst = word;
+ *(dst.add(1)) = second_word;
+ }
+ } else if #[cfg(all(target_endian = "big", target_pointer_width = "32"))] {
+ // Aligned ALU word, big-endian, 32-bit
+
++ /// Safety invariant: this is the amount of bytes consumed by
++ /// unpack_alu. This will be twice the pointer width, as it consumes two usizes.
++ /// This is also the number of bytes produced by pack_alu.
++ /// This is also the number of u16 code units produced/consumed by unpack_alu/pack_alu respectively.
+ pub const ALU_STRIDE_SIZE: usize = 8;
+
+ pub const MAX_STRIDE_SIZE: usize = 8;
+
++ // Safety invariant: this is the pointer width in bytes
+ pub const ALU_ALIGNMENT: usize = 4;
+
++ // Safety invariant: this is a mask for getting the bits of a pointer not aligned to ALU_ALIGNMENT
+ pub const ALU_ALIGNMENT_MASK: usize = 3;
+
++ /// Safety: dst must point to valid space for writing four `usize`s
+ #[inline(always)]
+ unsafe fn unpack_alu(word: usize, second_word: usize, dst: *mut usize) {
+ let first = ((0xFF00_0000usize & word) >> 8) |
+ ((0x00FF_0000usize & word) >> 16);
+ let second = ((0x0000_FF00usize & word) << 8) |
+ (0x0000_00FFusize & word);
+ let third = ((0xFF00_0000usize & second_word) >> 8) |
+ ((0x00FF_0000usize & second_word) >> 16);
+ let fourth = ((0x0000_FF00usize & second_word) << 8) |
+ (0x0000_00FFusize & second_word);
++ // Safety: fn invariant used here
+ *dst = first;
+ *(dst.add(1)) = second;
+ *(dst.add(2)) = third;
+ *(dst.add(3)) = fourth;
+ }
+
++ /// Safety: dst must point to valid space for writing two `usize`s
+ #[inline(always)]
+ unsafe fn pack_alu(first: usize, second: usize, third: usize, fourth: usize, dst: *mut usize) {
+ let word = ((0x00FF_0000usize & first) << 8) |
+ ((0x0000_00FFusize & first) << 16) |
+ ((0x00FF_0000usize & second) >> 8) |
+ (0x0000_00FFusize & second);
+ let second_word = ((0x00FF_0000usize & third) << 8) |
+ ((0x0000_00FFusize & third) << 16) |
+ ((0x00FF_0000usize & fourth) >> 8) |
+ (0x0000_00FFusize & fourth);
++ // Safety: fn invariant used here
+ *dst = word;
+ *(dst.add(1)) = second_word;
+ }
+ } else {
+ ascii_naive!(ascii_to_ascii, u8, u8);
+ ascii_naive!(ascii_to_basic_latin, u8, u16);
+ ascii_naive!(basic_latin_to_ascii, u16, u8);
+ }
+ }
+
+ cfg_if! {
++ // Safety-usable invariant: this counts the zeroes from the "first byte" of utf-8 data packed into a usize
++ // with the target endianness
+ if #[cfg(target_endian = "little")] {
+ #[allow(dead_code)]
+ #[inline(always)]
+ fn count_zeros(word: usize) -> u32 {
+ word.trailing_zeros()
+ }
+ } else {
+ #[allow(dead_code)]
+@@ -1207,208 +1501,272 @@ cfg_if! {
+ fn count_zeros(word: usize) -> u32 {
+ word.leading_zeros()
+ }
+ }
+ }
+
+ cfg_if! {
+ if #[cfg(all(feature = "simd-accel", target_endian = "little", target_arch = "disabled"))] {
++ /// Safety-usable invariant: Will return the value and position of the first non-ASCII byte in the slice in a Some if found.
++ /// In other words, the first element of the Some is always `> 127`
+ #[inline(always)]
+ pub fn validate_ascii(slice: &[u8]) -> Option<(u8, usize)> {
+ let src = slice.as_ptr();
+ let len = slice.len();
+ let mut offset = 0usize;
++ // Safety: if this check succeeds we're valid for reading/writing at least `stride` elements.
+ if SIMD_STRIDE_SIZE <= len {
+ let len_minus_stride = len - SIMD_STRIDE_SIZE;
+ loop {
++ // Safety: src at offset is valid for a `SIMD_STRIDE_SIZE` read
+ let simd = unsafe { load16_unaligned(src.add(offset)) };
+ if !simd_is_ascii(simd) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // This is `offset > len - SIMD_STRIDE_SIZE` which means we always have at least `SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ while offset < len {
+ let code_unit = slice[offset];
+ if code_unit > 127 {
++ // Safety: Safety-usable invariant upheld here
+ return Some((code_unit, offset));
+ }
+ offset += 1;
+ }
+ None
+ }
+ } else if #[cfg(all(feature = "simd-accel", target_feature = "sse2"))] {
++ /// Safety-usable invariant: will return Some() when it encounters non-ASCII, with the first element in the Some being
++ /// guaranteed to be non-ASCII (> 127), and the second being the offset where it is found
+ #[inline(always)]
+ pub fn validate_ascii(slice: &[u8]) -> Option<(u8, usize)> {
+ let src = slice.as_ptr();
+ let len = slice.len();
+ let mut offset = 0usize;
++ // Safety: if this check succeeds we're valid for reading at least `stride` elements.
+ if SIMD_STRIDE_SIZE <= len {
+ // First, process one unaligned vector
++ // Safety: src is valid for a `SIMD_STRIDE_SIZE` read
+ let simd = unsafe { load16_unaligned(src) };
+ let mask = mask_ascii(simd);
+ if mask != 0 {
+ offset = mask.trailing_zeros() as usize;
+ let non_ascii = unsafe { *src.add(offset) };
+ return Some((non_ascii, offset));
+ }
+ offset = SIMD_STRIDE_SIZE;
++ // Safety: Now that offset has changed we don't yet know how much it is valid for
+
+ // We have now seen 16 ASCII bytes. Let's guess that
+ // there will be enough more to justify more expense
+ // in the case of non-ASCII.
+ // Use aligned reads for the sake of old microachitectures.
++ // Safety: this correctly calculates the number of src_units that need to be read before the remaining list is aligned.
++ // This is by definition less than SIMD_ALIGNMENT, which is defined to be equal to SIMD_STRIDE_SIZE.
+ let until_alignment = unsafe { (SIMD_ALIGNMENT - ((src.add(offset) as usize) & SIMD_ALIGNMENT_MASK)) & SIMD_ALIGNMENT_MASK };
+ // This addition won't overflow, because even in the 32-bit PAE case the
+ // address space holds enough code that the slice length can't be that
+ // close to address space size.
+ // offset now equals SIMD_STRIDE_SIZE, hence times 3 below.
++ //
++ // Safety: if this check succeeds we're valid for reading at least `2 * SIMD_STRIDE_SIZE` elements plus `until_alignment`.
++ // The extra SIMD_STRIDE_SIZE in the condition is because `offset` is already `SIMD_STRIDE_SIZE`.
+ if until_alignment + (SIMD_STRIDE_SIZE * 3) <= len {
+ if until_alignment != 0 {
++ // Safety: this is safe to call since we're valid for this read (and more), and don't care about alignment
++ // This will copy over bytes that get decoded twice since it's not incrementing `offset` by SIMD_STRIDE_SIZE. This is fine.
+ let simd = unsafe { load16_unaligned(src.add(offset)) };
+ let mask = mask_ascii(simd);
+ if mask != 0 {
+ offset += mask.trailing_zeros() as usize;
+ let non_ascii = unsafe { *src.add(offset) };
+ return Some((non_ascii, offset));
+ }
+ offset += until_alignment;
+ }
++ // Safety: At this point we're valid for reading 2*SIMD_STRIDE_SIZE elements
++ // Safety: Now `offset` is aligned for `src`
+ let len_minus_stride_times_two = len - (SIMD_STRIDE_SIZE * 2);
+ loop {
++ // Safety: We were valid for this read, and were aligned.
+ let first = unsafe { load16_aligned(src.add(offset)) };
+ let second = unsafe { load16_aligned(src.add(offset + SIMD_STRIDE_SIZE)) };
+ if !simd_is_ascii(first | second) {
++ // Safety: mask_ascii produces a mask of all the high bits.
+ let mask_first = mask_ascii(first);
+ if mask_first != 0 {
++ // Safety: on little endian systems this will be the number of ascii bytes
++ // before the first non-ascii, i.e. valid for indexing src
++ // TODO SAFETY: What about big-endian systems?
+ offset += mask_first.trailing_zeros() as usize;
+ } else {
+ let mask_second = mask_ascii(second);
++ // Safety: on little endian systems this will be the number of ascii bytes
++ // before the first non-ascii, i.e. valid for indexing src
+ offset += SIMD_STRIDE_SIZE + mask_second.trailing_zeros() as usize;
+ }
++ // Safety: We know this is non-ASCII, and can uphold the safety-usable invariant here
+ let non_ascii = unsafe { *src.add(offset) };
++
+ return Some((non_ascii, offset));
+ }
+ offset += SIMD_STRIDE_SIZE * 2;
++ // Safety: This is `offset > len - 2 * SIMD_STRIDE_SIZE` which means we always have at least `2 * SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride_times_two {
+ break;
+ }
+ }
++ // Safety: if this check succeeds we're valid for reading at least `SIMD_STRIDE_SIZE`
+ if offset + SIMD_STRIDE_SIZE <= len {
+- let simd = unsafe { load16_aligned(src.add(offset)) };
+- let mask = mask_ascii(simd);
++ // Safety: We were valid for this read, and were aligned.
++ let simd = unsafe { load16_aligned(src.add(offset)) };
++ // Safety: mask_ascii produces a mask of all the high bits.
++ let mask = mask_ascii(simd);
+ if mask != 0 {
++ // Safety: on little endian systems this will be the number of ascii bytes
++ // before the first non-ascii, i.e. valid for indexing src
+ offset += mask.trailing_zeros() as usize;
+ let non_ascii = unsafe { *src.add(offset) };
++ // Safety: We know this is non-ASCII, and can uphold the safety-usable invariant here
+ return Some((non_ascii, offset));
+ }
+ offset += SIMD_STRIDE_SIZE;
+ }
+ } else {
++ // Safety: this is the unaligned branch
+ // At most two iterations, so unroll
++ // Safety: if this check succeeds we're valid for reading at least `SIMD_STRIDE_SIZE`
+ if offset + SIMD_STRIDE_SIZE <= len {
++ // Safety: We're valid for this read but must use an unaligned read
+ let simd = unsafe { load16_unaligned(src.add(offset)) };
+ let mask = mask_ascii(simd);
+ if mask != 0 {
+ offset += mask.trailing_zeros() as usize;
+ let non_ascii = unsafe { *src.add(offset) };
++ // Safety-usable invariant upheld here (same as above)
+ return Some((non_ascii, offset));
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: if this check succeeds we're valid for reading at least `SIMD_STRIDE_SIZE`
+ if offset + SIMD_STRIDE_SIZE <= len {
++ // Safety: We're valid for this read but must use an unaligned read
+ let simd = unsafe { load16_unaligned(src.add(offset)) };
+ let mask = mask_ascii(simd);
+ if mask != 0 {
+ offset += mask.trailing_zeros() as usize;
+ let non_ascii = unsafe { *src.add(offset) };
++ // Safety-usable invariant upheld here (same as above)
+ return Some((non_ascii, offset));
+ }
+ offset += SIMD_STRIDE_SIZE;
+ }
+ }
+ }
+ }
+ while offset < len {
++ // Safety: relies straightforwardly on the `len` invariant
+ let code_unit = unsafe { *(src.add(offset)) };
+ if code_unit > 127 {
++ // Safety-usable invariant upheld here
+ return Some((code_unit, offset));
+ }
+ offset += 1;
+ }
+ None
+ }
+ } else {
++ // Safety-usable invariant: returns byte index of first non-ascii byte
+ #[inline(always)]
+ fn find_non_ascii(word: usize, second_word: usize) -> Option<usize> {
+ let word_masked = word & ASCII_MASK;
+ let second_masked = second_word & ASCII_MASK;
+ if (word_masked | second_masked) == 0 {
++ // Both are ascii, invariant upheld
+ return None;
+ }
+ if word_masked != 0 {
+ let zeros = count_zeros(word_masked);
+- // `zeros` now contains 7 (for the seven bits of non-ASCII)
++ // `zeros` now contains 0 to 7 (for the seven bits of masked ASCII in little endian,
++ // or up to 7 bits of non-ASCII in big endian if the first byte is non-ASCII)
+ // plus 8 times the number of ASCII in text order before the
+ // non-ASCII byte in the little-endian case or 8 times the number of ASCII in
+ // text order before the non-ASCII byte in the big-endian case.
+ let num_ascii = (zeros >> 3) as usize;
++ // Safety-usable invariant upheld here
+ return Some(num_ascii);
+ }
+ let zeros = count_zeros(second_masked);
+- // `zeros` now contains 7 (for the seven bits of non-ASCII)
++ // `zeros` now contains 0 to 7 (for the seven bits of masked ASCII in little endian,
++ // or up to 7 bits of non-ASCII in big endian if the first byte is non-ASCII)
+ // plus 8 times the number of ASCII in text order before the
+ // non-ASCII byte in the little-endian case or 8 times the number of ASCII in
+ // text order before the non-ASCII byte in the big-endian case.
+ let num_ascii = (zeros >> 3) as usize;
++ // Safety-usable invariant upheld here
+ Some(ALU_ALIGNMENT + num_ascii)
+ }
+
++ /// Safety: `src` must be valid for the reads of two `usize`s
++ ///
++ /// Safety-usable invariant: will return byte index of first non-ascii byte
+ #[inline(always)]
+ unsafe fn validate_ascii_stride(src: *const usize) -> Option<usize> {
+ let word = *src;
+ let second_word = *(src.add(1));
+ find_non_ascii(word, second_word)
+ }
+
++ /// Safety-usable invariant: will return Some() when it encounters non-ASCII, with the first element in the Some being
++ /// guaranteed to be non-ASCII (> 127), and the second being the offset where it is found
+ #[cfg_attr(feature = "cargo-clippy", allow(cast_ptr_alignment))]
+ #[inline(always)]
+ pub fn validate_ascii(slice: &[u8]) -> Option<(u8, usize)> {
+ let src = slice.as_ptr();
+ let len = slice.len();
+ let mut offset = 0usize;
+ let mut until_alignment = (ALU_ALIGNMENT - ((src as usize) & ALU_ALIGNMENT_MASK)) & ALU_ALIGNMENT_MASK;
++ // Safety: If this check fails we're valid to read `until_alignment + ALU_STRIDE_SIZE` elements
+ if until_alignment + ALU_STRIDE_SIZE <= len {
+ while until_alignment != 0 {
+ let code_unit = slice[offset];
+ if code_unit > 127 {
++ // Safety-usable invairant upheld here
+ return Some((code_unit, offset));
+ }
+ offset += 1;
+ until_alignment -= 1;
+ }
++ // Safety: At this point we have read until_alignment elements and
++ // are valid for `ALU_STRIDE_SIZE` more.
+ let len_minus_stride = len - ALU_STRIDE_SIZE;
+ loop {
++ // Safety: we were valid for this read
+ let ptr = unsafe { src.add(offset) as *const usize };
+ if let Some(num_ascii) = unsafe { validate_ascii_stride(ptr) } {
+ offset += num_ascii;
++ // Safety-usable invairant upheld here using the invariant from validate_ascii_stride()
+ return Some((unsafe { *(src.add(offset)) }, offset));
+ }
+ offset += ALU_STRIDE_SIZE;
++ // Safety: This is `offset > ALU_STRIDE_SIZE` which means we always have at least `2 * ALU_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ while offset < len {
+ let code_unit = slice[offset];
+ if code_unit > 127 {
++ // Safety-usable invairant upheld here
+ return Some((code_unit, offset));
+ }
+ offset += 1;
+ }
+ None
+ }
+
+ }
+@@ -1423,70 +1781,88 @@ cfg_if! {
+ // vector reads without vector writes.
+
+ pub const ALU_STRIDE_SIZE: usize = 8;
+
+ pub const ALU_ALIGNMENT: usize = 4;
+
+ pub const ALU_ALIGNMENT_MASK: usize = 3;
+ } else {
++ // Safety: src points to two valid `usize`s, dst points to four valid `usize`s
+ #[inline(always)]
+ unsafe fn unpack_latin1_stride_alu(src: *const usize, dst: *mut usize) {
++ // Safety: src safety invariant used here
+ let word = *src;
+ let second_word = *(src.add(1));
++ // Safety: dst safety invariant passed down
+ unpack_alu(word, second_word, dst);
+ }
+
++ // Safety: src points to four valid `usize`s, dst points to two valid `usize`s
+ #[inline(always)]
+ unsafe fn pack_latin1_stride_alu(src: *const usize, dst: *mut usize) {
++ // Safety: src safety invariant used here
+ let first = *src;
+ let second = *(src.add(1));
+ let third = *(src.add(2));
+ let fourth = *(src.add(3));
++ // Safety: dst safety invariant passed down
+ pack_alu(first, second, third, fourth, dst);
+ }
+
++ // Safety: src points to two valid `usize`s, dst points to four valid `usize`s
+ #[inline(always)]
+ unsafe fn ascii_to_basic_latin_stride_alu(src: *const usize, dst: *mut usize) -> bool {
++ // Safety: src safety invariant used here
+ let word = *src;
+ let second_word = *(src.add(1));
+ // Check if the words contains non-ASCII
+ if (word & ASCII_MASK) | (second_word & ASCII_MASK) != 0 {
+ return false;
+ }
++ // Safety: dst safety invariant passed down
+ unpack_alu(word, second_word, dst);
+ true
+ }
+
++ // Safety: src points four valid `usize`s, dst points to two valid `usize`s
+ #[inline(always)]
+ unsafe fn basic_latin_to_ascii_stride_alu(src: *const usize, dst: *mut usize) -> bool {
++ // Safety: src safety invariant used here
+ let first = *src;
+ let second = *(src.add(1));
+ let third = *(src.add(2));
+ let fourth = *(src.add(3));
+ if (first & BASIC_LATIN_MASK) | (second & BASIC_LATIN_MASK) | (third & BASIC_LATIN_MASK) | (fourth & BASIC_LATIN_MASK) != 0 {
+ return false;
+ }
++ // Safety: dst safety invariant passed down
+ pack_alu(first, second, third, fourth, dst);
+ true
+ }
+
++ // Safety: src, dst both point to two valid `usize`s each
++ // Safety-usable invariant: Will return byte index of first non-ascii byte.
+ #[inline(always)]
+ unsafe fn ascii_to_ascii_stride(src: *const usize, dst: *mut usize) -> Option<usize> {
++ // Safety: src safety invariant used here
+ let word = *src;
+ let second_word = *(src.add(1));
++ // Safety: src safety invariant used here
+ *dst = word;
+ *(dst.add(1)) = second_word;
++ // Relies on safety-usable invariant here
+ find_non_ascii(word, second_word)
+ }
+
+ basic_latin_alu!(ascii_to_basic_latin, u8, u16, ascii_to_basic_latin_stride_alu);
+ basic_latin_alu!(basic_latin_to_ascii, u16, u8, basic_latin_to_ascii_stride_alu);
+ latin1_alu!(unpack_latin1, u8, u16, unpack_latin1_stride_alu);
+ latin1_alu!(pack_latin1, u16, u8, pack_latin1_stride_alu);
++ // Safety invariant upheld: ascii_to_ascii_stride will return byte index of first non-ascii if found
+ ascii_alu!(ascii_to_ascii, u8, u8, ascii_to_ascii_stride);
+ }
+ }
+
+ pub fn ascii_valid_up_to(bytes: &[u8]) -> usize {
+ match validate_ascii(bytes) {
+ None => bytes.len(),
+ Some((_, num_valid)) => num_valid,
+diff --git a/third_party/rust/encoding_rs/src/handles.rs b/third_party/rust/encoding_rs/src/handles.rs
+--- third_party/rust/encoding_rs/src/handles.rs
++++ third_party/rust/encoding_rs/src/handles.rs
+@@ -29,17 +29,17 @@ use crate::simd_funcs::*;
+ #[cfg(all(
+ feature = "simd-accel",
+ any(
+ target_feature = "sse2",
+ all(target_endian = "little", target_arch = "aarch64"),
+ all(target_endian = "little", target_feature = "neon")
+ )
+ ))]
+-use packed_simd::u16x8;
++use core::simd::u16x8;
+
+ use super::DecoderResult;
+ use super::EncoderResult;
+ use crate::ascii::*;
+ use crate::utf_8::convert_utf8_to_utf16_up_to_invalid;
+ use crate::utf_8::utf8_valid_up_to;
+
+ pub enum Space<T> {
+@@ -85,84 +85,100 @@ impl Endian for LittleEndian {
+ const OPPOSITE_ENDIAN: bool = false;
+
+ #[cfg(target_endian = "big")]
+ const OPPOSITE_ENDIAN: bool = true;
+ }
+
+ #[derive(Debug, Copy, Clone)]
+ struct UnalignedU16Slice {
++ // Safety invariant: ptr must be valid for reading 2*len bytes
+ ptr: *const u8,
+ len: usize,
+ }
+
+ impl UnalignedU16Slice {
++ /// Safety: ptr must be valid for reading 2*len bytes
+ #[inline(always)]
+ pub unsafe fn new(ptr: *const u8, len: usize) -> UnalignedU16Slice {
++ // Safety: field invariant passed up to caller here
+ UnalignedU16Slice { ptr, len }
+ }
+
+ #[inline(always)]
+ pub fn trim_last(&mut self) {
+ assert!(self.len > 0);
++ // Safety: invariant upheld here: a slice is still valid with a shorter len
+ self.len -= 1;
+ }
+
+ #[inline(always)]
+ pub fn at(&self, i: usize) -> u16 {
+ use core::mem::MaybeUninit;
+
+ assert!(i < self.len);
+ unsafe {
+ let mut u: MaybeUninit<u16> = MaybeUninit::uninit();
++ // Safety: i is at most len - 1, which works here
+ ::core::ptr::copy_nonoverlapping(self.ptr.add(i * 2), u.as_mut_ptr() as *mut u8, 2);
++ // Safety: valid read above lets us do this
+ u.assume_init()
+ }
+ }
+
+ #[cfg(feature = "simd-accel")]
+ #[inline(always)]
+ pub fn simd_at(&self, i: usize) -> u16x8 {
++ // Safety: i/len are on the scale of u16s, each one corresponds to 2 u8s
+ assert!(i + SIMD_STRIDE_SIZE / 2 <= self.len);
+ let byte_index = i * 2;
++ // Safety: load16_unaligned needs SIMD_STRIDE_SIZE=16 u8 elements to read,
++ // or 16/2 = 8 u16 elements to read.
++ // We have checked that we have at least that many above.
++
+ unsafe { to_u16_lanes(load16_unaligned(self.ptr.add(byte_index))) }
+ }
+
+ #[inline(always)]
+ pub fn len(&self) -> usize {
+ self.len
+ }
+
+ #[inline(always)]
+ pub fn tail(&self, from: usize) -> UnalignedU16Slice {
+ // XXX the return value should be restricted not to
+ // outlive self.
+ assert!(from <= self.len);
++ // Safety: This upholds the same invariant: `from` is in bounds and we're returning a shorter slice
+ unsafe { UnalignedU16Slice::new(self.ptr.add(from * 2), self.len - from) }
+ }
+
+ #[cfg(feature = "simd-accel")]
+ #[inline(always)]
+ pub fn copy_bmp_to<E: Endian>(&self, other: &mut [u16]) -> Option<(u16, usize)> {
+ assert!(self.len <= other.len());
+ let mut offset = 0;
++ // Safety: SIMD_STRIDE_SIZE is measured in bytes, whereas len is in u16s. We check we can
++ // munch SIMD_STRIDE_SIZE / 2 u16s which means we can write SIMD_STRIDE_SIZE u8s
+ if SIMD_STRIDE_SIZE / 2 <= self.len {
+ let len_minus_stride = self.len - SIMD_STRIDE_SIZE / 2;
+ loop {
+ let mut simd = self.simd_at(offset);
+ if E::OPPOSITE_ENDIAN {
+ simd = simd_byte_swap(simd);
+ }
++ // Safety: we have enough space on the other side to write this
+ unsafe {
+ store8_unaligned(other.as_mut_ptr().add(offset), simd);
+ }
+ if contains_surrogates(simd) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE / 2;
++ // Safety: This ensures we still have space for writing SIMD_STRIDE_SIZE u8s
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ while offset < self.len {
+ let unit = swap_if_opposite_endian::<E>(self.at(offset));
+ other[offset] = unit;
+@@ -231,33 +247,37 @@ fn copy_unaligned_basic_latin_to_ascii<E
+ #[cfg(feature = "simd-accel")]
+ #[inline(always)]
+ fn copy_unaligned_basic_latin_to_ascii<E: Endian>(
+ src: UnalignedU16Slice,
+ dst: &mut [u8],
+ ) -> CopyAsciiResult<usize, (u16, usize)> {
+ let len = ::core::cmp::min(src.len(), dst.len());
+ let mut offset = 0;
++ // Safety: This check ensures we are able to read/write at least SIMD_STRIDE_SIZE elements
+ if SIMD_STRIDE_SIZE <= len {
+ let len_minus_stride = len - SIMD_STRIDE_SIZE;
+ loop {
+ let mut first = src.simd_at(offset);
+ let mut second = src.simd_at(offset + (SIMD_STRIDE_SIZE / 2));
+ if E::OPPOSITE_ENDIAN {
+ first = simd_byte_swap(first);
+ second = simd_byte_swap(second);
+ }
+ if !simd_is_basic_latin(first | second) {
+ break;
+ }
+ let packed = simd_pack(first, second);
++ // Safety: We are able to write SIMD_STRIDE_SIZE elements in this iteration
+ unsafe {
+ store16_unaligned(dst.as_mut_ptr().add(offset), packed);
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE`, which ensures that we can write at least SIMD_STRIDE_SIZE elements
++ // in the next iteration
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ copy_unaligned_basic_latin_to_ascii_alu::<E>(src.tail(offset), &mut dst[offset..], offset)
+ }
+
+@@ -632,94 +652,106 @@ impl<'a> Utf16Destination<'a> {
+ #[inline(always)]
+ fn write_astral(&mut self, astral: u32) {
+ debug_assert!(astral > 0xFFFF);
+ debug_assert!(astral <= 0x10_FFFF);
+ self.write_code_unit((0xD7C0 + (astral >> 10)) as u16);
+ self.write_code_unit((0xDC00 + (astral & 0x3FF)) as u16);
+ }
+ #[inline(always)]
+- pub fn write_surrogate_pair(&mut self, high: u16, low: u16) {
++ fn write_surrogate_pair(&mut self, high: u16, low: u16) {
+ self.write_code_unit(high);
+ self.write_code_unit(low);
+ }
+ #[inline(always)]
+ fn write_big5_combination(&mut self, combined: u16, combining: u16) {
+ self.write_bmp_excl_ascii(combined);
+ self.write_bmp_excl_ascii(combining);
+ }
++ // Safety-usable invariant: CopyAsciiResult::GoOn will only contain bytes >=0x80
+ #[inline(always)]
+ pub fn copy_ascii_from_check_space_bmp<'b>(
+ &'b mut self,
+ source: &mut ByteSource,
+ ) -> CopyAsciiResult<(DecoderResult, usize, usize), (u8, Utf16BmpHandle<'b, 'a>)> {
+ let non_ascii_ret = {
+ let src_remaining = &source.slice[source.pos..];
+ let dst_remaining = &mut self.slice[self.pos..];
+ let (pending, length) = if dst_remaining.len() < src_remaining.len() {
+ (DecoderResult::OutputFull, dst_remaining.len())
+ } else {
+ (DecoderResult::InputEmpty, src_remaining.len())
+ };
++ // Safety: This function is documented as needing valid pointers for src/dest and len, which
++ // is true since we've passed the minumum length of the two
+ match unsafe {
+ ascii_to_basic_latin(src_remaining.as_ptr(), dst_remaining.as_mut_ptr(), length)
+ } {
+ None => {
+ source.pos += length;
+ self.pos += length;
+ return CopyAsciiResult::Stop((pending, source.pos, self.pos));
+ }
++ // Safety: the function is documented as returning bytes >=0x80 in the Some
+ Some((non_ascii, consumed)) => {
+ source.pos += consumed;
+ self.pos += consumed;
+ source.pos += 1; // +1 for non_ascii
++ // Safety: non-ascii bubbled out here
+ non_ascii
+ }
+ }
+ };
++ // Safety: non-ascii returned here
+ CopyAsciiResult::GoOn((non_ascii_ret, Utf16BmpHandle::new(self)))
+ }
++ // Safety-usable invariant: CopyAsciiResult::GoOn will only contain bytes >=0x80
+ #[inline(always)]
+ pub fn copy_ascii_from_check_space_astral<'b>(
+ &'b mut self,
+ source: &mut ByteSource,
+ ) -> CopyAsciiResult<(DecoderResult, usize, usize), (u8, Utf16AstralHandle<'b, 'a>)> {
+ let non_ascii_ret = {
+ let dst_len = self.slice.len();
+ let src_remaining = &source.slice[source.pos..];
+ let dst_remaining = &mut self.slice[self.pos..];
+ let (pending, length) = if dst_remaining.len() < src_remaining.len() {
+ (DecoderResult::OutputFull, dst_remaining.len())
+ } else {
+ (DecoderResult::InputEmpty, src_remaining.len())
+ };
++ // Safety: This function is documented as needing valid pointers for src/dest and len, which
++ // is true since we've passed the minumum length of the two
+ match unsafe {
+ ascii_to_basic_latin(src_remaining.as_ptr(), dst_remaining.as_mut_ptr(), length)
+ } {
+ None => {
+ source.pos += length;
+ self.pos += length;
+ return CopyAsciiResult::Stop((pending, source.pos, self.pos));
+ }
++ // Safety: the function is documented as returning bytes >=0x80 in the Some
+ Some((non_ascii, consumed)) => {
+ source.pos += consumed;
+ self.pos += consumed;
+ if self.pos + 1 < dst_len {
+ source.pos += 1; // +1 for non_ascii
++ // Safety: non-ascii bubbled out here
+ non_ascii
+ } else {
+ return CopyAsciiResult::Stop((
+ DecoderResult::OutputFull,
+ source.pos,
+ self.pos,
+ ));
+ }
+ }
+ }
+ };
++ // Safety: non-ascii returned here
+ CopyAsciiResult::GoOn((non_ascii_ret, Utf16AstralHandle::new(self)))
+ }
+ #[inline(always)]
+ pub fn copy_utf8_up_to_invalid_from(&mut self, source: &mut ByteSource) {
+ let src_remaining = &source.slice[source.pos..];
+ let dst_remaining = &mut self.slice[self.pos..];
+ let (read, written) = convert_utf8_to_utf16_up_to_invalid(src_remaining, dst_remaining);
+ source.pos += read;
+diff --git a/third_party/rust/encoding_rs/src/lib.rs b/third_party/rust/encoding_rs/src/lib.rs
+--- third_party/rust/encoding_rs/src/lib.rs
++++ third_party/rust/encoding_rs/src/lib.rs
+@@ -684,37 +684,26 @@
+ //! <tr><td>TIS-620</td><td>windows-874</td></tr>
+ //! </tbody>
+ //! </table>
+ //!
+ //! See the section [_UTF-16LE, UTF-16BE and Unicode Encoding Schemes_](#utf-16le-utf-16be-and-unicode-encoding-schemes)
+ //! for discussion about the UTF-16 family.
+
+ #![no_std]
+-#![cfg_attr(feature = "simd-accel", feature(core_intrinsics))]
++#![cfg_attr(feature = "simd-accel", feature(core_intrinsics, portable_simd))]
+
+ #[cfg(feature = "alloc")]
+ #[cfg_attr(test, macro_use)]
+ extern crate alloc;
+
+ extern crate core;
+ #[macro_use]
+ extern crate cfg_if;
+
+-#[cfg(all(
+- feature = "simd-accel",
+- any(
+- target_feature = "sse2",
+- all(target_endian = "little", target_arch = "aarch64"),
+- all(target_endian = "little", target_feature = "neon")
+- )
+-))]
+-#[macro_use(shuffle)]
+-extern crate packed_simd;
+-
+ #[cfg(feature = "serde")]
+ extern crate serde;
+
+ #[cfg(all(test, feature = "serde"))]
+ extern crate bincode;
+ #[cfg(all(test, feature = "serde"))]
+ #[macro_use]
+ extern crate serde_derive;
+diff --git a/third_party/rust/encoding_rs/src/mem.rs b/third_party/rust/encoding_rs/src/mem.rs
+--- third_party/rust/encoding_rs/src/mem.rs
++++ third_party/rust/encoding_rs/src/mem.rs
+@@ -111,16 +111,21 @@ macro_rules! by_unit_check_alu {
+ until_alignment -= 1;
+ }
+ if accu >= $bound {
+ return false;
+ }
+ }
+ let len_minus_stride = len - ALU_ALIGNMENT / unit_size;
+ if offset + (4 * (ALU_ALIGNMENT / unit_size)) <= len {
++ // Safety: the above check lets us perform 4 consecutive reads of
++ // length ALU_ALIGNMENT / unit_size. ALU_ALIGNMENT is the size of usize, and unit_size
++ // is the size of the `src` pointer, so this is equal to performing four usize reads.
++ //
++ // This invariant is upheld on all loop iterations
+ let len_minus_unroll = len - (4 * (ALU_ALIGNMENT / unit_size));
+ loop {
+ let unroll_accu = unsafe { *(src.add(offset) as *const usize) }
+ | unsafe {
+ *(src.add(offset + (ALU_ALIGNMENT / unit_size)) as *const usize)
+ }
+ | unsafe {
+ *(src.add(offset + (2 * (ALU_ALIGNMENT / unit_size)))
+@@ -129,22 +134,24 @@ macro_rules! by_unit_check_alu {
+ | unsafe {
+ *(src.add(offset + (3 * (ALU_ALIGNMENT / unit_size)))
+ as *const usize)
+ };
+ if unroll_accu & $mask != 0 {
+ return false;
+ }
+ offset += 4 * (ALU_ALIGNMENT / unit_size);
++ // Safety: this check lets us continue to perform the 4 reads earlier
+ if offset > len_minus_unroll {
+ break;
+ }
+ }
+ }
+ while offset <= len_minus_stride {
++ // Safety: the above check lets us perform one usize read.
+ accu |= unsafe { *(src.add(offset) as *const usize) };
+ offset += ALU_ALIGNMENT / unit_size;
+ }
+ }
+ }
+ for &unit in &buffer[offset..] {
+ accu |= unit as usize;
+ }
+@@ -184,16 +191,21 @@ macro_rules! by_unit_check_simd {
+ until_alignment -= 1;
+ }
+ if accu >= $bound {
+ return false;
+ }
+ }
+ let len_minus_stride = len - SIMD_STRIDE_SIZE / unit_size;
+ if offset + (4 * (SIMD_STRIDE_SIZE / unit_size)) <= len {
++ // Safety: the above check lets us perform 4 consecutive reads of
++ // length SIMD_STRIDE_SIZE / unit_size. SIMD_STRIDE_SIZE is the size of $simd_ty, and unit_size
++ // is the size of the `src` pointer, so this is equal to performing four $simd_ty reads.
++ //
++ // This invariant is upheld on all loop iterations
+ let len_minus_unroll = len - (4 * (SIMD_STRIDE_SIZE / unit_size));
+ loop {
+ let unroll_accu = unsafe { *(src.add(offset) as *const $simd_ty) }
+ | unsafe {
+ *(src.add(offset + (SIMD_STRIDE_SIZE / unit_size))
+ as *const $simd_ty)
+ }
+ | unsafe {
+@@ -203,23 +215,25 @@ macro_rules! by_unit_check_simd {
+ | unsafe {
+ *(src.add(offset + (3 * (SIMD_STRIDE_SIZE / unit_size)))
+ as *const $simd_ty)
+ };
+ if !$func(unroll_accu) {
+ return false;
+ }
+ offset += 4 * (SIMD_STRIDE_SIZE / unit_size);
++ // Safety: this check lets us continue to perform the 4 reads earlier
+ if offset > len_minus_unroll {
+ break;
+ }
+ }
+ }
+ let mut simd_accu = $splat;
+ while offset <= len_minus_stride {
++ // Safety: the above check lets us perform one $simd_ty read.
+ simd_accu = simd_accu | unsafe { *(src.add(offset) as *const $simd_ty) };
+ offset += SIMD_STRIDE_SIZE / unit_size;
+ }
+ if !$func(simd_accu) {
+ return false;
+ }
+ }
+ }
+@@ -229,18 +243,18 @@ macro_rules! by_unit_check_simd {
+ accu < $bound
+ }
+ };
+ }
+
+ cfg_if! {
+ if #[cfg(all(feature = "simd-accel", any(target_feature = "sse2", all(target_endian = "little", target_arch = "aarch64"), all(target_endian = "little", target_feature = "neon"))))] {
+ use crate::simd_funcs::*;
+- use packed_simd::u8x16;
+- use packed_simd::u16x8;
++ use core::simd::u8x16;
++ use core::simd::u16x8;
+
+ const SIMD_ALIGNMENT: usize = 16;
+
+ const SIMD_ALIGNMENT_MASK: usize = 15;
+
+ by_unit_check_simd!(is_ascii_impl, u8, u8x16::splat(0), u8x16, 0x80, simd_is_ascii);
+ by_unit_check_simd!(is_basic_latin_impl, u16, u16x8::splat(0), u16x8, 0x80, simd_is_basic_latin);
+ by_unit_check_simd!(is_utf16_latin1_impl, u16, u16x8::splat(0), u16x8, 0x100, simd_is_latin1);
+diff --git a/third_party/rust/encoding_rs/src/simd_funcs.rs b/third_party/rust/encoding_rs/src/simd_funcs.rs
+--- third_party/rust/encoding_rs/src/simd_funcs.rs
++++ third_party/rust/encoding_rs/src/simd_funcs.rs
+@@ -2,65 +2,84 @@
+ // file at the top-level directory of this distribution.
+ //
+ // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+ // https://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+ // <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your
+ // option. This file may not be copied, modified, or distributed
+ // except according to those terms.
+
+-use packed_simd::u16x8;
+-use packed_simd::u8x16;
+-use packed_simd::IntoBits;
++use any_all_workaround::all_mask16x8;
++use any_all_workaround::all_mask8x16;
++use any_all_workaround::any_mask16x8;
++use any_all_workaround::any_mask8x16;
++use core::simd::cmp::SimdPartialEq;
++use core::simd::cmp::SimdPartialOrd;
++use core::simd::mask16x8;
++use core::simd::mask8x16;
++use core::simd::simd_swizzle;
++use core::simd::u16x8;
++use core::simd::u8x16;
++use core::simd::ToBytes;
+
+ // TODO: Migrate unaligned access to stdlib code if/when the RFC
+ // https://github.com/rust-lang/rfcs/pull/1725 is implemented.
+
++/// Safety invariant: ptr must be valid for an unaligned read of 16 bytes
+ #[inline(always)]
+ pub unsafe fn load16_unaligned(ptr: *const u8) -> u8x16 {
+- let mut simd = ::core::mem::uninitialized();
+- ::core::ptr::copy_nonoverlapping(ptr, &mut simd as *mut u8x16 as *mut u8, 16);
+- simd
++ let mut simd = ::core::mem::MaybeUninit::<u8x16>::uninit();
++ ::core::ptr::copy_nonoverlapping(ptr, simd.as_mut_ptr() as *mut u8, 16);
++ // Safety: copied 16 bytes of initialized memory into this, it is now initialized
++ simd.assume_init()
+ }
+
++/// Safety invariant: ptr must be valid for an aligned-for-u8x16 read of 16 bytes
+ #[allow(dead_code)]
+ #[inline(always)]
+ pub unsafe fn load16_aligned(ptr: *const u8) -> u8x16 {
+ *(ptr as *const u8x16)
+ }
+
++/// Safety invariant: ptr must be valid for an unaligned store of 16 bytes
+ #[inline(always)]
+ pub unsafe fn store16_unaligned(ptr: *mut u8, s: u8x16) {
+ ::core::ptr::copy_nonoverlapping(&s as *const u8x16 as *const u8, ptr, 16);
+ }
+
++/// Safety invariant: ptr must be valid for an aligned-for-u8x16 store of 16 bytes
+ #[allow(dead_code)]
+ #[inline(always)]
+ pub unsafe fn store16_aligned(ptr: *mut u8, s: u8x16) {
+ *(ptr as *mut u8x16) = s;
+ }
+
++/// Safety invariant: ptr must be valid for an unaligned read of 16 bytes
+ #[inline(always)]
+ pub unsafe fn load8_unaligned(ptr: *const u16) -> u16x8 {
+- let mut simd = ::core::mem::uninitialized();
+- ::core::ptr::copy_nonoverlapping(ptr as *const u8, &mut simd as *mut u16x8 as *mut u8, 16);
+- simd
++ let mut simd = ::core::mem::MaybeUninit::<u16x8>::uninit();
++ ::core::ptr::copy_nonoverlapping(ptr as *const u8, simd.as_mut_ptr() as *mut u8, 16);
++ // Safety: copied 16 bytes of initialized memory into this, it is now initialized
++ simd.assume_init()
+ }
+
++/// Safety invariant: ptr must be valid for an aligned-for-u16x8 read of 16 bytes
+ #[allow(dead_code)]
+ #[inline(always)]
+ pub unsafe fn load8_aligned(ptr: *const u16) -> u16x8 {
+ *(ptr as *const u16x8)
+ }
+
++/// Safety invariant: ptr must be valid for an unaligned store of 16 bytes
+ #[inline(always)]
+ pub unsafe fn store8_unaligned(ptr: *mut u16, s: u16x8) {
+ ::core::ptr::copy_nonoverlapping(&s as *const u16x8 as *const u8, ptr as *mut u8, 16);
+ }
+
++/// Safety invariant: ptr must be valid for an aligned-for-u16x8 store of 16 bytes
+ #[allow(dead_code)]
+ #[inline(always)]
+ pub unsafe fn store8_aligned(ptr: *mut u16, s: u16x8) {
+ *(ptr as *mut u16x8) = s;
+ }
+
+ cfg_if! {
+ if #[cfg(all(target_feature = "sse2", target_arch = "x86_64"))] {
+@@ -95,234 +114,241 @@ cfg_if! {
+ pub fn simd_byte_swap(s: u16x8) -> u16x8 {
+ let left = s << 8;
+ let right = s >> 8;
+ left | right
+ }
+
+ #[inline(always)]
+ pub fn to_u16_lanes(s: u8x16) -> u16x8 {
+- s.into_bits()
++ u16x8::from_ne_bytes(s)
+ }
+
+ cfg_if! {
+ if #[cfg(target_feature = "sse2")] {
+
+ // Expose low-level mask instead of higher-level conclusion,
+ // because the non-ASCII case would perform less well otherwise.
++ // Safety-usable invariant: This returned value is whether each high bit is set
+ #[inline(always)]
+ pub fn mask_ascii(s: u8x16) -> i32 {
+ unsafe {
+- _mm_movemask_epi8(s.into_bits())
++ _mm_movemask_epi8(s.into())
+ }
+ }
+
+ } else {
+
+ }
+ }
+
+ cfg_if! {
+ if #[cfg(target_feature = "sse2")] {
+ #[inline(always)]
+ pub fn simd_is_ascii(s: u8x16) -> bool {
+ unsafe {
+- _mm_movemask_epi8(s.into_bits()) == 0
++ // Safety: We have cfg()d the correct platform
++ _mm_movemask_epi8(s.into()) == 0
+ }
+ }
+ } else if #[cfg(target_arch = "aarch64")]{
+ #[inline(always)]
+ pub fn simd_is_ascii(s: u8x16) -> bool {
+ unsafe {
+- vmaxvq_u8(s.into_bits()) < 0x80
++ // Safety: We have cfg()d the correct platform
++ vmaxvq_u8(s.into()) < 0x80
+ }
+ }
+ } else {
+ #[inline(always)]
+ pub fn simd_is_ascii(s: u8x16) -> bool {
+ // This optimizes better on ARM than
+ // the lt formulation.
+ let highest_ascii = u8x16::splat(0x7F);
+- !s.gt(highest_ascii).any()
++ !any_mask8x16(s.simd_gt(highest_ascii))
+ }
+ }
+ }
+
+ cfg_if! {
+ if #[cfg(target_feature = "sse2")] {
+ #[inline(always)]
+ pub fn simd_is_str_latin1(s: u8x16) -> bool {
+ if simd_is_ascii(s) {
+ return true;
+ }
+ let above_str_latin1 = u8x16::splat(0xC4);
+- s.lt(above_str_latin1).all()
++ s.simd_lt(above_str_latin1).all()
+ }
+ } else if #[cfg(target_arch = "aarch64")]{
+ #[inline(always)]
+ pub fn simd_is_str_latin1(s: u8x16) -> bool {
+ unsafe {
+- vmaxvq_u8(s.into_bits()) < 0xC4
++ // Safety: We have cfg()d the correct platform
++ vmaxvq_u8(s.into()) < 0xC4
+ }
+ }
+ } else {
+ #[inline(always)]
+ pub fn simd_is_str_latin1(s: u8x16) -> bool {
+ let above_str_latin1 = u8x16::splat(0xC4);
+- s.lt(above_str_latin1).all()
++ all_mask8x16(s.simd_lt(above_str_latin1))
+ }
+ }
+ }
+
+ cfg_if! {
+ if #[cfg(target_arch = "aarch64")]{
+ #[inline(always)]
+ pub fn simd_is_basic_latin(s: u16x8) -> bool {
+ unsafe {
+- vmaxvq_u16(s.into_bits()) < 0x80
++ // Safety: We have cfg()d the correct platform
++ vmaxvq_u16(s.into()) < 0x80
+ }
+ }
+
+ #[inline(always)]
+ pub fn simd_is_latin1(s: u16x8) -> bool {
+ unsafe {
+- vmaxvq_u16(s.into_bits()) < 0x100
++ // Safety: We have cfg()d the correct platform
++ vmaxvq_u16(s.into()) < 0x100
+ }
+ }
+ } else {
+ #[inline(always)]
+ pub fn simd_is_basic_latin(s: u16x8) -> bool {
+ let above_ascii = u16x8::splat(0x80);
+- s.lt(above_ascii).all()
++ all_mask16x8(s.simd_lt(above_ascii))
+ }
+
+ #[inline(always)]
+ pub fn simd_is_latin1(s: u16x8) -> bool {
+ // For some reason, on SSE2 this formulation
+ // seems faster in this case while the above
+ // function is better the other way round...
+ let highest_latin1 = u16x8::splat(0xFF);
+- !s.gt(highest_latin1).any()
++ !any_mask16x8(s.simd_gt(highest_latin1))
+ }
+ }
+ }
+
+ #[inline(always)]
+ pub fn contains_surrogates(s: u16x8) -> bool {
+ let mask = u16x8::splat(0xF800);
+ let surrogate_bits = u16x8::splat(0xD800);
+- (s & mask).eq(surrogate_bits).any()
++ any_mask16x8((s & mask).simd_eq(surrogate_bits))
+ }
+
+ cfg_if! {
+ if #[cfg(target_arch = "aarch64")]{
+ macro_rules! aarch64_return_false_if_below_hebrew {
+ ($s:ident) => ({
+ unsafe {
+- if vmaxvq_u16($s.into_bits()) < 0x0590 {
++ // Safety: We have cfg()d the correct platform
++ if vmaxvq_u16($s.into()) < 0x0590 {
+ return false;
+ }
+ }
+ })
+ }
+
+ macro_rules! non_aarch64_return_false_if_all {
+ ($s:ident) => ()
+ }
+ } else {
+ macro_rules! aarch64_return_false_if_below_hebrew {
+ ($s:ident) => ()
+ }
+
+ macro_rules! non_aarch64_return_false_if_all {
+ ($s:ident) => ({
+- if $s.all() {
++ if all_mask16x8($s) {
+ return false;
+ }
+ })
+ }
+ }
+ }
+
+ macro_rules! in_range16x8 {
+ ($s:ident, $start:expr, $end:expr) => {{
+ // SIMD sub is wrapping
+- ($s - u16x8::splat($start)).lt(u16x8::splat($end - $start))
++ ($s - u16x8::splat($start)).simd_lt(u16x8::splat($end - $start))
+ }};
+ }
+
+ #[inline(always)]
+ pub fn is_u16x8_bidi(s: u16x8) -> bool {
+ // We try to first quickly refute the RTLness of the vector. If that
+ // fails, we do the real RTL check, so in that case we end up wasting
+ // the work for the up-front quick checks. Even the quick-check is
+ // two-fold in order to return `false` ASAP if everything is below
+ // Hebrew.
+
+ aarch64_return_false_if_below_hebrew!(s);
+
+- let below_hebrew = s.lt(u16x8::splat(0x0590));
++ let below_hebrew = s.simd_lt(u16x8::splat(0x0590));
+
+ non_aarch64_return_false_if_all!(below_hebrew);
+
+- if (below_hebrew | in_range16x8!(s, 0x0900, 0x200F) | in_range16x8!(s, 0x2068, 0xD802)).all() {
++ if all_mask16x8(
++ below_hebrew | in_range16x8!(s, 0x0900, 0x200F) | in_range16x8!(s, 0x2068, 0xD802),
++ ) {
+ return false;
+ }
+
+ // Quick refutation failed. Let's do the full check.
+
+- (in_range16x8!(s, 0x0590, 0x0900)
+- | in_range16x8!(s, 0xFB1D, 0xFE00)
+- | in_range16x8!(s, 0xFE70, 0xFEFF)
+- | in_range16x8!(s, 0xD802, 0xD804)
+- | in_range16x8!(s, 0xD83A, 0xD83C)
+- | s.eq(u16x8::splat(0x200F))
+- | s.eq(u16x8::splat(0x202B))
+- | s.eq(u16x8::splat(0x202E))
+- | s.eq(u16x8::splat(0x2067)))
+- .any()
++ any_mask16x8(
++ (in_range16x8!(s, 0x0590, 0x0900)
++ | in_range16x8!(s, 0xFB1D, 0xFE00)
++ | in_range16x8!(s, 0xFE70, 0xFEFF)
++ | in_range16x8!(s, 0xD802, 0xD804)
++ | in_range16x8!(s, 0xD83A, 0xD83C)
++ | s.simd_eq(u16x8::splat(0x200F))
++ | s.simd_eq(u16x8::splat(0x202B))
++ | s.simd_eq(u16x8::splat(0x202E))
++ | s.simd_eq(u16x8::splat(0x2067))),
++ )
+ }
+
+ #[inline(always)]
+ pub fn simd_unpack(s: u8x16) -> (u16x8, u16x8) {
+- unsafe {
+- let first: u8x16 = shuffle!(
+- s,
+- u8x16::splat(0),
+- [0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23]
+- );
+- let second: u8x16 = shuffle!(
+- s,
+- u8x16::splat(0),
+- [8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31]
+- );
+- (first.into_bits(), second.into_bits())
+- }
++ let first: u8x16 = simd_swizzle!(
++ s,
++ u8x16::splat(0),
++ [0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23]
++ );
++ let second: u8x16 = simd_swizzle!(
++ s,
++ u8x16::splat(0),
++ [8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31]
++ );
++ (u16x8::from_ne_bytes(first), u16x8::from_ne_bytes(second))
+ }
+
+ cfg_if! {
+ if #[cfg(target_feature = "sse2")] {
+ #[inline(always)]
+ pub fn simd_pack(a: u16x8, b: u16x8) -> u8x16 {
+ unsafe {
+- _mm_packus_epi16(a.into_bits(), b.into_bits()).into_bits()
++ // Safety: We have cfg()d the correct platform
++ _mm_packus_epi16(a.into(), b.into()).into()
+ }
+ }
+ } else {
+ #[inline(always)]
+ pub fn simd_pack(a: u16x8, b: u16x8) -> u8x16 {
+- unsafe {
+- let first: u8x16 = a.into_bits();
+- let second: u8x16 = b.into_bits();
+- shuffle!(
+- first,
+- second,
+- [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]
+- )
+- }
++ let first: u8x16 = a.to_ne_bytes();
++ let second: u8x16 = b.to_ne_bytes();
++ simd_swizzle!(
++ first,
++ second,
++ [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]
++ )
+ }
+ }
+ }
+
+ #[cfg(test)]
+ mod tests {
+ use super::*;
+ use alloc::vec::Vec;
+diff --git a/third_party/rust/encoding_rs/src/single_byte.rs b/third_party/rust/encoding_rs/src/single_byte.rs
+--- third_party/rust/encoding_rs/src/single_byte.rs
++++ third_party/rust/encoding_rs/src/single_byte.rs
+@@ -48,16 +48,19 @@ impl SingleByteDecoder {
+ CopyAsciiResult::GoOn((mut non_ascii, mut handle)) => 'middle: loop {
+ // Start non-boilerplate
+ //
+ // Since the non-ASCIIness of `non_ascii` is hidden from
+ // the optimizer, it can't figure out that it's OK to
+ // statically omit the bound check when accessing
+ // `[u16; 128]` with an index
+ // `non_ascii as usize - 0x80usize`.
++ //
++ // Safety: `non_ascii` is a u8 byte >=0x80, from the invariants
++ // on Utf8Destination::copy_ascii_from_check_space_bmp()
+ let mapped =
+ unsafe { *(self.table.get_unchecked(non_ascii as usize - 0x80usize)) };
+ // let mapped = self.table[non_ascii as usize - 0x80usize];
+ if mapped == 0u16 {
+ return (
+ DecoderResult::Malformed(1, 0),
+ source.consumed(),
+ handle.written(),
+@@ -146,82 +149,103 @@ impl SingleByteDecoder {
+ dst: &mut [u16],
+ _last: bool,
+ ) -> (DecoderResult, usize, usize) {
+ let (pending, length) = if dst.len() < src.len() {
+ (DecoderResult::OutputFull, dst.len())
+ } else {
+ (DecoderResult::InputEmpty, src.len())
+ };
++ // Safety invariant: converted <= length. Quite often we have `converted < length`
++ // which will be separately marked.
+ let mut converted = 0usize;
+ 'outermost: loop {
+ match unsafe {
++ // Safety: length is the minimum length, `src/dst + x` will always be valid for reads/writes of `len - x`
+ ascii_to_basic_latin(
+ src.as_ptr().add(converted),
+ dst.as_mut_ptr().add(converted),
+ length - converted,
+ )
+ } {
+ None => {
+ return (pending, length, length);
+ }
+ Some((mut non_ascii, consumed)) => {
++ // Safety invariant: `converted <= length` upheld, since this can only consume
++ // up to `length - converted` bytes.
++ //
++ // Furthermore, in this context,
++ // we can assume `converted < length` since this branch is only ever hit when
++ // ascii_to_basic_latin fails to consume the entire slice
+ converted += consumed;
+ 'middle: loop {
+ // `converted` doesn't count the reading of `non_ascii` yet.
+ // Since the non-ASCIIness of `non_ascii` is hidden from
+ // the optimizer, it can't figure out that it's OK to
+ // statically omit the bound check when accessing
+ // `[u16; 128]` with an index
+ // `non_ascii as usize - 0x80usize`.
++ //
++ // Safety: We can rely on `non_ascii` being between `0x80` and `0xFF` due to
++ // the invariants of `ascii_to_basic_latin()`, and our table has enough space for that.
+ let mapped =
+ unsafe { *(self.table.get_unchecked(non_ascii as usize - 0x80usize)) };
+ // let mapped = self.table[non_ascii as usize - 0x80usize];
+ if mapped == 0u16 {
+ return (
+ DecoderResult::Malformed(1, 0),
+ converted + 1, // +1 `for non_ascii`
+ converted,
+ );
+ }
+ unsafe {
+- // The bound check has already been performed
++ // Safety: As mentioned above, `converted < length`
+ *(dst.get_unchecked_mut(converted)) = mapped;
+ }
++ // Safety: `converted <= length` upheld, since `converted < length` before this
+ converted += 1;
+ // Next, handle ASCII punctuation and non-ASCII without
+ // going back to ASCII acceleration. Non-ASCII scripts
+ // use ASCII punctuation, so this avoid going to
+ // acceleration just for punctuation/space and then
+ // failing. This is a significant boost to non-ASCII
+ // scripts.
+ // TODO: Split out Latin converters without this part
+ // this stuff makes Latin script-conversion slower.
+ if converted == length {
+ return (pending, length, length);
+ }
++ // Safety: We are back to `converted < length` because of the == above
++ // and can perform this check.
+ let mut b = unsafe { *(src.get_unchecked(converted)) };
++ // Safety: `converted < length` is upheld for this loop
+ 'innermost: loop {
+ if b > 127 {
+ non_ascii = b;
+ continue 'middle;
+ }
+ // Testing on Haswell says that we should write the
+ // byte unconditionally instead of trying to unread it
+ // to make it part of the next SIMD stride.
+ unsafe {
++ // Safety: `converted < length` is true for this loop
+ *(dst.get_unchecked_mut(converted)) = u16::from(b);
+ }
++ // Safety: We are now at `converted <= length`. We should *not* `continue`
++ // the loop without reverifying
+ converted += 1;
+ if b < 60 {
+ // We've got punctuation
+ if converted == length {
+ return (pending, length, length);
+ }
++ // Safety: we're back to `converted <= length` because of the == above
+ b = unsafe { *(src.get_unchecked(converted)) };
++ // Safety: The loop continues as `converted < length`
+ continue 'innermost;
+ }
+ // We've got markup or ASCII text
+ continue 'outermost;
+ }
+ }
+ }
+ }
+@@ -229,16 +253,18 @@ impl SingleByteDecoder {
+ }
+
+ pub fn latin1_byte_compatible_up_to(&self, buffer: &[u8]) -> usize {
+ let mut bytes = buffer;
+ let mut total = 0;
+ loop {
+ if let Some((non_ascii, offset)) = validate_ascii(bytes) {
+ total += offset;
++ // Safety: We can rely on `non_ascii` being between `0x80` and `0xFF` due to
++ // the invariants of `ascii_to_basic_latin()`, and our table has enough space for that.
+ let mapped = unsafe { *(self.table.get_unchecked(non_ascii as usize - 0x80usize)) };
+ if mapped != u16::from(non_ascii) {
+ return total;
+ }
+ total += 1;
+ bytes = &bytes[offset + 1..];
+ } else {
+ return total;
+@@ -379,64 +405,89 @@ impl SingleByteEncoder {
+ dst: &mut [u8],
+ _last: bool,
+ ) -> (EncoderResult, usize, usize) {
+ let (pending, length) = if dst.len() < src.len() {
+ (EncoderResult::OutputFull, dst.len())
+ } else {
+ (EncoderResult::InputEmpty, src.len())
+ };
++ // Safety invariant: converted <= length. Quite often we have `converted < length`
++ // which will be separately marked.
+ let mut converted = 0usize;
+ 'outermost: loop {
+ match unsafe {
++ // Safety: length is the minimum length, `src/dst + x` will always be valid for reads/writes of `len - x`
+ basic_latin_to_ascii(
+ src.as_ptr().add(converted),
+ dst.as_mut_ptr().add(converted),
+ length - converted,
+ )
+ } {
+ None => {
+ return (pending, length, length);
+ }
+ Some((mut non_ascii, consumed)) => {
++ // Safety invariant: `converted <= length` upheld, since this can only consume
++ // up to `length - converted` bytes.
++ //
++ // Furthermore, in this context,
++ // we can assume `converted < length` since this branch is only ever hit when
++ // ascii_to_basic_latin fails to consume the entire slice
+ converted += consumed;
+ 'middle: loop {
+ // `converted` doesn't count the reading of `non_ascii` yet.
+ match self.encode_u16(non_ascii) {
+ Some(byte) => {
+ unsafe {
++ // Safety: we're allowed this access since `converted < length`
+ *(dst.get_unchecked_mut(converted)) = byte;
+ }
+ converted += 1;
++ // `converted <= length` now
+ }
+ None => {
+ // At this point, we need to know if we
+ // have a surrogate.
+ let high_bits = non_ascii & 0xFC00u16;
+ if high_bits == 0xD800u16 {
+ // high surrogate
+ if converted + 1 == length {
+ // End of buffer. This surrogate is unpaired.
+ return (
+ EncoderResult::Unmappable('\u{FFFD}'),
+ converted + 1, // +1 `for non_ascii`
+ converted,
+ );
+ }
++ // Safety: convered < length from outside the match, and `converted + 1 != length`,
++ // So `converted + 1 < length` as well. We're in bounds
+ let second =
+ u32::from(unsafe { *src.get_unchecked(converted + 1) });
+ if second & 0xFC00u32 != 0xDC00u32 {
+ return (
+ EncoderResult::Unmappable('\u{FFFD}'),
+ converted + 1, // +1 `for non_ascii`
+ converted,
+ );
+ }
+ // The next code unit is a low surrogate.
+ let astral: char = unsafe {
++ // Safety: We can rely on non_ascii being 0xD800-0xDBFF since the high bits are 0xD800
++ // Then, (non_ascii << 10 - 0xD800 << 10) becomes between (0 to 0x3FF) << 10, which is between
++ // 0x400 to 0xffc00. Adding the 0x10000 gives a range of 0x10400 to 0x10fc00. Subtracting the 0xDC00
++ // gives 0x2800 to 0x102000
++ // The second term is between 0xDC00 and 0xDFFF from the check above. This gives a maximum
++ // possible range of (0x10400 + 0xDC00) to (0x102000 + 0xDFFF) which is 0x1E000 to 0x10ffff.
++ // This is in range.
++ //
++ // From a Unicode principles perspective this can also be verified as we have checked that `non_ascii` is a high surrogate
++ // (0xD800..=0xDBFF), and that `second` is a low surrogate (`0xDC00..=0xDFFF`), and we are applying reverse of the UTC16 transformation
++ // algorithm <https://en.wikipedia.org/wiki/UTF-16#Code_points_from_U+010000_to_U+10FFFF>, by applying the high surrogate - 0xD800 to the
++ // high ten bits, and the low surrogate - 0xDc00 to the low ten bits, and then adding 0x10000
+ ::core::char::from_u32_unchecked(
+ (u32::from(non_ascii) << 10) + second
+ - (((0xD800u32 << 10) - 0x1_0000u32) + 0xDC00u32),
+ )
+ };
+ return (
+ EncoderResult::Unmappable(astral),
+ converted + 2, // +2 `for non_ascii` and `second`
+@@ -451,52 +502,63 @@ impl SingleByteEncoder {
+ converted,
+ );
+ }
+ return (
+ EncoderResult::unmappable_from_bmp(non_ascii),
+ converted + 1, // +1 `for non_ascii`
+ converted,
+ );
++ // Safety: This branch diverges, so no need to uphold invariants on `converted`
+ }
+ }
+ // Next, handle ASCII punctuation and non-ASCII without
+ // going back to ASCII acceleration. Non-ASCII scripts
+ // use ASCII punctuation, so this avoid going to
+ // acceleration just for punctuation/space and then
+ // failing. This is a significant boost to non-ASCII
+ // scripts.
+ // TODO: Split out Latin converters without this part
+ // this stuff makes Latin script-conversion slower.
+ if converted == length {
+ return (pending, length, length);
+ }
++ // Safety: we're back to `converted < length` due to the == above and can perform
++ // the unchecked read
+ let mut unit = unsafe { *(src.get_unchecked(converted)) };
+ 'innermost: loop {
++ // Safety: This loop always begins with `converted < length`, see
++ // the invariant outside and the comment on the continue below
+ if unit > 127 {
+ non_ascii = unit;
+ continue 'middle;
+ }
+ // Testing on Haswell says that we should write the
+ // byte unconditionally instead of trying to unread it
+ // to make it part of the next SIMD stride.
+ unsafe {
++ // Safety: Can rely on converted < length
+ *(dst.get_unchecked_mut(converted)) = unit as u8;
+ }
+ converted += 1;
++ // `converted <= length` here
+ if unit < 60 {
+ // We've got punctuation
+ if converted == length {
+ return (pending, length, length);
+ }
++ // Safety: `converted < length` due to the == above. The read is safe.
+ unit = unsafe { *(src.get_unchecked(converted)) };
++ // Safety: This only happens if `converted < length`, maintaining it
+ continue 'innermost;
+ }
+ // We've got markup or ASCII text
+ continue 'outermost;
++ // Safety: All other routes to here diverge so the continue is the only
++ // way to run the innermost loop.
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+diff --git a/third_party/rust/encoding_rs/src/x_user_defined.rs b/third_party/rust/encoding_rs/src/x_user_defined.rs
+--- third_party/rust/encoding_rs/src/x_user_defined.rs
++++ third_party/rust/encoding_rs/src/x_user_defined.rs
+@@ -9,22 +9,23 @@
+
+ use super::*;
+ use crate::handles::*;
+ use crate::variant::*;
+
+ cfg_if! {
+ if #[cfg(feature = "simd-accel")] {
+ use simd_funcs::*;
+- use packed_simd::u16x8;
++ use core::simd::u16x8;
++ use core::simd::cmp::SimdPartialOrd;
+
+ #[inline(always)]
+ fn shift_upper(unpacked: u16x8) -> u16x8 {
+ let highest_ascii = u16x8::splat(0x7F);
+- unpacked + unpacked.gt(highest_ascii).select(u16x8::splat(0xF700), u16x8::splat(0)) }
++ unpacked + unpacked.simd_gt(highest_ascii).select(u16x8::splat(0xF700), u16x8::splat(0)) }
+ } else {
+ }
+ }
+
+ pub struct UserDefinedDecoder;
+
+ impl UserDefinedDecoder {
+ pub fn new() -> VariantDecoder {
+@@ -111,20 +112,25 @@ impl UserDefinedDecoder {
+ } else {
+ (DecoderResult::InputEmpty, src.len())
+ };
+ // Not bothering with alignment
+ let tail_start = length & !0xF;
+ let simd_iterations = length >> 4;
+ let src_ptr = src.as_ptr();
+ let dst_ptr = dst.as_mut_ptr();
++ // Safety: This is `for i in 0..length / 16`
+ for i in 0..simd_iterations {
++ // Safety: This is in bounds: length is the minumum valid length for both src/dst
++ // and i ranges to length/16, so multiplying by 16 will always be `< length` and can do
++ // a 16 byte read
+ let input = unsafe { load16_unaligned(src_ptr.add(i * 16)) };
+ let (first, second) = simd_unpack(input);
+ unsafe {
++ // Safety: same as above, but this is two consecutive 8-byte reads
+ store8_unaligned(dst_ptr.add(i * 16), shift_upper(first));
+ store8_unaligned(dst_ptr.add((i * 16) + 8), shift_upper(second));
+ }
+ }
+ let src_tail = &src[tail_start..length];
+ let dst_tail = &mut dst[tail_start..length];
+ src_tail
+ .iter()
diff --git a/www/librewolf/files/patch-rust-1.78.0-arm b/www/librewolf/files/patch-rust-1.78.0-arm
new file mode 100644
index 000000000000..8bef1af506f3
--- /dev/null
+++ b/www/librewolf/files/patch-rust-1.78.0-arm
@@ -0,0 +1,60 @@
+Relevant bug report: https://bugzilla.mozilla.org/show_bug.cgi?id=1882291
+
+
+diff --git a/Cargo.lock b/Cargo.lock
+--- Cargo.lock
++++ Cargo.lock
+@@ -4580,6 +4580,7 @@ dependencies = [
+ version = "0.3.0"
+ dependencies = [
+ "libc",
++ "version_check",
+ ]
+
+ [[package]]
+diff --git a/gfx/qcms/Cargo.toml b/gfx/qcms/Cargo.toml
+--- gfx/qcms/Cargo.toml
++++ gfx/qcms/Cargo.toml
+@@ -18,5 +18,8 @@
+ iccv4-enabled = []
+ cmyk = []
+
+ [dependencies]
+ libc = {version = "0.2", optional = true }
++
++[build-dependencies]
++version_check = "0.9"
+diff --git a/gfx/qcms/build.rs b/gfx/qcms/build.rs
+new file mode 100644
+--- /dev/null
++++ gfx/qcms/build.rs
+@@ -0,0 +1,7 @@
++extern crate version_check as rustc;
++
++fn main() {
++ if rustc::is_min_version("1.78.0").unwrap_or(false) {
++ println!("cargo:rustc-cfg=stdsimd_split");
++ }
++}
+diff --git a/gfx/qcms/src/lib.rs b/gfx/qcms/src/lib.rs
+--- gfx/qcms/src/lib.rs
++++ gfx/qcms/src/lib.rs
+@@ -5,13 +5,15 @@
+ #![allow(non_camel_case_types)]
+ #![allow(non_snake_case)]
+ #![allow(non_upper_case_globals)]
+ // These are needed for the neon SIMD code and can be removed once the MSRV supports the
+ // instrinsics we use
+-#![cfg_attr(feature = "neon", feature(stdsimd))]
++#![cfg_attr(all(stdsimd_split, target_arch = "arm", feature = "neon"), feature(stdarch_arm_neon_intrinsics))]
++#![cfg_attr(all(stdsimd_split, target_arch = "arm", feature = "neon"), feature(stdarch_arm_feature_detection))]
++#![cfg_attr(all(not(stdsimd_split), target_arch = "arm", feature = "neon"), feature(stdsimd))]
+ #![cfg_attr(
+- feature = "neon",
++ all(target_arch = "arm", feature = "neon"),
+ feature(arm_target_feature, raw_ref_op)
+
+ )]
+
+ /// These values match the Rendering Intent values from the ICC spec
+
diff --git a/www/librtcdcpp/Makefile b/www/librtcdcpp/Makefile
index a4f02f46b08c..120ddac8e198 100644
--- a/www/librtcdcpp/Makefile
+++ b/www/librtcdcpp/Makefile
@@ -10,6 +10,8 @@ LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE.md
BROKEN= build breaks with fmt-9.1.0, see https://github.com/chadnickbok/librtcdcpp/issues/44
+DEPRECATED= Dead upstream fails to build
+EXPIRATION_DATE=2024-05-31
BUILD_DEPENDS= spdlog>0:devel/spdlog
LIB_DEPENDS= libnice.so:net-im/libnice \
diff --git a/www/links/Makefile b/www/links/Makefile
index d52d5f3f0090..9238a6d50b11 100644
--- a/www/links/Makefile
+++ b/www/links/Makefile
@@ -1,6 +1,6 @@
PORTNAME= links
PORTVERSION= 2.29
-PORTREVISION= 4
+PORTREVISION= 5
PORTEPOCH= 1
CATEGORIES= www
MASTER_SITES= http://links.twibright.com/download/
diff --git a/www/linux-chrome/Makefile b/www/linux-chrome/Makefile
new file mode 100644
index 000000000000..ab4d12d21345
--- /dev/null
+++ b/www/linux-chrome/Makefile
@@ -0,0 +1,58 @@
+PORTNAME= chrome
+PORTVERSION= ${CHROME_VER}
+PORTREVISION= 1
+CATEGORIES= www linux
+MASTER_SITES= https://dl.google.com/linux/chrome/rpm/stable/x86_64/
+DISTNAME= google-${PORTNAME}-stable-${CHROME_VER}-${CHROME_BUILD}.x86_64
+PKGNAMEPREFIX= linux-
+
+MAINTAINER= chromium@FreeBSD.org
+COMMENT= Google web browser based on WebKit
+WWW= https://www.chromium.org/Home
+
+RUN_DEPENDS= linux-rl9-wget>0:ftp/linux-rl9-wget \
+ linux-rl9-gnupg2>0:security/linux-rl9-gnupg \
+ update-mime-database:misc/shared-mime-info
+
+USES= cpe desktop-file-utils gnome linux:rl9 shared-mime-info shebangfix
+USE_LINUX= alsalib alsa-plugins-oss alsa-plugins-pulseaudio ca-certificates \
+ cups-libs curl dbuslibs dri ffmpeg-libs gstreamer1-libav \
+ gtk3 libunistring nss p11-kit sqlite3 xorglibs
+ONLY_FOR_ARCHS= amd64
+
+SHEBANG_FILES= opt/google/chrome/google-chrome
+
+NO_BUILD= yes
+NO_WRKSUBDIR= yes
+
+EXTRACT_SUFX?= .rpm
+EXTRACT_SUFX_aarch64?= .aarch64${EXTRACT_SUFX}
+EXTRACT_SUFX_amd64?= .x86_64${EXTRACT_SUFX}
+SRC_SUFX?= .src${EXTRACT_SUFX}
+
+REINPLACE_ARGS= -i ""
+
+CHROME_VER?= 121.0.6167.160
+CHROME_BUILD?= 1
+
+DATADIR= ${PREFIX}/share/${PORTNAME}
+DOCSDIR= ${PREFIX}/share/doc/${PORTNAME}
+
+OPTIONS_DEFINE= DOCS
+
+SUB_FILES= google-chrome
+
+post-extract:
+ @${REINPLACE_CMD} -e 's|/usr/bin/google-chrome-stable|${LOCALBASE}/bin/google-chrome|' \
+ ${WRKSRC}/usr/share/applications/google-chrome.desktop
+
+do-install:
+ ${INSTALL_SCRIPT} ${WRKDIR}/google-chrome ${STAGEDIR}${PREFIX}/bin
+ cd ${WRKSRC}/opt/google && ${CP} -r chrome ${STAGEDIR}${PREFIX}/share
+ cd ${WRKSRC}/usr/share && ${COPYTREE_SHARE} \* ${STAGEDIR}${PREFIX}/share
+.for sz in 16 24 32 48 64 128 256
+ ${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/${sz}x${sz}/apps
+ ${CP} ${STAGEDIR}${DATADIR}/product_logo_${sz}.png ${STAGEDIR}${PREFIX}/share/icons/hicolor/${sz}x${sz}/apps/google-chrome.png
+.endfor
+
+.include <bsd.port.mk>
diff --git a/www/linux-chrome/distinfo b/www/linux-chrome/distinfo
new file mode 100644
index 000000000000..ab7664678cc5
--- /dev/null
+++ b/www/linux-chrome/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1707749505
+SHA256 (google-chrome-stable-121.0.6167.160-1.x86_64.rpm) = b9917ae1c7d5599e0db295c1abc3c311161577210d84c110d78ff729ecb9560f
+SIZE (google-chrome-stable-121.0.6167.160-1.x86_64.rpm) = 108535521
diff --git a/www/linux-chrome/files/google-chrome.in b/www/linux-chrome/files/google-chrome.in
new file mode 100644
index 000000000000..557e7ca74a3d
--- /dev/null
+++ b/www/linux-chrome/files/google-chrome.in
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+get_pa_sock_path()
+{
+ PA_SOCK_PATH=$(sockstat | awk -v me=$(whoami) -F'[ \t]+' '
+ $1 == me && $2 == "pulseaudio" && $6 ~ /native/ {
+ print $6;
+ exit 0
+ }'
+ )
+}
+
+get_pa_sock_path
+[ -S "$PA_SOCK_PATH" ] && export PULSE_SERVER=unix:$PA_SOCK_PATH && export PULSE_COOKIE="~/.config/pulse/cookie"
+
+export CHROME_PATH="%%DATADIR%%/chrome"
+export CHROME_WRAPPER="$(readlink -f "$0")"
+export LIBGL_DRI3_DISABLE=1
+
+exec "$CHROME_PATH" --no-sandbox --no-zygote --test-type --v=0 --password-store=basic "$@"
diff --git a/www/linux-chrome/pkg-descr b/www/linux-chrome/pkg-descr
new file mode 100644
index 000000000000..68ef078870ec
--- /dev/null
+++ b/www/linux-chrome/pkg-descr
@@ -0,0 +1,6 @@
+Chrome is an open-source browser project that aims to build a safer,
+faster, and more stable way for all users to experience the web.
+
+The Chrome website contains design documents, architecture overviews,
+testing information, and more to help you learn to build and work with
+the Chrome source code.
diff --git a/www/linux-chrome/pkg-plist b/www/linux-chrome/pkg-plist
new file mode 100644
index 000000000000..15aa4887f88b
--- /dev/null
+++ b/www/linux-chrome/pkg-plist
@@ -0,0 +1,104 @@
+bin/google-chrome
+share/appdata/google-chrome.appdata.xml
+share/applications/google-chrome.desktop
+%%DATADIR%%/CHROME_VERSION_EXTRA
+%%DATADIR%%/MEIPreload/manifest.json
+%%DATADIR%%/MEIPreload/preloaded_data.pb
+%%DATADIR%%/WidevineCdm/LICENSE
+%%DATADIR%%/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so
+%%DATADIR%%/WidevineCdm/manifest.json
+%%DATADIR%%/chrome
+%%DATADIR%%/chrome-management-service
+%%DATADIR%%/chrome-sandbox
+%%DATADIR%%/chrome_100_percent.pak
+%%DATADIR%%/chrome_200_percent.pak
+%%DATADIR%%/chrome_crashpad_handler
+%%DATADIR%%/default-app-block
+%%DATADIR%%/default_apps/external_extensions.json
+%%DATADIR%%/google-chrome
+%%DATADIR%%/icudtl.dat
+%%DATADIR%%/libEGL.so
+%%DATADIR%%/libGLESv2.so
+%%DATADIR%%/liboptimization_guide_internal.so
+%%DATADIR%%/libqt5_shim.so
+%%DATADIR%%/libqt6_shim.so
+%%DATADIR%%/libvk_swiftshader.so
+%%DATADIR%%/libvulkan.so.1
+%%DATADIR%%/locales/af.pak
+%%DATADIR%%/locales/am.pak
+%%DATADIR%%/locales/ar.pak
+%%DATADIR%%/locales/bg.pak
+%%DATADIR%%/locales/bn.pak
+%%DATADIR%%/locales/ca.pak
+%%DATADIR%%/locales/cs.pak
+%%DATADIR%%/locales/da.pak
+%%DATADIR%%/locales/de.pak
+%%DATADIR%%/locales/el.pak
+%%DATADIR%%/locales/en-GB.pak
+%%DATADIR%%/locales/en-US.pak
+%%DATADIR%%/locales/es-419.pak
+%%DATADIR%%/locales/es.pak
+%%DATADIR%%/locales/et.pak
+%%DATADIR%%/locales/fa.pak
+%%DATADIR%%/locales/fi.pak
+%%DATADIR%%/locales/fil.pak
+%%DATADIR%%/locales/fr.pak
+%%DATADIR%%/locales/gu.pak
+%%DATADIR%%/locales/he.pak
+%%DATADIR%%/locales/hi.pak
+%%DATADIR%%/locales/hr.pak
+%%DATADIR%%/locales/hu.pak
+%%DATADIR%%/locales/id.pak
+%%DATADIR%%/locales/it.pak
+%%DATADIR%%/locales/ja.pak
+%%DATADIR%%/locales/kn.pak
+%%DATADIR%%/locales/ko.pak
+%%DATADIR%%/locales/lt.pak
+%%DATADIR%%/locales/lv.pak
+%%DATADIR%%/locales/ml.pak
+%%DATADIR%%/locales/mr.pak
+%%DATADIR%%/locales/ms.pak
+%%DATADIR%%/locales/nb.pak
+%%DATADIR%%/locales/nl.pak
+%%DATADIR%%/locales/pl.pak
+%%DATADIR%%/locales/pt-BR.pak
+%%DATADIR%%/locales/pt-PT.pak
+%%DATADIR%%/locales/ro.pak
+%%DATADIR%%/locales/ru.pak
+%%DATADIR%%/locales/sk.pak
+%%DATADIR%%/locales/sl.pak
+%%DATADIR%%/locales/sr.pak
+%%DATADIR%%/locales/sv.pak
+%%DATADIR%%/locales/sw.pak
+%%DATADIR%%/locales/ta.pak
+%%DATADIR%%/locales/te.pak
+%%DATADIR%%/locales/th.pak
+%%DATADIR%%/locales/tr.pak
+%%DATADIR%%/locales/uk.pak
+%%DATADIR%%/locales/ur.pak
+%%DATADIR%%/locales/vi.pak
+%%DATADIR%%/locales/zh-CN.pak
+%%DATADIR%%/locales/zh-TW.pak
+%%DATADIR%%/product_logo_128.png
+%%DATADIR%%/product_logo_16.png
+%%DATADIR%%/product_logo_24.png
+%%DATADIR%%/product_logo_256.png
+%%DATADIR%%/product_logo_32.png
+%%DATADIR%%/product_logo_32.xpm
+%%DATADIR%%/product_logo_48.png
+%%DATADIR%%/product_logo_64.png
+%%DATADIR%%/resources.pak
+%%DATADIR%%/v8_context_snapshot.bin
+%%DATADIR%%/vk_swiftshader_icd.json
+%%DATADIR%%/xdg-mime
+%%DATADIR%%/xdg-settings
+share/gnome-control-center/default-apps/google-chrome.xml
+share/icons/hicolor/128x128/apps/google-chrome.png
+share/icons/hicolor/16x16/apps/google-chrome.png
+share/icons/hicolor/24x24/apps/google-chrome.png
+share/icons/hicolor/256x256/apps/google-chrome.png
+share/icons/hicolor/32x32/apps/google-chrome.png
+share/icons/hicolor/48x48/apps/google-chrome.png
+share/icons/hicolor/64x64/apps/google-chrome.png
+share/man/man1/google-chrome-stable.1.gz
+share/man/man1/google-chrome.1.gz
diff --git a/www/linux-rl9-libnghttp2/Makefile b/www/linux-rl9-libnghttp2/Makefile
new file mode 100644
index 000000000000..4b09fb0f6068
--- /dev/null
+++ b/www/linux-rl9-libnghttp2/Makefile
@@ -0,0 +1,23 @@
+PORTNAME= libnghttp2
+PORTVERSION= 1.43.0
+DISTVERSIONSUFFIX= -5.el9_3.1
+CATEGORIES= www devel linux
+
+MAINTAINER= emulation@FreeBSD.org
+COMMENT= HTTP/2.0 C Library (Rocky Linux ${LINUX_DIST_VER})
+WWW= https://nghttp2.org/ \
+ https://github.com/nghttp2/nghttp2
+
+LICENSE= MIT
+
+USES= linux:rl9
+USE_LDCONFIG= yes
+USE_LINUX= icu
+USE_LINUX_RPM= yes
+
+LIB_DISTNAMES= ${PORTNAME}${PKGNAMESUFFIX}-${DISTVERSIONFULL}
+SRC_DISTFILES= nghttp2-${DISTVERSIONFULL}${SRC_SUFX}:SOURCE
+
+DESCR= ${.CURDIR}/../${PORTNAME}/pkg-descr
+
+.include <bsd.port.mk>
diff --git a/www/linux-rl9-libnghttp2/distinfo b/www/linux-rl9-libnghttp2/distinfo
new file mode 100644
index 000000000000..c1b415682914
--- /dev/null
+++ b/www/linux-rl9-libnghttp2/distinfo
@@ -0,0 +1,7 @@
+TIMESTAMP = 1707754379
+SHA256 (rocky/l/libnghttp2-1.43.0-5.el9_3.1.aarch64.rpm) = 7e1f1bab734a2d6f7e01e0d20ac7fddaaf64bb1b8c8beb78d7f78270cb5ccd3c
+SIZE (rocky/l/libnghttp2-1.43.0-5.el9_3.1.aarch64.rpm) = 72916
+SHA256 (rocky/l/libnghttp2-1.43.0-5.el9_3.1.x86_64.rpm) = fff8c687acf6662d48fd267ebad37750e2dd015a821a2c1f8d54a47282ff7462
+SIZE (rocky/l/libnghttp2-1.43.0-5.el9_3.1.x86_64.rpm) = 73737
+SHA256 (rocky/n/nghttp2-1.43.0-5.el9_3.1.src.rpm) = 45ae8fd2dad2adaf775eb8eaab1835b2b2099c2412ff3d01b916d08cf0930c78
+SIZE (rocky/n/nghttp2-1.43.0-5.el9_3.1.src.rpm) = 3993941
diff --git a/www/linux-rl9-libnghttp2/pkg-plist.aarch64 b/www/linux-rl9-libnghttp2/pkg-plist.aarch64
new file mode 100644
index 000000000000..7d5506d98520
--- /dev/null
+++ b/www/linux-rl9-libnghttp2/pkg-plist.aarch64
@@ -0,0 +1,4 @@
+usr/lib/.build-id/09/4ba311831c03c27d6c64b497e5f0fd69bf97df
+usr/lib64/libnghttp2.so.14
+usr/lib64/libnghttp2.so.14.20.1
+usr/share/licenses/libnghttp2/COPYING
diff --git a/www/linux-rl9-libnghttp2/pkg-plist.amd64 b/www/linux-rl9-libnghttp2/pkg-plist.amd64
new file mode 100644
index 000000000000..22c783ec30b6
--- /dev/null
+++ b/www/linux-rl9-libnghttp2/pkg-plist.amd64
@@ -0,0 +1,4 @@
+usr/lib/.build-id/09/cc864ee59a86b20136c712562f526f1a3ef766
+usr/lib64/libnghttp2.so.14
+usr/lib64/libnghttp2.so.14.20.1
+usr/share/licenses/libnghttp2/COPYING
diff --git a/www/loco/Makefile b/www/loco/Makefile
index 3c2fb7b784f8..d806b65c9aec 100644
--- a/www/loco/Makefile
+++ b/www/loco/Makefile
@@ -1,6 +1,6 @@
PORTNAME= loco
DISTVERSION= g20240225
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= www devel
PKGNAMESUFFIX= -web-framework
diff --git a/www/luakit-devel/Makefile b/www/luakit-devel/Makefile
index 06248d7af171..542a86c39496 100644
--- a/www/luakit-devel/Makefile
+++ b/www/luakit-devel/Makefile
@@ -1,7 +1,6 @@
PORTNAME= luakit
-DISTVERSION= 2.3.3-0
-DISTVERSIONSUFFIX= -g68e4ffc
-PORTREVISION= 3
+DISTVERSION= 2.3.6-7
+DISTVERSIONSUFFIX= -g0bc0e39
PORTEPOCH= 2
CATEGORIES= www
PKGNAMESUFFIX= -devel
@@ -13,17 +12,13 @@ WWW= https://luakit.github.io
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/COPYING.GPLv3
-BUILD_DEPENDS= help2man:misc/help2man \
- ${LUA_MODLIBDIR}/lfs.so:devel/luafilesystem@${LUA_FLAVOR}
-LIB_DEPENDS= libdbus-glib-1.so:devel/dbus-glib \
- libharfbuzz.so:print/harfbuzz \
+BUILD_DEPENDS= ${LUA_MODLIBDIR}/lfs.so:devel/luafilesystem@${LUA_FLAVOR}
+LIB_DEPENDS= libharfbuzz.so:print/harfbuzz \
libsoup-2.4.so:devel/libsoup \
- libfreetype.so:print/freetype2 \
- libwebkit2gtk-4.0.so:www/webkit2-gtk3 \
- libfontconfig.so:x11-fonts/fontconfig
+ libwebkit2gtk-4.0.so:www/webkit2-gtk3
RUN_DEPENDS= ${LUA_PKGNAMEPREFIX}luafilesystem>=0:devel/luafilesystem@${LUA_FLAVOR}
-USES= compiler:c++11-lang desktop-file-utils gettext-runtime gmake \
+USES= compiler:c++11-lang desktop-file-utils gmake \
gnome lua:51 pkgconfig sqlite
USE_GITHUB= yes
GH_ACCOUNT= luakit
@@ -37,6 +32,7 @@ PORTDATA= *
PORTDOCS= *
OPTIONS_DEFINE= DOCS LUAJIT
+OPTIONS_DEFAULT= LUAJIT
LUAJIT_DESC= Use the Just-In-Time compiler for lua
LUAJIT_LIB_DEPENDS= libluajit-5.1.so:lang/luajit
LUAJIT_MAKE_ARGS= USE_LUAJIT=1
@@ -44,9 +40,9 @@ LUAJIT_MAKE_ARGS_OFF= USE_LUAJIT=0
post-extract:
@${REINPLACE_CMD} -e \
- 's|share/man|man| ; s|luakit/doc|doc/luakit| ; \
+ 's|luakit/doc|doc/luakit| ; \
s|/etc/xdg|${PREFIX}/etc/xdg| ; \
- s|gnu99|gnu11| ; s|-ggdb||' \
+ s|-ggdb||' \
${WRKSRC}/config.mk
@${REINPLACE_CMD} -e 's|bin/env lua|&${LUA_VER_STR}|' \
${WRKSRC}/build-utils/gentokens.lua
diff --git a/www/luakit-devel/distinfo b/www/luakit-devel/distinfo
index 4227a0757f63..7c837b0275eb 100644
--- a/www/luakit-devel/distinfo
+++ b/www/luakit-devel/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1673789816
-SHA256 (luakit-luakit-2.3.3-0-g68e4ffc_GH0.tar.gz) = 7576866112a7a1c3e3162d5e83025088959b8979147e823e87f573997278cbcb
-SIZE (luakit-luakit-2.3.3-0-g68e4ffc_GH0.tar.gz) = 507448
+TIMESTAMP = 1711344330
+SHA256 (luakit-luakit-2.3.6-7-g0bc0e39_GH0.tar.gz) = 4a95e772ae1870a8c10fdd6d606636e29a4c7b9bc190f1040df012152a0826fd
+SIZE (luakit-luakit-2.3.6-7-g0bc0e39_GH0.tar.gz) = 511284
diff --git a/www/luakit-devel/files/patch-config.mk b/www/luakit-devel/files/patch-config.mk
new file mode 100644
index 000000000000..75fd733c4427
--- /dev/null
+++ b/www/luakit-devel/files/patch-config.mk
@@ -0,0 +1,15 @@
+--- config.mk.orig 2024-03-25 05:36:59 UTC
++++ config.mk
+@@ -98,10 +98,10 @@ PKGS += gthread-2.0
+ # Packages required to build luakit.
+ PKGS += gtk+-3.0
+ PKGS += gthread-2.0
+-PKGS += webkit2gtk-4.1
++PKGS += webkit2gtk-4.0
+ PKGS += sqlite3
+ PKGS += $(LUA_PKG_NAME)
+-PKGS += javascriptcoregtk-4.1
++PKGS += javascriptcoregtk-4.0
+
+ # Check user has correct packages installed (and found by pkg-config).
+ PKGS_OK := $(shell $(PKG_CONFIG) --print-errors --exists $(PKGS) && echo 1)
diff --git a/www/lux/Makefile b/www/lux/Makefile
index 166f97805be9..39179e07d5f6 100644
--- a/www/lux/Makefile
+++ b/www/lux/Makefile
@@ -1,7 +1,7 @@
PORTNAME= lux
DISTVERSIONPREFIX= v
DISTVERSION= 0.23.0
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= www
MAINTAINER= lcook@FreeBSD.org
diff --git a/www/lychee/Makefile b/www/lychee/Makefile
index bde0f7f6771d..017c2524e6de 100644
--- a/www/lychee/Makefile
+++ b/www/lychee/Makefile
@@ -1,7 +1,7 @@
PORTNAME= lychee
DISTVERSIONPREFIX= v
DISTVERSION= 0.13.0
-PORTREVISION= 8
+PORTREVISION= 9
CATEGORIES= www net
MAINTAINER= pizzamig@FreeBSD.org
diff --git a/www/lynx-current/Makefile b/www/lynx-current/Makefile
index 8833e79f4901..b7cb34d555ec 100644
--- a/www/lynx-current/Makefile
+++ b/www/lynx-current/Makefile
@@ -1,6 +1,5 @@
PORTNAME= lynx
-PORTVERSION= 2.9.0d12
-PORTREVISION= 1
+PORTVERSION= 2.9.1
CATEGORIES= www
MASTER_SITES= http://invisible-mirror.net/archives/lynx/tarballs/ \
ftp://ftp.invisible-island.net/lynx/tarballs/
diff --git a/www/lynx-current/distinfo b/www/lynx-current/distinfo
index 1203abcac003..648ff9172a58 100644
--- a/www/lynx-current/distinfo
+++ b/www/lynx-current/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1686666300
-SHA256 (lynx2.9.0dev.12.tar.bz2) = a6455b159d00776d8ec1051285c972dc1f0c552d0571a0cff02a23ec146ee8e5
-SIZE (lynx2.9.0dev.12.tar.bz2) = 2762036
+TIMESTAMP = 1714658452
+SHA256 (lynx2.9.1.tar.bz2) = a6db9b22c20df435df3757925a505531ce9a514d134742e935d71aa5c41339c5
+SIZE (lynx2.9.1.tar.bz2) = 2783698
diff --git a/www/lynx-current/files/patch-makefile.in b/www/lynx-current/files/patch-makefile.in
index fa6f397b3221..3b178a406f14 100644
--- a/www/lynx-current/files/patch-makefile.in
+++ b/www/lynx-current/files/patch-makefile.in
@@ -1,15 +1,15 @@
---- makefile.in.orig 2023-06-13 14:30:49 UTC
+--- makefile.in.orig 2024-05-02 14:02:41 UTC
+++ makefile.in
-@@ -327,7 +327,7 @@ install-doc : $(DOCDIR) $(HELPDIR)
- cd $(HELPDIR) && rm -f $$name ;\
- r= ;\
- test "$(LN_S)" = "ln -s" || r=`echo $(helpdir)|sed -e "s%[^/]\+%..%g" -e "s%^.%%"`; \
-- cd $(HELPDIR) && ( $(LN_S) $$r$(docdir)/$$name . || cp $(DOCDIR)/$$name . );\
-+ cd $(HELPDIR) && ( $(LN_S) ../doc/lynx/$$name . || cp $(DOCDIR)/$$name . );\
+@@ -329,7 +329,7 @@ install-doc : $(DOCDIR) $(HELPDIR)
+ echo ".. relative: $$r"; \
+ for name in COPYING COPYHEADER; do \
+ cd $(HELPDIR) && rm -f $$name;\
+- cd $(HELPDIR) && ( $(LN_S) $$r/$$name $$name || cp $(DOCDIR)/$$name . );\
++ cd $(HELPDIR) && ( $(LN_S) ../doc/lynx/$$name $$name || cp $(DOCDIR)/$$name . );\
done';\
- $(SHELL) -c 'set -x; \
- case `id|sed -e "s/(.*//"` in \
-@@ -405,14 +405,10 @@ install-help : htmlized_cfg help_files.sed $(HELPDIR)
+ $(SHELL) -c '\
+ i=`id|sed -e "s/(.*//"`; \
+@@ -409,14 +409,10 @@ install-help : htmlized_cfg help_files.sed $(HELPDIR)
if test "$(COMPRESS_PROG)" != "" ; then \
(cd $(HELPDIR) && $(COMPRESS_PROG) $$files ) \
fi'
@@ -28,18 +28,18 @@
@ECHO_CC@sed -e '/^HELPFILE:http/s!^!#!' \
-e '/^#HELPFILE:file/s!#!!' \
$(SYSCONFDIR)/lynx.tmp | \
-@@ -420,8 +416,8 @@ install-help : htmlized_cfg help_files.sed $(HELPDIR)
+@@ -424,8 +420,8 @@ install-help : htmlized_cfg help_files.sed $(HELPDIR)
$(SHELL) $(scripts_dir)/cfg_path.sh lynx_doc $(helpdir) | \
sed -e '/^HELPFILE:file/s!$$!$(COMPRESS_EXT)!' \
-e '/^HELPFILE:file/s!$(COMPRESS_EXT)$(COMPRESS_EXT)$$!$(COMPRESS_EXT)!' \
- >$(SYSCONFDIR)/lynx.cfg ;\
- chmod 644 $(SYSCONFDIR)/lynx.cfg ;\
-+ >$(SYSCONFDIR)/lynx.cfg.sample; \
-+ chmod 644 $(SYSCONFDIR)/lynx.cfg.sample; \
++ >$(SYSCONFDIR)/lynx.cfg.sample ;\
++ chmod 644 $(SYSCONFDIR)/lynx.cfg.sample ;\
rm -f $(SYSCONFDIR)/lynx.tmp
LYHelp.h : help_files.sed $(srcdir)/LYHelp.hin
-@@ -444,17 +440,15 @@ cfg_defs.h : $(scripts_dir)/cfg_defs.sh $(scripts_dir)
+@@ -448,17 +444,15 @@ install-cfg : $(SYSCONFDIR)
@$(SHELL) -c 'SHELL=$(SHELL) FGREP="$(FGREP)" $(SHELL) $(scripts_dir)/cfg_defs.sh $(srcdir)'
install-cfg : $(SYSCONFDIR)
diff --git a/www/lynx-current/pkg-plist b/www/lynx-current/pkg-plist
index e82e068cc47a..ebb2de2f84e7 100644
--- a/www/lynx-current/pkg-plist
+++ b/www/lynx-current/pkg-plist
@@ -55,6 +55,7 @@ bin/lynx
%%PORTDOCS%%%%DOCSDIR%%/samples/lynxdump
%%PORTDOCS%%%%DOCSDIR%%/samples/mailcap
%%PORTDOCS%%%%DOCSDIR%%/samples/mailto-form.pl
+%%PORTDOCS%%%%DOCSDIR%%/samples/mhtml-tool
%%PORTDOCS%%%%DOCSDIR%%/samples/midnight.lss
%%PORTDOCS%%%%DOCSDIR%%/samples/mild-colors.lss
%%PORTDOCS%%%%DOCSDIR%%/samples/mime.types
diff --git a/www/lynx/Makefile b/www/lynx/Makefile
index 5ddf23ecd2eb..b9a07252a75b 100644
--- a/www/lynx/Makefile
+++ b/www/lynx/Makefile
@@ -1,6 +1,6 @@
PORTNAME= lynx
PORTVERSION= 2.8.9.1
-PORTREVISION= 2
+PORTREVISION= 3
PORTEPOCH= 1
CATEGORIES= www
MASTER_SITES= http://invisible-mirror.net/archives/lynx/tarballs/ \
diff --git a/www/lzr/Makefile b/www/lzr/Makefile
index 21c3c3bbce5f..4ed1c248e85b 100644
--- a/www/lzr/Makefile
+++ b/www/lzr/Makefile
@@ -1,7 +1,7 @@
PORTNAME= lzr
DISTVERSIONPREFIX= v
DISTVERSION= 1
-PORTREVISION= 6
+PORTREVISION= 7
CATEGORIES= www
MAINTAINER= yuri@FreeBSD.org
diff --git a/www/mattermost-server/Makefile b/www/mattermost-server/Makefile
index 27cbc5203ed2..6d361986c695 100644
--- a/www/mattermost-server/Makefile
+++ b/www/mattermost-server/Makefile
@@ -1,5 +1,5 @@
PORTNAME= mattermost
-PORTVERSION= 8.1.12
+PORTVERSION= 9.5.5
CATEGORIES= www
MASTER_SITES= LOCAL/decke
PKGNAMESUFFIX= -server
@@ -17,11 +17,14 @@ ONLY_FOR_ARCHS= aarch64 amd64 armv6 armv7 i386
RUN_DEPENDS= ${LOCALBASE}/share/certs/ca-root-nss.crt:security/ca_root_nss \
mattermost-webapp>=${PORTVERSION}:www/mattermost-webapp
-USES= go:modules tar:xz
+USES= go:1.22,modules tar:xz
USE_RC_SUBR= mattermostd
GO_TARGET= ./cmd/mattermost ./scripts/config_generator
-GO_BUILDFLAGS= -ldflags="-X github.com/mattermost/mattermost/server/public/model.BuildNumber=${PORTVERSION}"
+GO_BUILDFLAGS= -ldflags=" \
+ -X github.com/mattermost/mattermost/server/public/model.BuildNumber=${PORTVERSION} \
+ -X github.com/mattermost/mattermost/server/public/model.BuildHashEnterprise=none \
+ -X github.com/mattermost/mattermost/server/public/model.BuildEnterpriseReady=false"
WRKSRC_SUBDIR= server
WWWDIR= ${PREFIX}/www/mattermost
diff --git a/www/mattermost-server/distinfo b/www/mattermost-server/distinfo
index 4a4c7068ec05..2de162a3e8fb 100644
--- a/www/mattermost-server/distinfo
+++ b/www/mattermost-server/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1713884988
-SHA256 (mattermost-8.1.12.tar.xz) = f4f89d118657a2fd3b3b6c389f9806f69934a6c42b3fafd55f454d42e93dea7b
-SIZE (mattermost-8.1.12.tar.xz) = 137143560
+TIMESTAMP = 1716146796
+SHA256 (mattermost-9.5.5.tar.xz) = 91f84ee17f840c3a6d4742afa58f16b61dca49df3329d7dbbb764ad449d946fd
+SIZE (mattermost-9.5.5.tar.xz) = 104038592
diff --git a/www/mattermost-server/pkg-plist b/www/mattermost-server/pkg-plist
index 5fe1d1d7bdf5..f083b7ba3098 100644
--- a/www/mattermost-server/pkg-plist
+++ b/www/mattermost-server/pkg-plist
@@ -2,25 +2,66 @@ bin/mattermostd
%%ETCDIR%%/config.json.sample
%%WWWDIR%%/fonts/OFL.txt
%%WWWDIR%%/fonts/nunito-bold.ttf
+%%WWWDIR%%/i18n/am.json
+%%WWWDIR%%/i18n/be.json
%%WWWDIR%%/i18n/bg.json
+%%WWWDIR%%/i18n/bn.json
+%%WWWDIR%%/i18n/br.json
+%%WWWDIR%%/i18n/ca.json
+%%WWWDIR%%/i18n/cs.json
+%%WWWDIR%%/i18n/da.json
%%WWWDIR%%/i18n/de.json
+%%WWWDIR%%/i18n/el.json
%%WWWDIR%%/i18n/en.json
%%WWWDIR%%/i18n/en_AU.json
%%WWWDIR%%/i18n/es.json
+%%WWWDIR%%/i18n/et.json
+%%WWWDIR%%/i18n/eu.json
%%WWWDIR%%/i18n/fa.json
+%%WWWDIR%%/i18n/fi.json
+%%WWWDIR%%/i18n/fil.json
%%WWWDIR%%/i18n/fr.json
+%%WWWDIR%%/i18n/fy.json
+%%WWWDIR%%/i18n/gl.json
+%%WWWDIR%%/i18n/gu.json
+%%WWWDIR%%/i18n/he.json
+%%WWWDIR%%/i18n/hi.json
+%%WWWDIR%%/i18n/hr.json
%%WWWDIR%%/i18n/hu.json
+%%WWWDIR%%/i18n/id.json
+%%WWWDIR%%/i18n/is.json
%%WWWDIR%%/i18n/it.json
%%WWWDIR%%/i18n/ja.json
+%%WWWDIR%%/i18n/ka.json
+%%WWWDIR%%/i18n/kk.json
+%%WWWDIR%%/i18n/kk_Latn.json
+%%WWWDIR%%/i18n/km.json
%%WWWDIR%%/i18n/ko.json
+%%WWWDIR%%/i18n/la.json
+%%WWWDIR%%/i18n/lo.json
+%%WWWDIR%%/i18n/lt.json
+%%WWWDIR%%/i18n/lv.json
+%%WWWDIR%%/i18n/mk.json
+%%WWWDIR%%/i18n/ml.json
+%%WWWDIR%%/i18n/mn.json
+%%WWWDIR%%/i18n/nb_NO.json
+%%WWWDIR%%/i18n/ne.json
%%WWWDIR%%/i18n/nl.json
%%WWWDIR%%/i18n/pl.json
+%%WWWDIR%%/i18n/pr.json
%%WWWDIR%%/i18n/pt-BR.json
+%%WWWDIR%%/i18n/pt.json
%%WWWDIR%%/i18n/ro.json
%%WWWDIR%%/i18n/ru.json
+%%WWWDIR%%/i18n/si.json
+%%WWWDIR%%/i18n/sl.json
+%%WWWDIR%%/i18n/sq.json
+%%WWWDIR%%/i18n/sr.json
%%WWWDIR%%/i18n/sv.json
+%%WWWDIR%%/i18n/th.json
%%WWWDIR%%/i18n/tr.json
%%WWWDIR%%/i18n/uk.json
+%%WWWDIR%%/i18n/vi.json
%%WWWDIR%%/i18n/zh-CN.json
%%WWWDIR%%/i18n/zh-TW.json
%%WWWDIR%%/templates/cloud_14_day_arrears.html
@@ -28,6 +69,7 @@ bin/mattermostd
%%WWWDIR%%/templates/cloud_45_day_arrears.html
%%WWWDIR%%/templates/cloud_7_day_arrears.html
%%WWWDIR%%/templates/cloud_90_day_arrears.html
+%%WWWDIR%%/templates/cloud_renewal_notification.html
%%WWWDIR%%/templates/cloud_upgrade_confirmation.html
%%WWWDIR%%/templates/cloud_welcome_email.html
%%WWWDIR%%/templates/deactivate_body.html
@@ -39,6 +81,7 @@ bin/mattermostd
%%WWWDIR%%/templates/globalrelay_compliance_export_message.html
%%WWWDIR%%/templates/globalrelay_compliance_export_participant_row.html
%%WWWDIR%%/templates/invite_body.html
+%%WWWDIR%%/templates/ip_filters_changed.html
%%WWWDIR%%/templates/license_up_for_renewal.html
%%WWWDIR%%/templates/messages_notification.html
%%WWWDIR%%/templates/mfa_change_body.html
diff --git a/www/mattermost-webapp/Makefile b/www/mattermost-webapp/Makefile
index 0f24cbf03616..fa2fa6235921 100644
--- a/www/mattermost-webapp/Makefile
+++ b/www/mattermost-webapp/Makefile
@@ -1,11 +1,10 @@
PORTNAME= mattermost-webapp
-PORTVERSION= 8.1.12
+PORTVERSION= 9.5.5
DISTVERSIONPREFIX= v
CATEGORIES= www
MASTER_SITES= https://releases.mattermost.com/${PORTVERSION}/
DISTNAME= mattermost-${PORTVERSION}-linux-amd64
-# implicit-approval+ for decke
MAINTAINER= bofh@FreeBSD.org
COMMENT= Webapp of Mattermost server
WWW= https://mattermost.org/
diff --git a/www/mattermost-webapp/distinfo b/www/mattermost-webapp/distinfo
index c4daa214f9cf..efdaa5b74e0a 100644
--- a/www/mattermost-webapp/distinfo
+++ b/www/mattermost-webapp/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1713886944
-SHA256 (mattermost-8.1.12-linux-amd64.tar.gz) = b7d4e7da870fbdd2cf8c8e3cc1c8869e1ddfc67157ff7d8ad701d9103ef8d6a8
-SIZE (mattermost-8.1.12-linux-amd64.tar.gz) = 439143345
+TIMESTAMP = 1716147712
+SHA256 (mattermost-9.5.5-linux-amd64.tar.gz) = b6076cf1e4c17a2b2e25c2e0b71eb33a21547152f5a14d0b2db3ea9a1e124145
+SIZE (mattermost-9.5.5-linux-amd64.tar.gz) = 451567672
diff --git a/www/mattermost-webapp/pkg-plist b/www/mattermost-webapp/pkg-plist
index 04602c9456f3..3ef11193d35a 100644
--- a/www/mattermost-webapp/pkg-plist
+++ b/www/mattermost-webapp/pkg-plist
@@ -1,42 +1,43 @@
%%WWWDIR%%/client/1006.a82445890753b4cda610.js
%%WWWDIR%%/client/1006.a82445890753b4cda610.js.map
-%%WWWDIR%%/client/1295.4663738ed2b0ad59d067.css
-%%WWWDIR%%/client/1295.4663738ed2b0ad59d067.css.map
-%%WWWDIR%%/client/1295.f3200db42031cf83e89e.js
-%%WWWDIR%%/client/1295.f3200db42031cf83e89e.js.map
+%%WWWDIR%%/client/1011.3697a3888d12721cc558.js
+%%WWWDIR%%/client/1011.3697a3888d12721cc558.js.map
+%%WWWDIR%%/client/1011.b1f74ced71fa30073208.css
+%%WWWDIR%%/client/1011.b1f74ced71fa30073208.css.map
+%%WWWDIR%%/client/1072.150c7307f540483e0d8b.js
+%%WWWDIR%%/client/1072.150c7307f540483e0d8b.js.map
+%%WWWDIR%%/client/1191.43e6892f50bec3fc61fc.js
+%%WWWDIR%%/client/1191.43e6892f50bec3fc61fc.js.LICENSE.txt
+%%WWWDIR%%/client/1191.43e6892f50bec3fc61fc.js.map
%%WWWDIR%%/client/131.27d015a613d464e45cfd.js
%%WWWDIR%%/client/131.27d015a613d464e45cfd.js.map
-%%WWWDIR%%/client/1393.2d889049b98aa657e508.js
-%%WWWDIR%%/client/1393.2d889049b98aa657e508.js.map
-%%WWWDIR%%/client/145.e00c004887ff14c77ba9.js
-%%WWWDIR%%/client/145.e00c004887ff14c77ba9.js.map
-%%WWWDIR%%/client/1467.02379b50da469d81f9ae.js
-%%WWWDIR%%/client/1467.02379b50da469d81f9ae.js.map
+%%WWWDIR%%/client/145.693f451cda1d3e15542a.js
+%%WWWDIR%%/client/145.693f451cda1d3e15542a.js.map
%%WWWDIR%%/client/1542.c90979dfc4aadbe945ba.js
%%WWWDIR%%/client/1542.c90979dfc4aadbe945ba.js.LICENSE.txt
%%WWWDIR%%/client/1542.c90979dfc4aadbe945ba.js.map
%%WWWDIR%%/client/1599.c7c1807216b6490de5aa.js
%%WWWDIR%%/client/1599.c7c1807216b6490de5aa.js.map
+%%WWWDIR%%/client/1618.239b9912fb0a1e337f80.js
+%%WWWDIR%%/client/1618.239b9912fb0a1e337f80.js.map
%%WWWDIR%%/client/1728.da8582ec621992f97025.js
%%WWWDIR%%/client/1728.da8582ec621992f97025.js.map
%%WWWDIR%%/client/1741.531ae5dec955fbb092cd.js
%%WWWDIR%%/client/1741.531ae5dec955fbb092cd.js.map
-%%WWWDIR%%/client/1861.9fb4d14e6ddb7ccc2119.js
-%%WWWDIR%%/client/1861.9fb4d14e6ddb7ccc2119.js.map
%%WWWDIR%%/client/1929.4193052cf92a19393983.js
%%WWWDIR%%/client/1929.4193052cf92a19393983.js.map
%%WWWDIR%%/client/201.0d4bc4fb8306ec35595c.js
%%WWWDIR%%/client/201.0d4bc4fb8306ec35595c.js.map
-%%WWWDIR%%/client/2028.b5459e053877ad1a916d.js
-%%WWWDIR%%/client/2028.b5459e053877ad1a916d.js.map
-%%WWWDIR%%/client/209.6f4e1c4e53db70c63ffa.js
-%%WWWDIR%%/client/209.6f4e1c4e53db70c63ffa.js.map
-%%WWWDIR%%/client/2109.adbf6a20ab738d62c319.js
-%%WWWDIR%%/client/2109.adbf6a20ab738d62c319.js.map
-%%WWWDIR%%/client/2118.e59f41ec7122cc36df1c.js
-%%WWWDIR%%/client/2118.e59f41ec7122cc36df1c.js.map
-%%WWWDIR%%/client/2118.f8b28f6ca4b971c7a494.css
-%%WWWDIR%%/client/2118.f8b28f6ca4b971c7a494.css.map
+%%WWWDIR%%/client/2028.f513ca3163413ae6627e.js
+%%WWWDIR%%/client/2028.f513ca3163413ae6627e.js.map
+%%WWWDIR%%/client/209.e76e5510ceab7e286194.js
+%%WWWDIR%%/client/209.e76e5510ceab7e286194.js.map
+%%WWWDIR%%/client/2109.ccabb35de84e4671eecb.js
+%%WWWDIR%%/client/2109.ccabb35de84e4671eecb.js.map
+%%WWWDIR%%/client/2118.b0801b8c3c81bd54fb81.css
+%%WWWDIR%%/client/2118.b0801b8c3c81bd54fb81.css.map
+%%WWWDIR%%/client/2118.ce006e2b56da639a873e.js
+%%WWWDIR%%/client/2118.ce006e2b56da639a873e.js.map
%%WWWDIR%%/client/2193.54f570a10f45d153ebf7.js
%%WWWDIR%%/client/2193.54f570a10f45d153ebf7.js.map
%%WWWDIR%%/client/2195.f438052250f30dbfb459.js
@@ -47,79 +48,76 @@
%%WWWDIR%%/client/2264.08eaae74afc2b4d47777.js.map
%%WWWDIR%%/client/2277.175fe154198888acaca1.js
%%WWWDIR%%/client/2277.175fe154198888acaca1.js.map
-%%WWWDIR%%/client/2337.0c099202a718222b75ac.js
-%%WWWDIR%%/client/2337.0c099202a718222b75ac.js.LICENSE.txt
-%%WWWDIR%%/client/2337.0c099202a718222b75ac.js.map
-%%WWWDIR%%/client/2440.38a9bfb3a4a3b8c951c1.css
-%%WWWDIR%%/client/2440.38a9bfb3a4a3b8c951c1.css.map
-%%WWWDIR%%/client/2445.e35742b66fb16166ac40.js
-%%WWWDIR%%/client/2445.e35742b66fb16166ac40.js.map
-%%WWWDIR%%/client/2462.38f46cd7f5f9088e4ae9.js
-%%WWWDIR%%/client/2462.38f46cd7f5f9088e4ae9.js.LICENSE.txt
-%%WWWDIR%%/client/2462.38f46cd7f5f9088e4ae9.js.map
+%%WWWDIR%%/client/2317.a53bd586bb268ad8665e.css
+%%WWWDIR%%/client/2317.a53bd586bb268ad8665e.css.map
+%%WWWDIR%%/client/2317.b1ffec884ba46ebdaa7b.js
+%%WWWDIR%%/client/2317.b1ffec884ba46ebdaa7b.js.map
+%%WWWDIR%%/client/2440.f2ca37b5963eb47df25b.css
+%%WWWDIR%%/client/2440.f2ca37b5963eb47df25b.css.map
%%WWWDIR%%/client/2509.2f0b8f15a33fe2ab4335.js
%%WWWDIR%%/client/2509.2f0b8f15a33fe2ab4335.js.map
+%%WWWDIR%%/client/2514.41b4f83d1eb1943bb302.css
+%%WWWDIR%%/client/2514.41b4f83d1eb1943bb302.css.map
+%%WWWDIR%%/client/2514.6157291101610c9adbb5.js
+%%WWWDIR%%/client/2514.6157291101610c9adbb5.js.LICENSE.txt
+%%WWWDIR%%/client/2514.6157291101610c9adbb5.js.map
%%WWWDIR%%/client/2534.9cd47e7cf931cba451f2.js
%%WWWDIR%%/client/2534.9cd47e7cf931cba451f2.js.map
-%%WWWDIR%%/client/2544.6228cbd0b218d6da6c40.js
-%%WWWDIR%%/client/2544.6228cbd0b218d6da6c40.js.map
-%%WWWDIR%%/client/2544.9e39cde7e84ffe6dc526.css
-%%WWWDIR%%/client/2544.9e39cde7e84ffe6dc526.css.map
-%%WWWDIR%%/client/2565.660102a98dc89c001be2.js
-%%WWWDIR%%/client/2565.660102a98dc89c001be2.js.LICENSE.txt
-%%WWWDIR%%/client/2565.660102a98dc89c001be2.js.map
+%%WWWDIR%%/client/2565.5c6f9bd11886f9819fcb.js
+%%WWWDIR%%/client/2565.5c6f9bd11886f9819fcb.js.LICENSE.txt
+%%WWWDIR%%/client/2565.5c6f9bd11886f9819fcb.js.map
%%WWWDIR%%/client/2648.b2c800aad003450a190e.js
%%WWWDIR%%/client/2648.b2c800aad003450a190e.js.map
-%%WWWDIR%%/client/2698.0d91b02def32badbf45e.js
-%%WWWDIR%%/client/2698.0d91b02def32badbf45e.js.map
-%%WWWDIR%%/client/2701.dedd2d266c675c253811.js
-%%WWWDIR%%/client/2701.dedd2d266c675c253811.js.map
-%%WWWDIR%%/client/2824.9893892e55f343f8dea2.css
-%%WWWDIR%%/client/2824.9893892e55f343f8dea2.css.map
-%%WWWDIR%%/client/2824.fe027eaaa28ab2255af5.js
-%%WWWDIR%%/client/2824.fe027eaaa28ab2255af5.js.map
-%%WWWDIR%%/client/283.bd81b87f02c7ccba9609.js
-%%WWWDIR%%/client/283.bd81b87f02c7ccba9609.js.LICENSE.txt
-%%WWWDIR%%/client/283.bd81b87f02c7ccba9609.js.map
+%%WWWDIR%%/client/2698.8f6dcb10f659c6a5f520.js
+%%WWWDIR%%/client/2698.8f6dcb10f659c6a5f520.js.map
+%%WWWDIR%%/client/2701.a1afd4bd90d4a81c27cd.js
+%%WWWDIR%%/client/2701.a1afd4bd90d4a81c27cd.js.map
+%%WWWDIR%%/client/2826.a88496eacdc2f0dd40c5.js
+%%WWWDIR%%/client/2826.a88496eacdc2f0dd40c5.js.map
%%WWWDIR%%/client/2830.dbc77abe83a4ed3b2f13.js
%%WWWDIR%%/client/2830.dbc77abe83a4ed3b2f13.js.map
-%%WWWDIR%%/client/2903.6690015bb01f80dbea7e.js
-%%WWWDIR%%/client/2903.6690015bb01f80dbea7e.js.LICENSE.txt
-%%WWWDIR%%/client/2903.6690015bb01f80dbea7e.js.map
%%WWWDIR%%/client/3.50a9a10e8f904c178fb5.js
%%WWWDIR%%/client/3.50a9a10e8f904c178fb5.js.map
-%%WWWDIR%%/client/3117.7185a33399b59fe133c8.js
-%%WWWDIR%%/client/3117.7185a33399b59fe133c8.js.map
-%%WWWDIR%%/client/3117.b04846d55e8798763ee6.css
-%%WWWDIR%%/client/3117.b04846d55e8798763ee6.css.map
+%%WWWDIR%%/client/3001.2b71c3f7d4c60f46f16b.js
+%%WWWDIR%%/client/3001.2b71c3f7d4c60f46f16b.js.map
+%%WWWDIR%%/client/3001.ac2faa13aa08f0d0fe98.css
+%%WWWDIR%%/client/3001.ac2faa13aa08f0d0fe98.css.map
+%%WWWDIR%%/client/3117.95b220093cb5c5d82a8a.js
+%%WWWDIR%%/client/3117.95b220093cb5c5d82a8a.js.map
+%%WWWDIR%%/client/3117.c7750661ce94e8be41bf.css
+%%WWWDIR%%/client/3117.c7750661ce94e8be41bf.css.map
%%WWWDIR%%/client/3126.848bc87347e4a2d29c99.js
%%WWWDIR%%/client/3126.848bc87347e4a2d29c99.js.map
-%%WWWDIR%%/client/3389.c3fcdd2c53758c5a12d0.js
-%%WWWDIR%%/client/3389.c3fcdd2c53758c5a12d0.js.map
+%%WWWDIR%%/client/3272.9f7f5ecb6a905182ee70.js
+%%WWWDIR%%/client/3272.9f7f5ecb6a905182ee70.js.LICENSE.txt
+%%WWWDIR%%/client/3272.9f7f5ecb6a905182ee70.js.map
+%%WWWDIR%%/client/3294.89356d3bfc84cb9cf509.js
+%%WWWDIR%%/client/3294.89356d3bfc84cb9cf509.js.LICENSE.txt
+%%WWWDIR%%/client/3294.89356d3bfc84cb9cf509.js.map
+%%WWWDIR%%/client/3389.a634cca7a671d4dad982.js
+%%WWWDIR%%/client/3389.a634cca7a671d4dad982.js.map
+%%WWWDIR%%/client/3389.bd6e91718bcb0e460cda.css
+%%WWWDIR%%/client/3389.bd6e91718bcb0e460cda.css.map
%%WWWDIR%%/client/3412.a531e664a5e846e2a22e.js
-%%WWWDIR%%/client/3458.aad70e5ab892a6521779.js
-%%WWWDIR%%/client/3458.aad70e5ab892a6521779.js.map
+%%WWWDIR%%/client/3458.7bce940180e8ed6135e1.js
+%%WWWDIR%%/client/3458.7bce940180e8ed6135e1.js.map
%%WWWDIR%%/client/3487.b2a7aff7bf2b2e8a4d72.js
%%WWWDIR%%/client/3487.b2a7aff7bf2b2e8a4d72.js.map
-%%WWWDIR%%/client/353.b23721161ee40d78d60b.css
-%%WWWDIR%%/client/353.b23721161ee40d78d60b.css.map
-%%WWWDIR%%/client/353.fc08a51e8bdc094275e7.js
-%%WWWDIR%%/client/353.fc08a51e8bdc094275e7.js.map
+%%WWWDIR%%/client/353.2e36507828e19f41dcf5.css
+%%WWWDIR%%/client/353.2e36507828e19f41dcf5.css.map
+%%WWWDIR%%/client/353.9404a5a3e40a2b46c255.js
+%%WWWDIR%%/client/353.9404a5a3e40a2b46c255.js.map
%%WWWDIR%%/client/3539.4a5fd24ace7522fe4ef7.js
%%WWWDIR%%/client/3539.4a5fd24ace7522fe4ef7.js.map
-%%WWWDIR%%/client/3615.b061098af92a41d3ee68.js
-%%WWWDIR%%/client/3615.b061098af92a41d3ee68.js.map
-%%WWWDIR%%/client/3618.08d4b16ac734569e551b.js
-%%WWWDIR%%/client/3618.08d4b16ac734569e551b.js.map
-%%WWWDIR%%/client/3639.6441bc756774b3362581.js
-%%WWWDIR%%/client/3639.6441bc756774b3362581.js.map
-%%WWWDIR%%/client/3639.ad8af65ecfa629c5b75e.css
-%%WWWDIR%%/client/3639.ad8af65ecfa629c5b75e.css.map
-%%WWWDIR%%/client/3676.c9fa075cea4e632489d5.js
-%%WWWDIR%%/client/3676.c9fa075cea4e632489d5.js.map
-%%WWWDIR%%/client/368.501020eb3a84dcb78e5e.js
-%%WWWDIR%%/client/368.501020eb3a84dcb78e5e.js.LICENSE.txt
-%%WWWDIR%%/client/368.501020eb3a84dcb78e5e.js.map
+%%WWWDIR%%/client/3577.7ae35657cb3e001e2052.js
+%%WWWDIR%%/client/3577.7ae35657cb3e001e2052.js.map
+%%WWWDIR%%/client/3639.48ec22b6135b04a6883e.css
+%%WWWDIR%%/client/3639.48ec22b6135b04a6883e.css.map
+%%WWWDIR%%/client/3639.a4b332dc659321fd5afa.js
+%%WWWDIR%%/client/3639.a4b332dc659321fd5afa.js.map
+%%WWWDIR%%/client/368.21e7eb9195a96904ed87.js
+%%WWWDIR%%/client/368.21e7eb9195a96904ed87.js.LICENSE.txt
+%%WWWDIR%%/client/368.21e7eb9195a96904ed87.js.map
%%WWWDIR%%/client/3937.844b09f50594ca2613b4.js
%%WWWDIR%%/client/3937.844b09f50594ca2613b4.js.map
%%WWWDIR%%/client/4038.acec16d411c00eb00a85.js
@@ -128,134 +126,123 @@
%%WWWDIR%%/client/4040.193a7d0fdd91f49aa851.js.map
%%WWWDIR%%/client/4104.9744c21a1ff43afc6965.js
%%WWWDIR%%/client/4104.9744c21a1ff43afc6965.js.map
-%%WWWDIR%%/client/4181.839b45e0558a4a5f4357.js
-%%WWWDIR%%/client/4181.839b45e0558a4a5f4357.js.map
-%%WWWDIR%%/client/4181.ad6cb5fd1cfcb7c323d4.css
-%%WWWDIR%%/client/4181.ad6cb5fd1cfcb7c323d4.css.map
-%%WWWDIR%%/client/42.5e7996ab7c3944b40267.js
-%%WWWDIR%%/client/42.5e7996ab7c3944b40267.js.LICENSE.txt
-%%WWWDIR%%/client/42.5e7996ab7c3944b40267.js.map
-%%WWWDIR%%/client/4217.17e9bb431f6e24daa9ca.js
-%%WWWDIR%%/client/4217.17e9bb431f6e24daa9ca.js.map
-%%WWWDIR%%/client/4231.f9372ddf5363e41aa9a0.js
-%%WWWDIR%%/client/4231.f9372ddf5363e41aa9a0.js.map
-%%WWWDIR%%/client/4404.89777b503a3ddf14ebee.js
-%%WWWDIR%%/client/4404.89777b503a3ddf14ebee.js.LICENSE.txt
-%%WWWDIR%%/client/4404.89777b503a3ddf14ebee.js.map
-%%WWWDIR%%/client/4557.325cd3b5c3fd16de59d4.js
-%%WWWDIR%%/client/4557.325cd3b5c3fd16de59d4.js.map
-%%WWWDIR%%/client/4617.edf7898712324c636e94.js
-%%WWWDIR%%/client/4617.edf7898712324c636e94.js.LICENSE.txt
-%%WWWDIR%%/client/4617.edf7898712324c636e94.js.map
-%%WWWDIR%%/client/4666.12d01864e7e43d525284.js
-%%WWWDIR%%/client/4666.12d01864e7e43d525284.js.map
-%%WWWDIR%%/client/4666.9e35a6c3f41e66e58e02.css
-%%WWWDIR%%/client/4666.9e35a6c3f41e66e58e02.css.map
+%%WWWDIR%%/client/4205.0391bb7f211b6b88f177.js
+%%WWWDIR%%/client/4205.0391bb7f211b6b88f177.js.map
+%%WWWDIR%%/client/4205.673ad6a051df400f0e6f.css
+%%WWWDIR%%/client/4205.673ad6a051df400f0e6f.css.map
+%%WWWDIR%%/client/4217.81ae56f2da4d2d4ee9a6.js
+%%WWWDIR%%/client/4217.81ae56f2da4d2d4ee9a6.js.map
+%%WWWDIR%%/client/4217.b02454b009c376f7a9a1.css
+%%WWWDIR%%/client/4217.b02454b009c376f7a9a1.css.map
+%%WWWDIR%%/client/4231.27b0c37fcf4ddc51a033.js
+%%WWWDIR%%/client/4231.27b0c37fcf4ddc51a033.js.map
+%%WWWDIR%%/client/4404.b87614c5f140f1ac7ba6.js
+%%WWWDIR%%/client/4404.b87614c5f140f1ac7ba6.js.LICENSE.txt
+%%WWWDIR%%/client/4404.b87614c5f140f1ac7ba6.js.map
+%%WWWDIR%%/client/4557.0e7fa704a3d33c07c4f8.js
+%%WWWDIR%%/client/4557.0e7fa704a3d33c07c4f8.js.map
+%%WWWDIR%%/client/4617.88e5428809e56688db84.js
+%%WWWDIR%%/client/4617.88e5428809e56688db84.js.LICENSE.txt
+%%WWWDIR%%/client/4617.88e5428809e56688db84.js.map
%%WWWDIR%%/client/4825.b609e889593929ac6969.js
%%WWWDIR%%/client/4825.b609e889593929ac6969.js.map
%%WWWDIR%%/client/4841.253ec7bae8963b3060c1.js
%%WWWDIR%%/client/4841.253ec7bae8963b3060c1.js.map
-%%WWWDIR%%/client/5006.0eb611dbdeb2e90c45e1.js
-%%WWWDIR%%/client/5006.0eb611dbdeb2e90c45e1.js.map
-%%WWWDIR%%/client/5006.5b7832d3e1167baf2385.css
-%%WWWDIR%%/client/5006.5b7832d3e1167baf2385.css.map
-%%WWWDIR%%/client/5095.15abe01bfc1f5a45c4f5.js
-%%WWWDIR%%/client/5095.15abe01bfc1f5a45c4f5.js.map
-%%WWWDIR%%/client/5215.7381e5810fd574a6a946.js
-%%WWWDIR%%/client/5215.7381e5810fd574a6a946.js.map
+%%WWWDIR%%/client/5010.9562ceddef72c8cac3fe.js
+%%WWWDIR%%/client/5010.9562ceddef72c8cac3fe.js.map
+%%WWWDIR%%/client/5095.dc185b1dfa8d4470099d.js
+%%WWWDIR%%/client/5095.dc185b1dfa8d4470099d.js.map
+%%WWWDIR%%/client/516.94567bc0b03a72922071.js
+%%WWWDIR%%/client/516.94567bc0b03a72922071.js.map
+%%WWWDIR%%/client/516.fe1aa5e514ec90cd2b87.css
+%%WWWDIR%%/client/516.fe1aa5e514ec90cd2b87.css.map
+%%WWWDIR%%/client/5215.48db9473baee83d3fed5.js
+%%WWWDIR%%/client/5215.48db9473baee83d3fed5.js.map
%%WWWDIR%%/client/5397.51f992ceddd104d60013.js
%%WWWDIR%%/client/5397.51f992ceddd104d60013.js.map
-%%WWWDIR%%/client/5431.4f5c673ca71ee53d77f6.js
-%%WWWDIR%%/client/5431.4f5c673ca71ee53d77f6.js.map
-%%WWWDIR%%/client/5453.5fe75e88659e8abc9b0d.css
-%%WWWDIR%%/client/5453.5fe75e88659e8abc9b0d.css.map
-%%WWWDIR%%/client/5453.adcfc8a4056cfe3d3c0e.js
-%%WWWDIR%%/client/5453.adcfc8a4056cfe3d3c0e.js.map
-%%WWWDIR%%/client/5456.b72ae06f637f90691468.js
-%%WWWDIR%%/client/5456.b72ae06f637f90691468.js.LICENSE.txt
-%%WWWDIR%%/client/5456.b72ae06f637f90691468.js.map
-%%WWWDIR%%/client/5620.e2040c29c61d86292907.js
-%%WWWDIR%%/client/5620.e2040c29c61d86292907.js.map
+%%WWWDIR%%/client/5413.bb820edc74086d97deee.js
+%%WWWDIR%%/client/5413.bb820edc74086d97deee.js.map
+%%WWWDIR%%/client/5431.65e34fec1095099b99b0.js
+%%WWWDIR%%/client/5431.65e34fec1095099b99b0.js.map
+%%WWWDIR%%/client/5453.550dc2e484c3e3327e2d.js
+%%WWWDIR%%/client/5453.550dc2e484c3e3327e2d.js.map
+%%WWWDIR%%/client/5453.5b926c472a6f7dffe95f.css
+%%WWWDIR%%/client/5453.5b926c472a6f7dffe95f.css.map
+%%WWWDIR%%/client/5456.ca0399a90e8f1ea6885d.js
+%%WWWDIR%%/client/5456.ca0399a90e8f1ea6885d.js.LICENSE.txt
+%%WWWDIR%%/client/5456.ca0399a90e8f1ea6885d.js.map
+%%WWWDIR%%/client/5581.05ed603aab310f909178.js
+%%WWWDIR%%/client/5581.05ed603aab310f909178.js.map
+%%WWWDIR%%/client/5620.0332d780b6bdcb1ab953.js
+%%WWWDIR%%/client/5620.0332d780b6bdcb1ab953.js.map
+%%WWWDIR%%/client/5631.f3a3fc7ee90bb709ab2d.js
+%%WWWDIR%%/client/5631.f3a3fc7ee90bb709ab2d.js.LICENSE.txt
+%%WWWDIR%%/client/5631.f3a3fc7ee90bb709ab2d.js.map
+%%WWWDIR%%/client/5716.500cc70027b6dc8026a8.js
+%%WWWDIR%%/client/5716.500cc70027b6dc8026a8.js.map
%%WWWDIR%%/client/5749.00714fb1bbd4aa16095b.js
%%WWWDIR%%/client/5749.00714fb1bbd4aa16095b.js.map
-%%WWWDIR%%/client/5803.0a37a7b89255cab6b437.js
-%%WWWDIR%%/client/5803.0a37a7b89255cab6b437.js.map
-%%WWWDIR%%/client/5847.2e0800fb2f8c542a8504.css
-%%WWWDIR%%/client/5847.2e0800fb2f8c542a8504.css.map
-%%WWWDIR%%/client/5847.f7262fc3bc8e58c873a8.js
-%%WWWDIR%%/client/5847.f7262fc3bc8e58c873a8.js.map
-%%WWWDIR%%/client/5904.b41af8d748e61010165f.js
-%%WWWDIR%%/client/5904.b41af8d748e61010165f.js.map
+%%WWWDIR%%/client/5803.42464ec368de384f719e.js
+%%WWWDIR%%/client/5803.42464ec368de384f719e.js.map
%%WWWDIR%%/client/5912.742b2d37ae6c1e3b78e4.js
%%WWWDIR%%/client/5912.742b2d37ae6c1e3b78e4.js.map
-%%WWWDIR%%/client/5960.13c43b09e5d97980d3b5.css
-%%WWWDIR%%/client/5960.13c43b09e5d97980d3b5.css.map
-%%WWWDIR%%/client/5960.a56e9d95006edabd0c30.js
-%%WWWDIR%%/client/5960.a56e9d95006edabd0c30.js.map
%%WWWDIR%%/client/5973.361dc56f46e44ad8905b.js
%%WWWDIR%%/client/5973.361dc56f46e44ad8905b.js.map
-%%WWWDIR%%/client/6005.784b932f04c4d952c2bb.js
-%%WWWDIR%%/client/6005.784b932f04c4d952c2bb.js.map
+%%WWWDIR%%/client/6005.1fe7461d1a3f03f7dcc0.js
+%%WWWDIR%%/client/6005.1fe7461d1a3f03f7dcc0.js.map
%%WWWDIR%%/client/6012.a980859271e0c9b01f20.js
%%WWWDIR%%/client/6012.a980859271e0c9b01f20.js.map
%%WWWDIR%%/client/6016.81cc505f48c20cbda7eb.js
%%WWWDIR%%/client/6016.81cc505f48c20cbda7eb.js.map
-%%WWWDIR%%/client/6106.3e7b689bfbe6fd123ef8.js
-%%WWWDIR%%/client/6106.3e7b689bfbe6fd123ef8.js.map
+%%WWWDIR%%/client/6106.c804a70a8db73b02329f.js
+%%WWWDIR%%/client/6106.c804a70a8db73b02329f.js.map
%%WWWDIR%%/client/6106.ef104656b8bd072b2c15.css
%%WWWDIR%%/client/6106.ef104656b8bd072b2c15.css.map
-%%WWWDIR%%/client/6114.05f51a5236dd57ec0691.css
-%%WWWDIR%%/client/6114.05f51a5236dd57ec0691.css.map
-%%WWWDIR%%/client/6114.5f12e1fcda7391c7ad21.js
-%%WWWDIR%%/client/6114.5f12e1fcda7391c7ad21.js.map
+%%WWWDIR%%/client/6114.15f967a07273e4f4b262.js
+%%WWWDIR%%/client/6114.15f967a07273e4f4b262.js.map
+%%WWWDIR%%/client/6114.7ad285f8d8a58332f6ad.css
+%%WWWDIR%%/client/6114.7ad285f8d8a58332f6ad.css.map
%%WWWDIR%%/client/6145.53a44b9ff76c964ced3f.js
%%WWWDIR%%/client/6145.53a44b9ff76c964ced3f.js.map
%%WWWDIR%%/client/615.1c172a6fd034294e3a4b.js
%%WWWDIR%%/client/615.1c172a6fd034294e3a4b.js.map
-%%WWWDIR%%/client/6228.4c6307cb7f056a387b4a.js
-%%WWWDIR%%/client/6228.4c6307cb7f056a387b4a.js.map
+%%WWWDIR%%/client/6228.138c61c54a03cb6b0239.js
+%%WWWDIR%%/client/6228.138c61c54a03cb6b0239.js.map
%%WWWDIR%%/client/6323.973e387bd4d9fc46f764.js
%%WWWDIR%%/client/6323.973e387bd4d9fc46f764.js.map
%%WWWDIR%%/client/6339.f6949d38611b5c11ef37.js
%%WWWDIR%%/client/6339.f6949d38611b5c11ef37.js.map
%%WWWDIR%%/client/6487.3a9ac675e79a51a666ae.js
%%WWWDIR%%/client/6487.3a9ac675e79a51a666ae.js.map
-%%WWWDIR%%/client/6640.2badf0e09b393fe70fc3.js
-%%WWWDIR%%/client/6640.2badf0e09b393fe70fc3.js.map
+%%WWWDIR%%/client/6640.bc2ba4f3b3017547c8f6.js
+%%WWWDIR%%/client/6640.bc2ba4f3b3017547c8f6.js.map
%%WWWDIR%%/client/6644.c0a6de97a7bf084a3f4d.js
%%WWWDIR%%/client/6644.c0a6de97a7bf084a3f4d.js.map
%%WWWDIR%%/client/6645.f299a1ef0e7956d27df0.css
%%WWWDIR%%/client/6645.f299a1ef0e7956d27df0.css.map
-%%WWWDIR%%/client/6666.8ac3926abad3cb565d20.js
-%%WWWDIR%%/client/6666.8ac3926abad3cb565d20.js.LICENSE.txt
-%%WWWDIR%%/client/6666.8ac3926abad3cb565d20.js.map
-%%WWWDIR%%/client/6760.dd030aca80841e50a500.js
-%%WWWDIR%%/client/6760.dd030aca80841e50a500.js.map
-%%WWWDIR%%/client/6778.79187f316fb89d710ae0.js
-%%WWWDIR%%/client/6778.79187f316fb89d710ae0.js.map
+%%WWWDIR%%/client/6778.99c8dc14c9da163c609b.js
+%%WWWDIR%%/client/6778.99c8dc14c9da163c609b.js.map
%%WWWDIR%%/client/6796.243e9d8ba29f680107ba.js
%%WWWDIR%%/client/6796.243e9d8ba29f680107ba.js.map
%%WWWDIR%%/client/680.4da078dab52828997dac.js
%%WWWDIR%%/client/680.4da078dab52828997dac.js.map
%%WWWDIR%%/client/6891.1b1c37acadfa9bc7bffb.js
%%WWWDIR%%/client/6891.1b1c37acadfa9bc7bffb.js.map
-%%WWWDIR%%/client/6903.647a1390eb5f127eb52b.js
-%%WWWDIR%%/client/6903.647a1390eb5f127eb52b.js.map
-%%WWWDIR%%/client/7055.46cd540a5eabf823c9fc.js
-%%WWWDIR%%/client/7055.46cd540a5eabf823c9fc.js.map
-%%WWWDIR%%/client/7055.8515bd6692df2f594e52.css
-%%WWWDIR%%/client/7055.8515bd6692df2f594e52.css.map
-%%WWWDIR%%/client/7107.08702a1ce20384545e09.css
-%%WWWDIR%%/client/7107.08702a1ce20384545e09.css.map
-%%WWWDIR%%/client/7107.1a19b79613707d8ec371.js
-%%WWWDIR%%/client/7107.1a19b79613707d8ec371.js.map
-%%WWWDIR%%/client/7119.be83b74094ac6efebaec.css
-%%WWWDIR%%/client/7119.be83b74094ac6efebaec.css.map
+%%WWWDIR%%/client/7055.191d2202b344b8126d98.js
+%%WWWDIR%%/client/7055.191d2202b344b8126d98.js.map
+%%WWWDIR%%/client/7055.23d1d4a70f5b26fe6e36.css
+%%WWWDIR%%/client/7055.23d1d4a70f5b26fe6e36.css.map
+%%WWWDIR%%/client/7107.546d3f7103c576bf17d6.js
+%%WWWDIR%%/client/7107.546d3f7103c576bf17d6.js.map
+%%WWWDIR%%/client/7107.9dee87d1c4f156016e4e.css
+%%WWWDIR%%/client/7107.9dee87d1c4f156016e4e.css.map
+%%WWWDIR%%/client/7119.2e43b30c3a228a8f763e.css
+%%WWWDIR%%/client/7119.2e43b30c3a228a8f763e.css.map
%%WWWDIR%%/client/7207.24e02b07ac1c46fab178.js
%%WWWDIR%%/client/7207.24e02b07ac1c46fab178.js.map
-%%WWWDIR%%/client/7274.babf8f880f7bde664305.js
-%%WWWDIR%%/client/7274.babf8f880f7bde664305.js.LICENSE.txt
-%%WWWDIR%%/client/7274.babf8f880f7bde664305.js.map
+%%WWWDIR%%/client/7274.ada8accfd73d61857b45.js
+%%WWWDIR%%/client/7274.ada8accfd73d61857b45.js.LICENSE.txt
+%%WWWDIR%%/client/7274.ada8accfd73d61857b45.js.map
%%WWWDIR%%/client/7307.5f0817a9a98465dc3d15.js
%%WWWDIR%%/client/7307.5f0817a9a98465dc3d15.js.map
%%WWWDIR%%/client/7313.87c900eb71eed795ba50.js
@@ -263,62 +250,61 @@
%%WWWDIR%%/client/7378.0b94e714d0e252a84cc0.js
%%WWWDIR%%/client/7378.0b94e714d0e252a84cc0.js.LICENSE.txt
%%WWWDIR%%/client/7378.0b94e714d0e252a84cc0.js.map
+%%WWWDIR%%/client/7430.89ee9940d1b94015d891.js
+%%WWWDIR%%/client/7430.89ee9940d1b94015d891.js.map
+%%WWWDIR%%/client/7430.bb4505cc48c2049a1b7b.css
+%%WWWDIR%%/client/7430.bb4505cc48c2049a1b7b.css.map
%%WWWDIR%%/client/7509.9f4eb8df4b95f9c62be4.js
%%WWWDIR%%/client/7509.9f4eb8df4b95f9c62be4.js.map
-%%WWWDIR%%/client/7566.5a9deeacc9b268265305.js
-%%WWWDIR%%/client/7566.5a9deeacc9b268265305.js.LICENSE.txt
-%%WWWDIR%%/client/7566.5a9deeacc9b268265305.js.map
%%WWWDIR%%/client/7586.dbda09a33338ee29e554.js
%%WWWDIR%%/client/7586.dbda09a33338ee29e554.js.map
+%%WWWDIR%%/client/7685.538ff07feb805739d12f.js
+%%WWWDIR%%/client/7685.538ff07feb805739d12f.js.map
%%WWWDIR%%/client/7703.d9ed98e201401c2beb22.js
%%WWWDIR%%/client/7703.d9ed98e201401c2beb22.js.map
+%%WWWDIR%%/client/7710.1db03372130a7ca6925f.js
+%%WWWDIR%%/client/7710.1db03372130a7ca6925f.js.map
%%WWWDIR%%/client/7761.01d225bcc0b5e6c41f7b.js
%%WWWDIR%%/client/7761.01d225bcc0b5e6c41f7b.js.map
-%%WWWDIR%%/client/7803.801afef902be3ae0f8ef.js
-%%WWWDIR%%/client/7803.801afef902be3ae0f8ef.js.LICENSE.txt
-%%WWWDIR%%/client/7803.801afef902be3ae0f8ef.js.map
-%%WWWDIR%%/client/7858.82bdb5aa2110101b80d4.css
-%%WWWDIR%%/client/7858.82bdb5aa2110101b80d4.css.map
-%%WWWDIR%%/client/7858.8417b70d7712cc9520bc.js
-%%WWWDIR%%/client/7858.8417b70d7712cc9520bc.js.LICENSE.txt
-%%WWWDIR%%/client/7858.8417b70d7712cc9520bc.js.map
+%%WWWDIR%%/client/7803.0f2f7375240d3eb97354.js
+%%WWWDIR%%/client/7803.0f2f7375240d3eb97354.js.LICENSE.txt
+%%WWWDIR%%/client/7803.0f2f7375240d3eb97354.js.map
%%WWWDIR%%/client/7882.4836784ab734854bade8.js
%%WWWDIR%%/client/7882.4836784ab734854bade8.js.map
-%%WWWDIR%%/client/7882.51cde44ffab358545404.css
-%%WWWDIR%%/client/7882.51cde44ffab358545404.css.map
+%%WWWDIR%%/client/7882.f07e931e4775585fcfa8.css
+%%WWWDIR%%/client/7882.f07e931e4775585fcfa8.css.map
%%WWWDIR%%/client/7896.2130c6e57d3e690b84ec.js
%%WWWDIR%%/client/7896.2130c6e57d3e690b84ec.js.map
+%%WWWDIR%%/client/7909.e1ecc45d2750c7778100.js
+%%WWWDIR%%/client/7909.e1ecc45d2750c7778100.js.map
+%%WWWDIR%%/client/7985.3e74c3ab6ebc0a0713d6.js
+%%WWWDIR%%/client/7985.3e74c3ab6ebc0a0713d6.js.map
+%%WWWDIR%%/client/8039.de8937287e12968506e8.js
+%%WWWDIR%%/client/8039.de8937287e12968506e8.js.LICENSE.txt
+%%WWWDIR%%/client/8039.de8937287e12968506e8.js.map
%%WWWDIR%%/client/8045.12155cf972f9136b00ac.js
%%WWWDIR%%/client/8045.12155cf972f9136b00ac.js.map
%%WWWDIR%%/client/8109.c48436210fe343fc3625.js
%%WWWDIR%%/client/8109.c48436210fe343fc3625.js.map
%%WWWDIR%%/client/8112.5b4fdb639e8ab26cda59.js
%%WWWDIR%%/client/8112.5b4fdb639e8ab26cda59.js.map
-%%WWWDIR%%/client/8143.f36a638b699431c92dd8.js
-%%WWWDIR%%/client/8143.f36a638b699431c92dd8.js.LICENSE.txt
-%%WWWDIR%%/client/8143.f36a638b699431c92dd8.js.map
%%WWWDIR%%/client/8196.ab3030070696873d8405.js
%%WWWDIR%%/client/8196.ab3030070696873d8405.js.map
%%WWWDIR%%/client/8221.3c6fcff225a73d120a8a.js
%%WWWDIR%%/client/8221.3c6fcff225a73d120a8a.js.map
-%%WWWDIR%%/client/8286.2897429f1595cf185f33.js
-%%WWWDIR%%/client/8286.2897429f1595cf185f33.js.map
-%%WWWDIR%%/client/8286.c2860370172209ddcc0a.css
-%%WWWDIR%%/client/8286.c2860370172209ddcc0a.css.map
+%%WWWDIR%%/client/8286.0fd2781d8c50433e031f.js
+%%WWWDIR%%/client/8286.0fd2781d8c50433e031f.js.map
+%%WWWDIR%%/client/8286.89882cc4b83ac335a4aa.css
+%%WWWDIR%%/client/8286.89882cc4b83ac335a4aa.css.map
%%WWWDIR%%/client/8297.7e11cfb4c56ce60546b7.js
%%WWWDIR%%/client/8297.7e11cfb4c56ce60546b7.js.map
-%%WWWDIR%%/client/8470.61010c1e0c289b7bf725.js
-%%WWWDIR%%/client/8470.61010c1e0c289b7bf725.js.map
+%%WWWDIR%%/client/8304.11b203998b518862e4c7.js
+%%WWWDIR%%/client/8304.11b203998b518862e4c7.js.LICENSE.txt
+%%WWWDIR%%/client/8304.11b203998b518862e4c7.js.map
%%WWWDIR%%/client/8473.37b6fbe2a0c19ab2c853.js
%%WWWDIR%%/client/8473.37b6fbe2a0c19ab2c853.js.map
%%WWWDIR%%/client/8522.f1c9563c3303ec103299.js
%%WWWDIR%%/client/8522.f1c9563c3303ec103299.js.map
-%%WWWDIR%%/client/8688.3d336ebd5b8d33359a87.js
-%%WWWDIR%%/client/8688.3d336ebd5b8d33359a87.js.map
-%%WWWDIR%%/client/8718.037afe8c3d6764feec38.css
-%%WWWDIR%%/client/8718.037afe8c3d6764feec38.css.map
-%%WWWDIR%%/client/8718.757b284d90edcff61adf.js
-%%WWWDIR%%/client/8718.757b284d90edcff61adf.js.map
%%WWWDIR%%/client/8725.9971cc726db52a178b00.js
%%WWWDIR%%/client/8725.9971cc726db52a178b00.js.map
%%WWWDIR%%/client/8734.a1d4a5f5820fbc02d123.js
@@ -333,21 +319,27 @@
%%WWWDIR%%/client/9231.f2d46eb836c80d18f014.js.map
%%WWWDIR%%/client/9269.7bef6e6584c581f5c96d.js
%%WWWDIR%%/client/9269.7bef6e6584c581f5c96d.js.map
+%%WWWDIR%%/client/927.63303a970be9da2caea9.css
+%%WWWDIR%%/client/927.63303a970be9da2caea9.css.map
+%%WWWDIR%%/client/927.d6208f1b60c77ce28104.js
+%%WWWDIR%%/client/927.d6208f1b60c77ce28104.js.map
%%WWWDIR%%/client/9281.ecb21f8529b255fa0986.js
%%WWWDIR%%/client/9281.ecb21f8529b255fa0986.js.map
-%%WWWDIR%%/client/9287.62f1389de8597859c538.js
-%%WWWDIR%%/client/9287.62f1389de8597859c538.js.map
-%%WWWDIR%%/client/9287.7cb2a6cfbd8bb9793198.css
-%%WWWDIR%%/client/9287.7cb2a6cfbd8bb9793198.css.map
+%%WWWDIR%%/client/9287.1ae4b609ddf03369f13b.css
+%%WWWDIR%%/client/9287.1ae4b609ddf03369f13b.css.map
+%%WWWDIR%%/client/9287.3a5fa59b5d84af37c772.js
+%%WWWDIR%%/client/9287.3a5fa59b5d84af37c772.js.map
%%WWWDIR%%/client/9410.84b6dce705b5fbbfcf00.js
%%WWWDIR%%/client/9410.84b6dce705b5fbbfcf00.js.map
%%WWWDIR%%/client/942.f4b26f7f5900cdb7c9f9.js
%%WWWDIR%%/client/942.f4b26f7f5900cdb7c9f9.js.map
%%WWWDIR%%/client/9604.5d838f221b541a3dc704.js
%%WWWDIR%%/client/9604.5d838f221b541a3dc704.js.map
+%%WWWDIR%%/client/9614.90a3cfb406f55673777c.js
+%%WWWDIR%%/client/9614.90a3cfb406f55673777c.js.map
%%WWWDIR%%/client/9707.bd952b6fd79bcf4217f4.js
-%%WWWDIR%%/client/9744.92bf2482fecd296070af.js
-%%WWWDIR%%/client/9744.92bf2482fecd296070af.js.map
+%%WWWDIR%%/client/9744.030b456564d00fd0ce15.js
+%%WWWDIR%%/client/9744.030b456564d00fd0ce15.js.map
%%WWWDIR%%/client/9849.a59701c695b1ddfc6fd6.js
%%WWWDIR%%/client/9849.a59701c695b1ddfc6fd6.js.map
%%WWWDIR%%/client/9859.b3147b2a56bc7b39c837.js
@@ -3828,7 +3820,6 @@
%%WWWDIR%%/client/emoji/emoji-custom.png
%%WWWDIR%%/client/emoji/%%MATTERMOSTD_USER%%.png
%%WWWDIR%%/client/files/00301d72e07c55d59df5.svg
-%%WWWDIR%%/client/files/0098d1355858d44623fc.png
%%WWWDIR%%/client/files/0108e89c9003e8c14ea3.woff
%%WWWDIR%%/client/files/015736ac96a0f4b445b5.woff2
%%WWWDIR%%/client/files/02271ec5cb9f5b4588ac.woff
@@ -3845,7 +3836,6 @@
%%WWWDIR%%/client/files/18f795b7373cd6fac757.gif
%%WWWDIR%%/client/files/1c5c889a1530329dd883.jpg
%%WWWDIR%%/client/files/1e59d2330b4c6deb84b3.ttf
-%%WWWDIR%%/client/files/20785e8b14e143de1e18.png
%%WWWDIR%%/client/files/20b39a15c40e4db238f1.png
%%WWWDIR%%/client/files/20f389c4120be058d80a.woff2
%%WWWDIR%%/client/files/20fd1704ea223900efa9.woff2
@@ -3857,10 +3847,8 @@
%%WWWDIR%%/client/files/2a8c0b1b24fe26f9bfcf.svg
%%WWWDIR%%/client/files/2c18b373ff146fd8108b.png
%%WWWDIR%%/client/files/2c5822f8df09cab9d59c.png
-%%WWWDIR%%/client/files/2d4b76f5842974320ed1.eot
%%WWWDIR%%/client/files/2f6dbcfa410b96ca2a35.woff2
%%WWWDIR%%/client/files/2f7bc363fc5424ebda59.ttf
-%%WWWDIR%%/client/files/3284065c3340b6658cfa.jpg
%%WWWDIR%%/client/files/3399e2ee5698233ffe44.png
%%WWWDIR%%/client/files/34c82b247a366d047105.png
%%WWWDIR%%/client/files/354501bac435c3264834.woff
@@ -3868,7 +3856,6 @@
%%WWWDIR%%/client/files/372ee7bbea28f5a75e2a.svg
%%WWWDIR%%/client/files/377564d283f9bc35cce9.png
%%WWWDIR%%/client/files/39890742bc957b368704.woff2
-%%WWWDIR%%/client/files/3a942d4e6c0dfced4569.svg
%%WWWDIR%%/client/files/3a99e70aee4076660d38.woff
%%WWWDIR%%/client/files/3b8734f0d193b817f2b3.svg
%%WWWDIR%%/client/files/3bd5f5c5dd54ccb0c7c2.woff2
@@ -3880,7 +3867,6 @@
%%WWWDIR%%/client/files/4651fd92bdc643485b9e.jpg
%%WWWDIR%%/client/files/4692b9ec53fd5972caa2.ttf
%%WWWDIR%%/client/files/46dadbd80fa9043a992a.woff
-%%WWWDIR%%/client/files/47828bbc15464edb98e9.png
%%WWWDIR%%/client/files/48c8ed225ff4a2f7a4c1.svg
%%WWWDIR%%/client/files/4ad7c7e8bb8d10a34bb7.ttf
%%WWWDIR%%/client/files/4c6b94fd1d07f8beff7c.woff
@@ -3900,6 +3886,7 @@
%%WWWDIR%%/client/files/5b49f4993ae22d7975b4.ttf
%%WWWDIR%%/client/files/5be1347c682810f199c7.eot
%%WWWDIR%%/client/files/5f87fb0335aa3115cc71.svg
+%%WWWDIR%%/client/files/6579929148618fdc0eaf.svg
%%WWWDIR%%/client/files/6a2055863ca6d151ebb4.png
%%WWWDIR%%/client/files/6a4927c0ce25f392d35e.woff
%%WWWDIR%%/client/files/6bf17d5beba5f18915c7.woff
@@ -3910,13 +3897,11 @@
%%WWWDIR%%/client/files/6eec866c69313624be60.woff2
%%WWWDIR%%/client/files/6f1462a75cab16ee77c8.woff2
%%WWWDIR%%/client/files/6fdf0ac577be0ba82a4c.woff
-%%WWWDIR%%/client/files/711d6ebe91314060556c.png
%%WWWDIR%%/client/files/71850e51ea04421286aa.png
%%WWWDIR%%/client/files/71ff9ed7909b8a4a57f7.woff
%%WWWDIR%%/client/files/72b8660cf48de3073575.woff
%%WWWDIR%%/client/files/73ea273a72f4aca30ca5.woff2
%%WWWDIR%%/client/files/7489a2fbfb9bfe704420.ttf
-%%WWWDIR%%/client/files/7526d4b6d87095105f45.ttf
%%WWWDIR%%/client/files/7654b55b2f3442e91404.css
%%WWWDIR%%/client/files/7947224e8a9914fa332b.woff
%%WWWDIR%%/client/files/7a26b407c4ec2bbbaecd.png
@@ -3931,7 +3916,6 @@
%%WWWDIR%%/client/files/82c53ca565ed83a033df.png
%%WWWDIR%%/client/files/82de93c3795437425044.svg
%%WWWDIR%%/client/files/853be92419a6c3766b9a.ttf
-%%WWWDIR%%/client/files/85dce17e8e940492f690.svg
%%WWWDIR%%/client/files/85f92b639485f3804bb1.png
%%WWWDIR%%/client/files/86cf650fecf6c2bd8407.woff
%%WWWDIR%%/client/files/8a5f936332e8028c7278.ttf
@@ -3942,9 +3926,9 @@
%%WWWDIR%%/client/files/8b841a4d47a221fdb5ca.png
%%WWWDIR%%/client/files/8d593cfaa96238d5e2f8.woff
%%WWWDIR%%/client/files/8d6b6822586eea3d3b20.ttf
+%%WWWDIR%%/client/files/8f3d1a4142c906ee1525.svg
%%WWWDIR%%/client/files/8f702b9068ad5f14443a.png
%%WWWDIR%%/client/files/90de726ce0a2fe9958d3.png
-%%WWWDIR%%/client/files/910b16c5b489b359e175.woff
%%WWWDIR%%/client/files/91a3a29ed2f93ba44792.png
%%WWWDIR%%/client/files/925aafc8b6d54b579a4e.svg
%%WWWDIR%%/client/files/931d67ea207ab37ee693.woff2
@@ -3953,7 +3937,6 @@
%%WWWDIR%%/client/files/95591a929f0d32aa282a.woff2
%%WWWDIR%%/client/files/96759856b4e70f3a8338.woff
%%WWWDIR%%/client/files/96bef01ba855a3b50904.woff
-%%WWWDIR%%/client/files/9777b4d58f156d2c1388.woff2
%%WWWDIR%%/client/files/9777bf12a1f691f71268.png
%%WWWDIR%%/client/files/99ec979441ce5d5c1e4d.mp3
%%WWWDIR%%/client/files/9b0519e1f5fbf82b0548.png
@@ -3961,10 +3944,14 @@
%%WWWDIR%%/client/files/9ea8998d9c0389f02c43.png
%%WWWDIR%%/client/files/9eba1d77abcf2aa6e94e.ttf
%%WWWDIR%%/client/files/a1abf90dfd72792a577a.woff2
+%%WWWDIR%%/client/files/a24b7eb0471f64ebf576.woff
%%WWWDIR%%/client/files/a37832275fd33b01dc27.jpg
+%%WWWDIR%%/client/files/a39df65f30bbf5ec1bcf.woff2
%%WWWDIR%%/client/files/a3bb00b98342a6b88a72.gif
%%WWWDIR%%/client/files/a628e83945502338cace.mp3
+%%WWWDIR%%/client/files/a8b2077e566cb6bf7f11.eot
%%WWWDIR%%/client/files/ab8aa80cba445eb0fb75.png
+%%WWWDIR%%/client/files/acd3c17c4859bf16e105.ttf
%%WWWDIR%%/client/files/ad02dc088755e3884a5b.png
%%WWWDIR%%/client/files/ae5bb38e37a452ff91c8.mp3
%%WWWDIR%%/client/files/aeffd8025cba3647f1a6.woff
@@ -3981,16 +3968,17 @@
%%WWWDIR%%/client/files/bf2d440b3a42ea78a998.ttf
%%WWWDIR%%/client/files/bf7df14bc351bc131de2.svg
%%WWWDIR%%/client/files/c01e2180eeaf3ec6fc96.png
-%%WWWDIR%%/client/files/c1a25e53f866b24a6c36.png
%%WWWDIR%%/client/files/c295e7f71970f03c0549.woff2
%%WWWDIR%%/client/files/c5c02d763c89380dcb4e.ttf
%%WWWDIR%%/client/files/c7106e4ab743a4136ded.woff2
%%WWWDIR%%/client/files/c768bfe69b3d4a980e7b.svg
%%WWWDIR%%/client/files/c7abbdc345c701433289.svg
%%WWWDIR%%/client/files/c81d1b2a4b75d3eded60.woff2
+%%WWWDIR%%/client/files/ccf665b8d863ca98e36d.jpg
%%WWWDIR%%/client/files/cd5e231e0cc53b2cb2c0.woff2
%%WWWDIR%%/client/files/cd8cb8b2332ebb5e7a6d.png
%%WWWDIR%%/client/files/d02184525b86d72d3825.mp3
+%%WWWDIR%%/client/files/d2bf744fa2303f13660a.svg
%%WWWDIR%%/client/files/d562e886c52f12660a41.woff
%%WWWDIR%%/client/files/d5daf742611b86ea2649.woff2
%%WWWDIR%%/client/files/d6484fce1ef428d5bd94.woff2
@@ -4008,7 +3996,6 @@
%%WWWDIR%%/client/files/eb9c9ed586eda5e79e42.png
%%WWWDIR%%/client/files/ed305b5434865e06ffde.ttf
%%WWWDIR%%/client/files/f0ed40c1c7c4d880a63e.svg
-%%WWWDIR%%/client/files/f2b29bd9b1060d4e066b.png
%%WWWDIR%%/client/files/f356182e1dc28ee0d654.woff2
%%WWWDIR%%/client/files/f650f111a3b890d116f1.woff2
%%WWWDIR%%/client/files/f691f37e57f04c152e23.woff
@@ -4023,26 +4010,28 @@
%%WWWDIR%%/client/files/fc9ba5249878cd8f8d88.ttf
%%WWWDIR%%/client/files/fd947498bc16392e76c2.woff
%%WWWDIR%%/client/files/fe2176f79edaa716e621.woff2
-%%WWWDIR%%/client/i18n/bg.ff5849b28c011978967e.json
-%%WWWDIR%%/client/i18n/de.8667fb104e4897c79ba7.json
-%%WWWDIR%%/client/i18n/en_AU.358ad982d61af5ea84cb.json
-%%WWWDIR%%/client/i18n/es.076c18ccfd76f26b42bd.json
-%%WWWDIR%%/client/i18n/fa.a3a106464a159f63a247.json
-%%WWWDIR%%/client/i18n/fr.d524dc5c2c2f5a0f35be.json
-%%WWWDIR%%/client/i18n/hu.46e93339b7dbc41a957d.json
-%%WWWDIR%%/client/i18n/it.8939b4d7167d021ac5e2.json
-%%WWWDIR%%/client/i18n/ja.de19a2c6f0edf2198100.json
-%%WWWDIR%%/client/i18n/ko.290af13f75e745637e5e.json
-%%WWWDIR%%/client/i18n/nl.2a39bfcd3e8b52942363.json
-%%WWWDIR%%/client/i18n/pl.781eeadf4474887f249c.json
-%%WWWDIR%%/client/i18n/pt-BR.14390eb3a1637e1ee782.json
-%%WWWDIR%%/client/i18n/ro.5f4e4e8ead9bf079e8a3.json
-%%WWWDIR%%/client/i18n/ru.2adfb04a6bcb31ef64ce.json
-%%WWWDIR%%/client/i18n/sv.34f9fb56a24634eccda6.json
-%%WWWDIR%%/client/i18n/tr.544b47361996965e4b54.json
-%%WWWDIR%%/client/i18n/uk.ae1262e3a655d57b306a.json
-%%WWWDIR%%/client/i18n/zh-CN.5a185e20a9a6eda53a08.json
-%%WWWDIR%%/client/i18n/zh-TW.00e96559ba9cef1d213a.json
+%%WWWDIR%%/client/files/ff54773341517ad8040e.svg
+%%WWWDIR%%/client/i18n/bg.880c82092f0194cf3ac2.json
+%%WWWDIR%%/client/i18n/de.222382299aed199aef04.json
+%%WWWDIR%%/client/i18n/en_AU.c8e07b32a67e96dc01df.json
+%%WWWDIR%%/client/i18n/es.616f0a203236dbc62f1c.json
+%%WWWDIR%%/client/i18n/fa.83844e77ec7ddc94812d.json
+%%WWWDIR%%/client/i18n/fr.75be81dfe3a847ddd54a.json
+%%WWWDIR%%/client/i18n/hu.15f6f11876272c92873d.json
+%%WWWDIR%%/client/i18n/it.af68bee80a2d7e6ef203.json
+%%WWWDIR%%/client/i18n/ja.01af69de2d9c48cbc61f.json
+%%WWWDIR%%/client/i18n/ko.65ea228d04fc837d7275.json
+%%WWWDIR%%/client/i18n/nl.86d9023f6f06ff97b41f.json
+%%WWWDIR%%/client/i18n/pl.7a79d8c7c03d8ee8ef5a.json
+%%WWWDIR%%/client/i18n/pt-BR.67695b7aa7977f07256e.json
+%%WWWDIR%%/client/i18n/ro.010178bc006a1a2dc447.json
+%%WWWDIR%%/client/i18n/ru.dd4b26a78332df723817.json
+%%WWWDIR%%/client/i18n/sv.6c5c6d942ee87df1385c.json
+%%WWWDIR%%/client/i18n/tr.173b7ae534defdc2ed1a.json
+%%WWWDIR%%/client/i18n/uk.f153053d2811aab53c67.json
+%%WWWDIR%%/client/i18n/vi.8fa515754ddb1c9ccf83.json
+%%WWWDIR%%/client/i18n/zh-CN.fc9548e8486ee2cb8bf6.json
+%%WWWDIR%%/client/i18n/zh-TW.a3aa38ccaa3dc2444680.json
%%WWWDIR%%/client/icon_120x120.png
%%WWWDIR%%/client/icon_144x144.png
%%WWWDIR%%/client/icon_152x152.png
@@ -4054,12 +4043,8 @@
%%WWWDIR%%/client/icon_72x72.png
%%WWWDIR%%/client/icon_76x76.png
%%WWWDIR%%/client/icon_96x96.png
-%%WWWDIR%%/client/images/add_payment_method.png
-%%WWWDIR%%/client/images/add_subscription.png
%%WWWDIR%%/client/images/admin-onboarding-background.jpg
%%WWWDIR%%/client/images/appIcons.png
-%%WWWDIR%%/client/images/blue-lower.svg
-%%WWWDIR%%/client/images/blue.svg
%%WWWDIR%%/client/images/browser-icons/chrome.svg
%%WWWDIR%%/client/images/browser-icons/edge.svg
%%WWWDIR%%/client/images/browser-icons/firefox.svg
@@ -4076,13 +4061,10 @@
%%WWWDIR%%/client/images/cards/mastercard.png
%%WWWDIR%%/client/images/cards/visa.jpg
%%WWWDIR%%/client/images/channel_icon.png
-%%WWWDIR%%/client/images/circles.png
%%WWWDIR%%/client/images/cloud-laptop-error.png
%%WWWDIR%%/client/images/cloud-laptop-warning.png
%%WWWDIR%%/client/images/cloud-laptop.png
%%WWWDIR%%/client/images/cloud-upgrade-person-hand-to-face.png
-%%WWWDIR%%/client/images/computer-with-alert.svg
-%%WWWDIR%%/client/images/credit-card-empty-state.png
%%WWWDIR%%/client/images/favicon/android-chrome-192x192.png
%%WWWDIR%%/client/images/favicon/apple-touch-icon-120x120.png
%%WWWDIR%%/client/images/favicon/apple-touch-icon-144x144.png
@@ -4116,11 +4098,11 @@
%%WWWDIR%%/client/images/logo_email_blue.png
%%WWWDIR%%/client/images/logo_email_dark.png
%%WWWDIR%%/client/images/logo_email_gray.png
-%%WWWDIR%%/client/images/payment-method-illustration.png
-%%WWWDIR%%/client/images/warning.png
+%%WWWDIR%%/client/images/payment_processing.png
+%%WWWDIR%%/client/images/purchase_alert.png
%%WWWDIR%%/client/images/welcome_illustration_new.png
-%%WWWDIR%%/client/main.cc2eb97b4b3e260a6bb5.js
-%%WWWDIR%%/client/main.cc2eb97b4b3e260a6bb5.js.map
+%%WWWDIR%%/client/main.14f438a37b63d34e4fda.js
+%%WWWDIR%%/client/main.14f438a37b63d34e4fda.js.map
%%WWWDIR%%/client/manifest.json
%%WWWDIR%%/client/remote_entry.js
%%WWWDIR%%/client/remote_entry.js.map
diff --git a/www/microbin/Makefile b/www/microbin/Makefile
index cc8602fbe985..19ce8e635010 100644
--- a/www/microbin/Makefile
+++ b/www/microbin/Makefile
@@ -1,7 +1,7 @@
PORTNAME= microbin
DISTVERSIONPREFIX= v
DISTVERSION= 2.0.4
-PORTREVISION= 7
+PORTREVISION= 8
CATEGORIES= www
MAINTAINER= yuri@FreeBSD.org
diff --git a/www/miniflux/Makefile b/www/miniflux/Makefile
index f0b79bb20860..a49e892b91ea 100644
--- a/www/miniflux/Makefile
+++ b/www/miniflux/Makefile
@@ -1,5 +1,5 @@
PORTNAME= miniflux
-DISTVERSION= 2.1.2
+DISTVERSION= 2.1.3
PORTREVISION= 1
CATEGORIES= www
@@ -19,6 +19,7 @@ GH_PROJECT= v2
GH_TUPLE= \
PuerkitoBio:goquery:v1.9.1:puerkitobio_goquery/vendor/github.com/PuerkitoBio/goquery \
abadojack:whatlanggo:v1.0.1:abadojack_whatlanggo/vendor/github.com/abadojack/whatlanggo \
+ andybalholm:brotli:v1.1.0:andybalholm_brotli/vendor/github.com/andybalholm/brotli \
andybalholm:cascadia:v1.3.2:andybalholm_cascadia/vendor/github.com/andybalholm/cascadia \
beorn7:perks:v1.0.1:beorn7_perks/vendor/github.com/beorn7/perks \
cespare:xxhash:v2.2.0:cespare_xxhash_v2/vendor/github.com/cespare/xxhash/v2 \
@@ -28,13 +29,11 @@ GH_TUPLE= \
go-webauthn:webauthn:v0.10.2:go_webauthn_webauthn/vendor/github.com/go-webauthn/webauthn \
go-webauthn:x:v0.1.9:go_webauthn_x/vendor/github.com/go-webauthn/x \
golang-jwt:jwt:v5.2.1:golang_jwt_jwt_v5/vendor/github.com/golang-jwt/jwt/v5 \
- golang:appengine:v1.6.8:golang_appengine/vendor/google.golang.org/appengine \
- golang:crypto:v0.21.0:golang_crypto/vendor/golang.org/x/crypto \
- golang:net:v0.22.0:golang_net/vendor/golang.org/x/net \
- golang:oauth2:v0.18.0:golang_oauth2/vendor/golang.org/x/oauth2 \
- golang:protobuf:v1.5.3:golang_protobuf/vendor/github.com/golang/protobuf \
- golang:sys:v0.18.0:golang_sys/vendor/golang.org/x/sys \
- golang:term:v0.18.0:golang_term/vendor/golang.org/x/term \
+ golang:crypto:v0.22.0:golang_crypto/vendor/golang.org/x/crypto \
+ golang:net:v0.24.0:golang_net/vendor/golang.org/x/net \
+ golang:oauth2:v0.19.0:golang_oauth2/vendor/golang.org/x/oauth2 \
+ golang:sys:v0.19.0:golang_sys/vendor/golang.org/x/sys \
+ golang:term:v0.19.0:golang_term/vendor/golang.org/x/term \
golang:text:v0.14.0:golang_text/vendor/golang.org/x/text \
google:go-tpm:v0.9.0:google_go_tpm/vendor/github.com/google/go-tpm \
google:uuid:v1.6.0:google_uuid/vendor/github.com/google/uuid \
@@ -47,10 +46,10 @@ GH_TUPLE= \
prometheus:common:v0.48.0:prometheus_common/vendor/github.com/prometheus/common \
prometheus:procfs:v0.12.0:prometheus_procfs/vendor/github.com/prometheus/procfs \
protocolbuffers:protobuf-go:v1.33.0:protocolbuffers_protobuf_go/vendor/google.golang.org/protobuf \
- tdewolff:minify:v2.20.19:tdewolff_minify_v2/vendor/github.com/tdewolff/minify/v2 \
- tdewolff:parse:v2.7.12:tdewolff_parse_v2/vendor/github.com/tdewolff/parse/v2 \
+ tdewolff:minify:v2.20.20:tdewolff_minify_v2/vendor/github.com/tdewolff/minify/v2 \
+ tdewolff:parse:v2.7.13:tdewolff_parse_v2/vendor/github.com/tdewolff/parse/v2 \
x448:float16:v0.8.4:x448_float16/vendor/github.com/x448/float16 \
- yuin:goldmark:v1.7.0:yuin_goldmark/vendor/github.com/yuin/goldmark
+ yuin:goldmark:v1.7.1:yuin_goldmark/vendor/github.com/yuin/goldmark
USE_RC_SUBR= miniflux
GO_PKGNAME= miniflux.app
diff --git a/www/miniflux/distinfo b/www/miniflux/distinfo
index 6ffb5afd7c4d..e39379a61ec1 100644
--- a/www/miniflux/distinfo
+++ b/www/miniflux/distinfo
@@ -1,10 +1,12 @@
-TIMESTAMP = 1711896499
-SHA256 (miniflux-v2-2.1.2_GH0.tar.gz) = 5025c895c24c5636f8e5d3aeed8f9952fe63838c50fbecbcaa51b2837826d68a
-SIZE (miniflux-v2-2.1.2_GH0.tar.gz) = 698107
+TIMESTAMP = 1714289655
+SHA256 (miniflux-v2-2.1.3_GH0.tar.gz) = 815f5ecd37c09c7aebbc458c10c2c88843940508eeb628236af05e8c908e89e6
+SIZE (miniflux-v2-2.1.3_GH0.tar.gz) = 710470
SHA256 (PuerkitoBio-goquery-v1.9.1_GH0.tar.gz) = ad303bf30070c34fa0f05d2701b7bd024642e0183708a96ed0d2b837b21f4d1a
SIZE (PuerkitoBio-goquery-v1.9.1_GH0.tar.gz) = 107417
SHA256 (abadojack-whatlanggo-v1.0.1_GH0.tar.gz) = 8c9aef03ace03ca11204159b83c8f77c816fc2a71232483d5370817dcbb2c561
SIZE (abadojack-whatlanggo-v1.0.1_GH0.tar.gz) = 148139
+SHA256 (andybalholm-brotli-v1.1.0_GH0.tar.gz) = 63395834ab5ce6ad91f90af79223995f44aacecda3c66ac5700a87b080c0009c
+SIZE (andybalholm-brotli-v1.1.0_GH0.tar.gz) = 1829084
SHA256 (andybalholm-cascadia-v1.3.2_GH0.tar.gz) = f30ebb75a9f43a30478c870dd6e372ac7ef64549f621eceb3b13fd91bfde80cb
SIZE (andybalholm-cascadia-v1.3.2_GH0.tar.gz) = 35370
SHA256 (beorn7-perks-v1.0.1_GH0.tar.gz) = 98db84bb0224a26094e6adba91b7ee7a1a7ace28cb648d818f8e779e6a19f825
@@ -23,20 +25,16 @@ SHA256 (go-webauthn-x-v0.1.9_GH0.tar.gz) = 52ee591589fc8636e248c1ae9092e03c49e33
SIZE (go-webauthn-x-v0.1.9_GH0.tar.gz) = 10564
SHA256 (golang-jwt-jwt-v5.2.1_GH0.tar.gz) = 76d1c81a7cd38ed03309f770f60ac3417f16c75b4c53a0c01bb783863783fef0
SIZE (golang-jwt-jwt-v5.2.1_GH0.tar.gz) = 61340
-SHA256 (golang-appengine-v1.6.8_GH0.tar.gz) = 9f0029767e180c64ef42c448f02a247deb2980b2ba6908977ad4c53ebae1abb5
-SIZE (golang-appengine-v1.6.8_GH0.tar.gz) = 628708
-SHA256 (golang-crypto-v0.21.0_GH0.tar.gz) = 4c65ea22c4b0bc7380b4213a294698c517fe3378e0edd30c4d2b6cf7f12fc8bd
-SIZE (golang-crypto-v0.21.0_GH0.tar.gz) = 1810887
-SHA256 (golang-net-v0.22.0_GH0.tar.gz) = 01a7906b265d4c562e210926780f7698e8307da296e91c55711066bce453845e
-SIZE (golang-net-v0.22.0_GH0.tar.gz) = 1501049
-SHA256 (golang-oauth2-v0.18.0_GH0.tar.gz) = 497458219c1b4c3c44f0acf33a54c68dd723dcc3a1c592f0ac712265008a182a
-SIZE (golang-oauth2-v0.18.0_GH0.tar.gz) = 99719
-SHA256 (golang-protobuf-v1.5.3_GH0.tar.gz) = 48457a6a9e8c78a7556ff5ff4a4c77d7df9bf70e882491ee0f3f1ff06db2bfaa
-SIZE (golang-protobuf-v1.5.3_GH0.tar.gz) = 171822
-SHA256 (golang-sys-v0.18.0_GH0.tar.gz) = cee1944ab655ddf7eab6301e15cb6d01fdd6cd0a0f0b5896050ee60b124e084c
-SIZE (golang-sys-v0.18.0_GH0.tar.gz) = 1448211
-SHA256 (golang-term-v0.18.0_GH0.tar.gz) = d95bb8c95f321f8f1b33bd45c168c17c2e09e932b2e96c15ad5a30b87317eb84
-SIZE (golang-term-v0.18.0_GH0.tar.gz) = 14747
+SHA256 (golang-crypto-v0.22.0_GH0.tar.gz) = be0f461ea3ce13349996dca48fbb27537fd738aa6498fb38cfbf87a2ce31e082
+SIZE (golang-crypto-v0.22.0_GH0.tar.gz) = 1813353
+SHA256 (golang-net-v0.24.0_GH0.tar.gz) = 6fbc9f6ddc538c67affd1248d68ca85f69e0abe916181b1cd81323093afa96b9
+SIZE (golang-net-v0.24.0_GH0.tar.gz) = 1509016
+SHA256 (golang-oauth2-v0.19.0_GH0.tar.gz) = a10e7be03a7d63239c56664da4979577599aca5929aec725b09d3159bfd11637
+SIZE (golang-oauth2-v0.19.0_GH0.tar.gz) = 98361
+SHA256 (golang-sys-v0.19.0_GH0.tar.gz) = da82f3d99abd964483ec5d622ddf620e2492ec0a18c154475f35d938c4240c7b
+SIZE (golang-sys-v0.19.0_GH0.tar.gz) = 1449493
+SHA256 (golang-term-v0.19.0_GH0.tar.gz) = 9ef2c212cb48b0736054cfc3556bea414fb526fff877f6c50c30f78fa5c19218
+SIZE (golang-term-v0.19.0_GH0.tar.gz) = 14741
SHA256 (golang-text-v0.14.0_GH0.tar.gz) = c80295e75bda599d17ccf74038139b0957b9915fae4e60d8b46f89454ef171a0
SIZE (golang-text-v0.14.0_GH0.tar.gz) = 8974094
SHA256 (google-go-tpm-v0.9.0_GH0.tar.gz) = 4173733d1c3b82cf935edd35caf4f47dc13efdae835c6225a2f3e66cf64f40a2
@@ -61,11 +59,11 @@ SHA256 (prometheus-procfs-v0.12.0_GH0.tar.gz) = 2e10f60725a5905d6cfaeffd0bc14411
SIZE (prometheus-procfs-v0.12.0_GH0.tar.gz) = 237430
SHA256 (protocolbuffers-protobuf-go-v1.33.0_GH0.tar.gz) = 21661d7634e3f783b015b93ceafc0261f2f02a270799bac871602c3a2172cfbe
SIZE (protocolbuffers-protobuf-go-v1.33.0_GH0.tar.gz) = 1482410
-SHA256 (tdewolff-minify-v2.20.19_GH0.tar.gz) = 705356c3d7eb2e773557a280579c1dcbcda5c78378ea77dd346f7a367946f5e1
-SIZE (tdewolff-minify-v2.20.19_GH0.tar.gz) = 7044971
-SHA256 (tdewolff-parse-v2.7.12_GH0.tar.gz) = 6c99569467d9fb6c2f28c0eea0366d2b5b48e5726b4caf3e0a0708dc4a7d304a
-SIZE (tdewolff-parse-v2.7.12_GH0.tar.gz) = 108858
+SHA256 (tdewolff-minify-v2.20.20_GH0.tar.gz) = 15027db4d856e72482e0ff7b3cee8bcb9e3dcee44ef3e4462de9c11f4e6066b6
+SIZE (tdewolff-minify-v2.20.20_GH0.tar.gz) = 7734604
+SHA256 (tdewolff-parse-v2.7.13_GH0.tar.gz) = 7797bcffb9e9f8342ecab4f23bc3b2c1bd31106c419f79804e8dcb32de6d2c44
+SIZE (tdewolff-parse-v2.7.13_GH0.tar.gz) = 109407
SHA256 (x448-float16-v0.8.4_GH0.tar.gz) = 2f8f03b3d972f14e1a5a33bab5d1539174e46c696bc91c5b8ac6d7f9036dde15
SIZE (x448-float16-v0.8.4_GH0.tar.gz) = 13098
-SHA256 (yuin-goldmark-v1.7.0_GH0.tar.gz) = 07f887b06809aefe5806af3c33ce6299070f57cb726b1ad0302cc67717808286
-SIZE (yuin-goldmark-v1.7.0_GH0.tar.gz) = 251970
+SHA256 (yuin-goldmark-v1.7.1_GH0.tar.gz) = e1159c456d6d5c8fdfeb61534aa23ef6f4108bbf74a21016199debfdde82590a
+SIZE (yuin-goldmark-v1.7.1_GH0.tar.gz) = 252103
diff --git a/www/minio/Makefile b/www/minio/Makefile
index 4a94d887d43c..8d4c24acd34e 100644
--- a/www/minio/Makefile
+++ b/www/minio/Makefile
@@ -1,6 +1,6 @@
PORTNAME= minio
PORTVERSION= ${GH_TAGNAME:S/RELEASE.//:S/Z//:S/T/-/:S/-/./g}
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= www
DIST_SUBDIR= minio
diff --git a/www/miniserve/Makefile b/www/miniserve/Makefile
index bb42f9e32087..8106b0c8b5f2 100644
--- a/www/miniserve/Makefile
+++ b/www/miniserve/Makefile
@@ -1,7 +1,7 @@
PORTNAME= miniserve
DISTVERSIONPREFIX= v
DISTVERSION= 0.27.1
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= www
MAINTAINER= mikael@FreeBSD.org
diff --git a/www/mirrorselect/Makefile b/www/mirrorselect/Makefile
index ccb998c258c2..7b16377d6a86 100644
--- a/www/mirrorselect/Makefile
+++ b/www/mirrorselect/Makefile
@@ -1,7 +1,7 @@
PORTNAME= mirrorselect
DISTVERSIONPREFIX= v
DISTVERSION= 0.9.0
-PORTREVISION= 19
+PORTREVISION= 20
CATEGORIES= www ports-mgmt
MAINTAINER= aly@aaronly.me
diff --git a/www/mod_auth_openid/Makefile b/www/mod_auth_openid/Makefile
index 27d732746dab..3d2c1b81aa8f 100644
--- a/www/mod_auth_openid/Makefile
+++ b/www/mod_auth_openid/Makefile
@@ -12,6 +12,9 @@ WWW= https://findingscience.com/mod_auth_openid/
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/COPYING
+DEPRECATED= Depends on expired devel/libopkele
+EXPIRATION_DATE=2024-05-24
+
LIB_DEPENDS= libopkele.so:devel/libopkele \
libsqlite3.so:databases/sqlite3
diff --git a/www/mod_tidy/Makefile b/www/mod_tidy/Makefile
deleted file mode 100644
index 30e90324f06a..000000000000
--- a/www/mod_tidy/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-PORTNAME= mod_tidy
-PORTVERSION= 0.5.5
-PORTREVISION= 2
-CATEGORIES= www
-MASTER_SITES= http://mod-tidy.sourceforge.net/src/
-DIST_SUBDIR= apache2
-
-MAINTAINER= apache@FreeBSD.org
-COMMENT= Validates the HTML output of your apache2 web server
-WWW= https://mod-tidy.sourceforge.net/
-
-DEPRECATED= Last upstream release was in 2005
-EXPIRATION_DATE=2024-04-24
-
-LICENSE= APACHE20 MIT
-LICENSE_COMB= multi
-
-LIB_DEPENDS= libtidy5.so:www/tidy-html5
-
-WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}/src
-USES= apache
-AP_FAST_BUILD= yes
-AP_GENPLIST= yes
-AP_INC+= ${LOCALBASE}/include
-AP_LIB+= ${LOCALBASE}/lib -ltidy5
-
-post-patch:
- @${REINPLACE_CMD} -e "s/buffio.h/tidybuffio.h/g" \
- ${WRKSRC}/mod_tidy.c
-
-.include <bsd.port.mk>
diff --git a/www/mod_tidy/distinfo b/www/mod_tidy/distinfo
deleted file mode 100644
index b5d285426a03..000000000000
--- a/www/mod_tidy/distinfo
+++ /dev/null
@@ -1,2 +0,0 @@
-SHA256 (apache2/mod_tidy-0.5.5.tar.gz) = 3c8d3ca0ac67974efc82040bde224068e9b3024e1a2521664716aa2618310392
-SIZE (apache2/mod_tidy-0.5.5.tar.gz) = 312340
diff --git a/www/mod_tidy/pkg-descr b/www/mod_tidy/pkg-descr
deleted file mode 100644
index 06660fcc875e..000000000000
--- a/www/mod_tidy/pkg-descr
+++ /dev/null
@@ -1,6 +0,0 @@
-mod_tidy validates the HTML output of your apache2 web server. So you don't need
-a separate application to check your HTML.
-It works as a filter that hooks up to HTML output. mod_tidy feeds the HTML
-output to TidyLib which validates the HTML output. If TidyLib finds
-an error the client receives a HTML page with a list of all found errors. If
-TidyLib doesn't complain you will get your HTML data as without mod_tidy.
diff --git a/www/monolith/Makefile b/www/monolith/Makefile
index ac8daae02a53..dbdd6b038326 100644
--- a/www/monolith/Makefile
+++ b/www/monolith/Makefile
@@ -1,7 +1,7 @@
PORTNAME= monolith
DISTVERSIONPREFIX= v
DISTVERSION= 2.8.1
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= www
MAINTAINER= lcook@FreeBSD.org
diff --git a/www/moodle41/Makefile b/www/moodle41/Makefile
index 5d51b5431d5f..6dfdbe7e0e17 100644
--- a/www/moodle41/Makefile
+++ b/www/moodle41/Makefile
@@ -1,5 +1,6 @@
PORTNAME= moodle
PORTVERSION= 4.1.10
+PORTREVISION= 1
CATEGORIES= www education
MASTER_SITES= SF/moodle/Moodle/stable401/
PKGNAMESUFFIX= ${PKGORIGIN:T:S/moodle//}${PHP_PKGNAMESUFFIX}
diff --git a/www/moodle42/Makefile b/www/moodle42/Makefile
index 44b12bbe8da3..225b4b0df77f 100644
--- a/www/moodle42/Makefile
+++ b/www/moodle42/Makefile
@@ -1,5 +1,6 @@
PORTNAME= moodle
PORTVERSION= 4.2.7
+PORTREVISION= 2
CATEGORIES= www education
MASTER_SITES= SF/moodle/Moodle/stable402/
PKGNAMESUFFIX= ${PKGORIGIN:T:S/moodle//}${PHP_PKGNAMESUFFIX}
diff --git a/www/moodle43/Makefile b/www/moodle43/Makefile
index f53dd5eafd90..cbe53a0a6a86 100644
--- a/www/moodle43/Makefile
+++ b/www/moodle43/Makefile
@@ -1,5 +1,6 @@
PORTNAME= moodle
PORTVERSION= 4.3.4
+PORTREVISION= 2
CATEGORIES= www education
MASTER_SITES= SF/moodle/Moodle/stable403/
PKGNAMESUFFIX= ${PKGORIGIN:T:S/moodle//}${PHP_PKGNAMESUFFIX}
diff --git a/www/moodle44/Makefile b/www/moodle44/Makefile
index 31194662467a..e48a912ce9ed 100644
--- a/www/moodle44/Makefile
+++ b/www/moodle44/Makefile
@@ -1,5 +1,6 @@
PORTNAME= moodle
PORTVERSION= 4.4
+PORTREVISION= 3
CATEGORIES= www education
MASTER_SITES= SF/moodle/Moodle/stable404/
PKGNAMESUFFIX= ${PKGORIGIN:T:S/moodle//}${PHP_PKGNAMESUFFIX}
diff --git a/www/morty/Makefile b/www/morty/Makefile
index a19172e559f3..d8f21c1c8759 100644
--- a/www/morty/Makefile
+++ b/www/morty/Makefile
@@ -2,7 +2,7 @@ PORTNAME= morty
DISTVERSIONPREFIX= v
DISTVERSION= 0.2.0-12
DISTVERSIONSUFFIX= -gfe94d9a
-PORTREVISION= 19
+PORTREVISION= 20
CATEGORIES= www net
MAINTAINER= yuri@FreeBSD.org
diff --git a/www/ncgopher/Makefile b/www/ncgopher/Makefile
index 3f5a8a2bd2aa..7c8b88dff703 100644
--- a/www/ncgopher/Makefile
+++ b/www/ncgopher/Makefile
@@ -1,7 +1,7 @@
PORTNAME= ncgopher
DISTVERSIONPREFIX= v
DISTVERSION= 0.4.0
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= www
MAINTAINER= beastieboy@beastieboy.net
diff --git a/www/newsboat/Makefile b/www/newsboat/Makefile
index 4995beeb50af..2aae4ca5ec72 100644
--- a/www/newsboat/Makefile
+++ b/www/newsboat/Makefile
@@ -1,6 +1,6 @@
PORTNAME= newsboat
DISTVERSION= 2.33
-PORTREVISION= 4
+PORTREVISION= 5
CATEGORIES= www
MASTER_SITES= https://newsboat.org/releases/${DISTVERSION}/
DISTFILES= ${DISTNAME}${EXTRACT_SUFX}
diff --git a/www/nextcloud-appointments/Makefile b/www/nextcloud-appointments/Makefile
index f9c7af801489..ba19d6f4adc9 100644
--- a/www/nextcloud-appointments/Makefile
+++ b/www/nextcloud-appointments/Makefile
@@ -1,5 +1,6 @@
PORTNAME= appointments
-PORTVERSION= 2.0.7
+PORTVERSION= 2.1.3
+PORTREVISION= 3
CATEGORIES= www
MASTER_SITES= https://github.com/${GH_ACCOUNT}/${PORTNAME}/raw/${DISTVERSIONPREFIX}${DISTVERSION}/build/artifacts/appstore/
DISTVERSIONPREFIX= v
@@ -12,13 +13,10 @@ WWW= https://apps.nextcloud.com/apps/appointments
LICENSE= AGPLv3
LICENSE_FILE= ${WRKSRC}/COPYING
-NEXTCLOUD_RUN_DEPENDS= 26
+NEXTCLOUD_RUN_DEPENDS= 27
USES= nextcloud php:flavors
GH_ACCOUNT= SergeyMosin
-post-patch:
- ${RMDIR} ${WRKSRC}/lib/CalDAV
-
.include <bsd.port.mk>
diff --git a/www/nextcloud-appointments/distinfo b/www/nextcloud-appointments/distinfo
index 0e251f0aaa11..0ae6b519d776 100644
--- a/www/nextcloud-appointments/distinfo
+++ b/www/nextcloud-appointments/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1713718545
-SHA256 (nextcloud/appointments-2.0.7/appointments.tar.gz) = 81b60694d6b01908ab978cdb0d0b3da6da48202aa48e18a200e3e0ab4e49ae28
-SIZE (nextcloud/appointments-2.0.7/appointments.tar.gz) = 1844479
+TIMESTAMP = 1715595612
+SHA256 (nextcloud/appointments-2.1.3/appointments.tar.gz) = a9401458529fc0d357c069eb9a8de4843fc944fff8bd301de992b9d152137af8
+SIZE (nextcloud/appointments-2.1.3/appointments.tar.gz) = 1863497
diff --git a/www/nextcloud-calendar/Makefile b/www/nextcloud-calendar/Makefile
index 23a179485ca9..51ad84cab585 100644
--- a/www/nextcloud-calendar/Makefile
+++ b/www/nextcloud-calendar/Makefile
@@ -1,6 +1,7 @@
PORTNAME= calendar
-PORTVERSION= 4.7.0
+PORTVERSION= 4.7.4
DISTVERSIONPREFIX= v
+PORTREVISION= 3
CATEGORIES= www
MAINTAINER= brnrd@FreeBSD.org
diff --git a/www/nextcloud-calendar/distinfo b/www/nextcloud-calendar/distinfo
index 2db47ff7bce4..e477073423cc 100644
--- a/www/nextcloud-calendar/distinfo
+++ b/www/nextcloud-calendar/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1713859664
-SHA256 (nextcloud/calendar-v4.7.0.tar.gz) = 62f6a374fd9df2403aa2ded221c5666eccb83f23116a5228b4a25520488dcf8d
-SIZE (nextcloud/calendar-v4.7.0.tar.gz) = 18133551
+TIMESTAMP = 1715847935
+SHA256 (nextcloud/calendar-v4.7.4.tar.gz) = 0b70187f5993dda3760cadb721a7e33c898adba36d8351bb1a76394d3ecff9fb
+SIZE (nextcloud/calendar-v4.7.4.tar.gz) = 18134366
diff --git a/www/nextcloud-contacts/Makefile b/www/nextcloud-contacts/Makefile
index 8b6e66aec7cc..3073492b2c1e 100644
--- a/www/nextcloud-contacts/Makefile
+++ b/www/nextcloud-contacts/Makefile
@@ -1,13 +1,14 @@
PORTNAME= contacts
-PORTVERSION= 5.5.3
+PORTVERSION= 6.0.0
DISTVERSIONPREFIX= v
+PORTREVISION= 3
CATEGORIES= www
MAINTAINER= brnrd@FreeBSD.org
COMMENT= Contacts app for Nextcloud
WWW= https://apps.nextcloud.com/apps/contacts
-NEXTCLOUD_RUN_DEPENDS= 25
+NEXTCLOUD_RUN_DEPENDS= 29
USES= cpe nextcloud php:flavors
CPE_VENDOR= nextcloud
diff --git a/www/nextcloud-contacts/distinfo b/www/nextcloud-contacts/distinfo
index 863ce67f01e5..d58cb5e29950 100644
--- a/www/nextcloud-contacts/distinfo
+++ b/www/nextcloud-contacts/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1709978955
-SHA256 (nextcloud/contacts-v5.5.3.tar.gz) = cf19a03228b3cd719f45e452f5727e7dbead2512c7fd9e4dbee2e9b296004452
-SIZE (nextcloud/contacts-v5.5.3.tar.gz) = 4990400
+TIMESTAMP = 1713982593
+SHA256 (nextcloud/contacts-v6.0.0.tar.gz) = e3c11127d0d0f70ef57a7713d9756f715695f846ed86013142588a3b5b10fb50
+SIZE (nextcloud/contacts-v6.0.0.tar.gz) = 8599250
diff --git a/www/nextcloud-deck/Makefile b/www/nextcloud-deck/Makefile
index 8f57d14f93fc..e5d45231d58b 100644
--- a/www/nextcloud-deck/Makefile
+++ b/www/nextcloud-deck/Makefile
@@ -1,6 +1,7 @@
PORTNAME= deck
-PORTVERSION= 1.12.2
+PORTVERSION= 1.13.0
DISTVERSIONPREFIX= v
+PORTREVISION= 3
CATEGORIES= www
#MASTER_SITES= https://github.com/nextcloud-releases/${PORTNAME}/releases/download/${DISTVERSIONPREFIX}${PORTVERSION}/
@@ -10,7 +11,7 @@ WWW= https://apps.nextcloud.com/apps/deck
LICENSE_FILE= ${WRKSRC}/LICENSE
-NEXTCLOUD_RUN_DEPENDS= 28
+NEXTCLOUD_RUN_DEPENDS= 29
USES= cpe nextcloud php:flavors
diff --git a/www/nextcloud-deck/distinfo b/www/nextcloud-deck/distinfo
index fd7ebd61b937..e989987e8938 100644
--- a/www/nextcloud-deck/distinfo
+++ b/www/nextcloud-deck/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1708080834
-SHA256 (nextcloud/deck-v1.12.2.tar.gz) = 2bd646dcf73d75fac5de1162dc508aa195b2c1751ab9e42ec06a5992cba64e80
-SIZE (nextcloud/deck-v1.12.2.tar.gz) = 16103927
+TIMESTAMP = 1713982267
+SHA256 (nextcloud/deck-v1.13.0.tar.gz) = 1b27f2ab8ac9bf86a52e17485bc4bcc0250039dc69e941bb5205161f40a4551e
+SIZE (nextcloud/deck-v1.13.0.tar.gz) = 15062066
diff --git a/www/nextcloud-forms/Makefile b/www/nextcloud-forms/Makefile
index 08da73683a7e..3c17c3c4da08 100644
--- a/www/nextcloud-forms/Makefile
+++ b/www/nextcloud-forms/Makefile
@@ -1,6 +1,7 @@
PORTNAME= forms
PORTVERSION= 4.2.3
DISTVERSIONPREFIX= v
+PORTREVISION= 3
CATEGORIES= www
MAINTAINER= brnrd@FreeBSD.org
diff --git a/www/nextcloud-groupfolders/Makefile b/www/nextcloud-groupfolders/Makefile
index 25a2436ac291..d2cfecdbcc19 100644
--- a/www/nextcloud-groupfolders/Makefile
+++ b/www/nextcloud-groupfolders/Makefile
@@ -1,6 +1,7 @@
PORTNAME= groupfolders
-PORTVERSION= 16.0.6
+PORTVERSION= 17.0.0
DISTVERSIONPREFIX= v
+PORTREVISION= 3
CATEGORIES= www
MASTER_SITES= https://github.com/nextcloud-releases/${PORTNAME}/releases/download/${DISTVERSIONPREFIX}${DISTVERSION}/
@@ -8,7 +9,7 @@ MAINTAINER= brnrd@FreeBSD.org
COMMENT= Groupfolders app for Nextcloud
WWW= https://apps.nextcloud.com/apps/groupfolders
-NEXTCLOUD_RUN_DEPENDS= 28
+NEXTCLOUD_RUN_DEPENDS= 29
USES= nextcloud php:flavors
diff --git a/www/nextcloud-groupfolders/distinfo b/www/nextcloud-groupfolders/distinfo
index 917b996c9653..1c4cd3e223ce 100644
--- a/www/nextcloud-groupfolders/distinfo
+++ b/www/nextcloud-groupfolders/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1712314061
-SHA256 (nextcloud/groupfolders-v16.0.6.tar.gz) = c0491af687a0398cfac3dc1cac0d6e81d5c0fc44c50e0ba84708c5e83fe2eed2
-SIZE (nextcloud/groupfolders-v16.0.6.tar.gz) = 3129381
+TIMESTAMP = 1716026325
+SHA256 (nextcloud/groupfolders-v17.0.0.tar.gz) = 46c68e0ddc92b1b56adcea4594cafacd48942151b09d62c701347479eae52d04
+SIZE (nextcloud/groupfolders-v17.0.0.tar.gz) = 3350686
diff --git a/www/nextcloud-notes/Makefile b/www/nextcloud-notes/Makefile
index 7b9e18765919..20fa9cb71d1c 100644
--- a/www/nextcloud-notes/Makefile
+++ b/www/nextcloud-notes/Makefile
@@ -1,6 +1,7 @@
PORTNAME= notes
-PORTVERSION= 4.9.4
+PORTVERSION= 4.10.0
DISTVERSIONPREFIX= v
+PORTREVISION= 3
CATEGORIES= www editors
MASTER_SITES= https://github.com/nextcloud/${PORTNAME}/releases/download/${DISTVERSIONPREFIX}${PORTVERSION}/
DISTNAME= ${PORTNAME}
diff --git a/www/nextcloud-notes/distinfo b/www/nextcloud-notes/distinfo
index bb425ec205b4..4e49f5e81540 100644
--- a/www/nextcloud-notes/distinfo
+++ b/www/nextcloud-notes/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1711798618
-SHA256 (nextcloud/notes-4.9.4/notes.tar.gz) = 2ef524020b08fd0e7bfe6cce9ba7bebdf293b03e9b7f30808a96984b769871b8
-SIZE (nextcloud/notes-4.9.4/notes.tar.gz) = 6349343
+TIMESTAMP = 1713982406
+SHA256 (nextcloud/notes-4.10.0/notes.tar.gz) = 6afeb2e465624f3947b6751bfce203c3ed30740fd94703d840c537c8311b3134
+SIZE (nextcloud/notes-4.10.0/notes.tar.gz) = 6351233
diff --git a/www/nextcloud-tasks/Makefile b/www/nextcloud-tasks/Makefile
index 3ff3ebdf7ccf..4e8e77c27b31 100644
--- a/www/nextcloud-tasks/Makefile
+++ b/www/nextcloud-tasks/Makefile
@@ -1,6 +1,7 @@
PORTNAME= tasks
-PORTVERSION= 0.15.0
+PORTVERSION= 0.16.0
DISTVERSIONPREFIX= v
+PORTREVISION= 3
CATEGORIES= www
MASTER_SITES?= https://github.com/nextcloud/${PORTNAME}/releases/download/${DISTVERSIONPREFIX}${PORTVERSION}/
DISTNAME= ${PORTNAME}
@@ -11,7 +12,7 @@ WWW= https://apps.nextcloud.com/apps/tasks
LICENSE_FILE= ${WRKSRC}/LICENSE
-NEXTCLOUD_RUN_DEPENDS= 25
+NEXTCLOUD_RUN_DEPENDS= 28
USES= nextcloud php:flavors
diff --git a/www/nextcloud-tasks/distinfo b/www/nextcloud-tasks/distinfo
index 6370caaab692..056d51d63e0d 100644
--- a/www/nextcloud-tasks/distinfo
+++ b/www/nextcloud-tasks/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1686393351
-SHA256 (nextcloud/tasks-0.15.0/tasks.tar.gz) = 9e2cc95050722bbf0567a28f278cdf394e59f42940c61c2043b77e5f94c69ccf
-SIZE (nextcloud/tasks-0.15.0/tasks.tar.gz) = 11127579
+TIMESTAMP = 1715595671
+SHA256 (nextcloud/tasks-0.16.0/tasks.tar.gz) = 1e2b5841c7544541ee8d134c1748ca433bd23bdddb22d8ac2347a6ab4cb0f29e
+SIZE (nextcloud/tasks-0.16.0/tasks.tar.gz) = 2592926
diff --git a/www/nextcloud/Makefile b/www/nextcloud/Makefile
index ac4b12dcca79..aeaa0bb702ae 100644
--- a/www/nextcloud/Makefile
+++ b/www/nextcloud/Makefile
@@ -1,5 +1,6 @@
PORTNAME= nextcloud
-PORTVERSION= 28.0.4
+PORTVERSION= 29.0.0
+PORTREVISION= 3
CATEGORIES= www
MASTER_SITES= https://download.nextcloud.com/server/releases/
PKGNAMESUFFIX= ${PHP_PKGNAMESUFFIX}
diff --git a/www/nextcloud/distinfo b/www/nextcloud/distinfo
index 82094b19056e..1a3ecbb26ea0 100644
--- a/www/nextcloud/distinfo
+++ b/www/nextcloud/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1711627473
-SHA256 (nextcloud/nextcloud-28.0.4.tar.bz2) = 9bfecee1e12fba48c49e9a71caa81c4ba10b2884787fab75d64ccfd122a13019
-SIZE (nextcloud/nextcloud-28.0.4.tar.bz2) = 189242050
+TIMESTAMP = 1713982058
+SHA256 (nextcloud/nextcloud-29.0.0.tar.bz2) = e9b53f6432b6f664487d3869645fa121a64cf0ed6aee83aa560903daf86b52bd
+SIZE (nextcloud/nextcloud-29.0.0.tar.bz2) = 207504265
diff --git a/www/nghttp2/Makefile b/www/nghttp2/Makefile
index 1be233b90a06..cde21d14801d 100644
--- a/www/nghttp2/Makefile
+++ b/www/nghttp2/Makefile
@@ -1,5 +1,5 @@
PORTNAME= nghttp2
-PORTVERSION= 1.61.0
+PORTVERSION= 1.62.1
CATEGORIES= www net
MASTER_SITES= https://github.com/nghttp2/nghttp2/releases/download/v${PORTVERSION}/
@@ -13,27 +13,29 @@ LICENSE_FILE= ${WRKSRC}/COPYING
BUILD_DEPENDS= libnghttp2>=${PORTVERSION}:www/libnghttp2
LIB_DEPENDS= libnghttp2.so:www/libnghttp2
-USES= cmake compiler:c++14-lang cpe localbase:ldflags pathfix pkgconfig python:env shebangfix ssl tar:xz
+USES= cmake compiler:c++20-lang cpe localbase:ldflags pathfix pkgconfig python:env shebangfix ssl tar:xz
CMAKE_ARGS= -DCMAKE_INSTALL_MANDIR=share/man
-CMAKE_OFF= ENABLE_DEBUG ENABLE_HTTP3 ENABLE_LIB_ONLY ENABLE_STATIC_CRT ENABLE_WERROR WITH_LIBBPF WITH_MRUBY WITH_NEVERBLEED
-CMAKE_ON= ENABLE_DOC ENABLE_FAILMALLOC ENABLE_THREADS
+CMAKE_OFF= BUILD_SHARED_LIBS BUILD_STATIC_LIBS BUILD_TESTING ENABLE_DEBUG ENABLE_HTTP3 ENABLE_LIB_ONLY ENABLE_STATIC_CRT ENABLE_WERROR WITH_LIBBPF WITH_MRUBY WITH_NEVERBLEED
+CMAKE_ON= ENABLE_FAILMALLOC ENABLE_THREADS WITH_JEMALLOC
+USE_CXXSTD= c++20
USE_RC_SUBR= nghttpx
SHEBANG_FILES= script/fetch-ocsp-response
-OPTIONS_DEFINE= APP EXAMPLES HPACK
+OPTIONS_DEFINE= APP DOCS EXAMPLES HPACK
OPTIONS_DEFAULT=APP HPACK
OPTIONS_SUB= yes
APP_DESC= Build h2load, nghttp, nghttpd and nghttpx
APP_BUILD_DEPENDS= c-ares>=1.7.5:dns/c-ares \
libev>=4.11:devel/libev
-APP_CMAKE_BOOL= ENABLE_APP
+APP_CMAKE_BOOL= ENABLE_APP WITH_LIBXML2
APP_LIB_DEPENDS= libcares.so:dns/c-ares \
libev.so:devel/libev
APP_USE= GNOME=libxml2
APP_USES= gnome
+DOCS_CMAKE_BOOL= ENABLE_DOC
EXAMPLES_BUILD_DEPENDS= libevent>=2.0.8:devel/libevent
EXAMPLES_CMAKE_BOOL= ENABLE_EXAMPLES
EXAMPLES_LIB_DEPENDS= libevent_openssl.so:devel/libevent
diff --git a/www/nghttp2/distinfo b/www/nghttp2/distinfo
index 8579be1c53e4..2791d0cdcc6a 100644
--- a/www/nghttp2/distinfo
+++ b/www/nghttp2/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1712261836
-SHA256 (nghttp2-1.61.0.tar.xz) = c0e660175b9dc429f11d25b9507a834fb752eea9135ab420bb7cb7e9dbcc9654
-SIZE (nghttp2-1.61.0.tar.xz) = 1645808
+TIMESTAMP = 1716142058
+SHA256 (nghttp2-1.62.1.tar.xz) = 2345d4dc136fda28ce243e0bb21f2e7e8ef6293d62c799abbf6f633a6887af72
+SIZE (nghttp2-1.62.1.tar.xz) = 1606084
diff --git a/www/nghttp2/pkg-plist b/www/nghttp2/pkg-plist
index 54550692d97e..8b844d00e47f 100644
--- a/www/nghttp2/pkg-plist
+++ b/www/nghttp2/pkg-plist
@@ -5,6 +5,7 @@
%%APP%%bin/nghttpd
%%APP%%bin/nghttpx
@sample etc/nghttpx/nghttpx.conf.sample
+%%PORTDOCS%%%%DOCSDIR%%/README.rst
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/client
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/client.c
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/deflate
diff --git a/www/nginx-devel/Makefile b/www/nginx-devel/Makefile
index 9a244c1c123f..cd7f337b85b5 100644
--- a/www/nginx-devel/Makefile
+++ b/www/nginx-devel/Makefile
@@ -1,5 +1,6 @@
PORTNAME?= nginx
-PORTVERSION= 1.25.5
+PORTVERSION= 1.26.0
+PORTREVISION= 1
CATEGORIES= www
MASTER_SITES= https://nginx.org/download/ \
LOCAL/osa
@@ -15,7 +16,7 @@ LICENSE_FILE?= ${WRKSRC}/LICENSE
CONFLICTS_INSTALL= nginx
-PORTSCOUT= limit:^1\.2[4-5]\.[0-9]*
+PORTSCOUT= limit:^1\.2[6-7]\.[0-9]*
USES= cpe
diff --git a/www/nginx-devel/Makefile.extmod b/www/nginx-devel/Makefile.extmod
index 503e676388ff..4d51f8530bf2 100644
--- a/www/nginx-devel/Makefile.extmod
+++ b/www/nginx-devel/Makefile.extmod
@@ -231,7 +231,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.3:njs
+NJS_GH_TUPLE= nginx:njs:0.8.4:njs
NJS_VARS= DSO_EXTMODS+=njs NJS_SUBDIR=/nginx
NJS_XML_IMPLIES= NJS
diff --git a/www/nginx-devel/distinfo b/www/nginx-devel/distinfo
index 39a6daca4441..ce61e4e583bb 100644
--- a/www/nginx-devel/distinfo
+++ b/www/nginx-devel/distinfo
@@ -1,6 +1,6 @@
-TIMESTAMP = 1713445894
-SHA256 (nginx-1.25.5.tar.gz) = 2fe2294f8af4144e7e842eaea884182a84ee7970e11046ba98194400902bbec0
-SIZE (nginx-1.25.5.tar.gz) = 1244060
+TIMESTAMP = 1714506394
+SHA256 (nginx-1.26.0.tar.gz) = d2e6c8439d6c6db5015d8eaab2470ab52aef85a7bf363182879977e084370497
+SIZE (nginx-1.26.0.tar.gz) = 1244118
SHA256 (nginx_mogilefs_module-1.0.4.tar.gz) = 7ac230d30907f013dff8d435a118619ea6168aa3714dba62c6962d350c6295ae
SIZE (nginx_mogilefs_module-1.0.4.tar.gz) = 11208
SHA256 (ngx_http_redis-0.3.9.tar.gz) = 21f87540f0a44b23ffa5df16fb3d788bc90803b255ef14f9c26e3847a6f26f46
@@ -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.3_GH0.tar.gz) = 5e1341ee8c1dfce420ea6456475dafa7d5f4b9aed310faca32597cf4d221cfe0
-SIZE (nginx-njs-0.8.3_GH0.tar.gz) = 735235
+SHA256 (nginx-njs-0.8.4_GH0.tar.gz) = fe197e254204c15e9f1df0acf375add57be3416901ec8d7b87319dccb490f90d
+SIZE (nginx-njs-0.8.4_GH0.tar.gz) = 743910
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/nginx-prometheus-exporter/Makefile b/www/nginx-prometheus-exporter/Makefile
index 091e303c7a14..ed61b528247e 100644
--- a/www/nginx-prometheus-exporter/Makefile
+++ b/www/nginx-prometheus-exporter/Makefile
@@ -1,7 +1,7 @@
PORTNAME= nginx-prometheus-exporter
DISTVERSIONPREFIX= v
DISTVERSION= 1.1.0
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= www
MAINTAINER= arcade@b1t.name
diff --git a/www/nginx-vts-exporter/Makefile b/www/nginx-vts-exporter/Makefile
index 0716584809ec..e4ca98ce6dfd 100644
--- a/www/nginx-vts-exporter/Makefile
+++ b/www/nginx-vts-exporter/Makefile
@@ -1,7 +1,7 @@
PORTNAME= nginx-vts-exporter
DISTVERSIONPREFIX= v
DISTVERSION= 0.10.7
-PORTREVISION= 18
+PORTREVISION= 19
CATEGORIES= www
MAINTAINER= joneum@FreeBSD.org
diff --git a/www/nginx/Makefile b/www/nginx/Makefile
index 4d92fc92c11e..b720743e02ba 100644
--- a/www/nginx/Makefile
+++ b/www/nginx/Makefile
@@ -1,6 +1,6 @@
PORTNAME= nginx
PORTVERSION= 1.24.0
-PORTREVISION?= 16
+PORTREVISION?= 17
PORTEPOCH= 3
CATEGORIES= www
MASTER_SITES= https://nginx.org/download/ \
diff --git a/www/nginx/Makefile.extmod b/www/nginx/Makefile.extmod
index 2f68a38b8462..8e1ec1dd0b48 100644
--- a/www/nginx/Makefile.extmod
+++ b/www/nginx/Makefile.extmod
@@ -10,7 +10,7 @@ OPTIONS_GROUP_THIRDPARTYGRP= AJP AWS_AUTH BROTLI CACHE_PURGE CLOJURE COOKIE_FLAG
HTTP_JSON_STATUS HTTP_MOGILEFS HTTP_MP4_H264 HTTP_NOTICE HTTP_PROXY_CONNECT HTTP_PUSH \
HTTP_PUSH_STREAM HTTP_REDIS HTTP_SLICE_AHEAD HTTP_SUBS_FILTER HTTP_TARANTOOL \
HTTP_UPLOAD HTTP_UPLOAD_PROGRESS HTTP_UPSTREAM_CHECK HTTP_UPSTREAM_FAIR \
- HTTP_UPSTREAM_STICKY HTTP_VIDEO_THUMBEXTRACTOR HTTP_ZIP ICONV LET LINK LUA MEMC \
+ HTTP_UPSTREAM_STICKY HTTP_VIDEO_THUMBEXTRACTOR HTTP_ZIP ICONV LET LINK LUA LUASTREAM MEMC \
MODSECURITY3 NAXSI PASSENGER POSTGRES RDS_CSV RDS_JSON REDIS2\
RTMP SET_MISC SFLOW SHIBBOLETH SLOWFS_CACHE SRCACHE STS VOD VTS \
XSS WEBSOCKIFY
@@ -229,6 +229,14 @@ LUA_CONFIGURE_ENV= LUAJIT_INC=${LOCALBASE}/include/luajit-2.1 \
LUA_GH_TUPLE= openresty:lua-nginx-module:v0.10.26:lua
LUA_VARS= DSO_EXTMODS+=lua
+LUASTREAM_IMPLIES= DEVEL_KIT
+LUASTREAM_LIB_DEPENDS= libluajit-5.1.so:lang/luajit-openresty
+LUASTREAM_RUN_DEPENDS= lua-resty-core>0:www/lua-resty-core
+LUASTREAM_CONFIGURE_ENV=LUAJIT_INC=${LOCALBASE}/include/luajit-2.1 \
+ LUAJIT_LIB=${LOCALBASE}/lib
+LUASTREAM_GH_TUPLE= openresty:stream-lua-nginx-module:v0.0.14:luastream
+LUASTREAM_VARS= DSO_EXTMODS+=luastream
+
LINK_GH_TUPLE= Taymindis:nginx-link-function:3.2.4:link
LINK_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-nginx-link-function-config \
${PATCHDIR}/extra-patch-ngx_link_func_module.c
diff --git a/www/nginx/Makefile.options.desc b/www/nginx/Makefile.options.desc
index 598e1f75a83f..d299cc6b3607 100644
--- a/www/nginx/Makefile.options.desc
+++ b/www/nginx/Makefile.options.desc
@@ -82,6 +82,7 @@ IPV6_DESC= Enable IPv6 support
LET_DESC= 3rd party let module
LINK_DESC= 3rd party link function module
LUA_DESC= 3rd party lua module
+LUASTREAM_DESC= 3rd party lua stream module
MAILGRP_DESC= Modules that require MAIL module
MAIL_DESC= Enable IMAP4/POP3/SMTP proxy module
MAIL_IMAP_DESC= Enable IMAP4 proxy module
diff --git a/www/nginx/distinfo b/www/nginx/distinfo
index 3e48677696fc..c038036d9d0a 100644
--- a/www/nginx/distinfo
+++ b/www/nginx/distinfo
@@ -143,3 +143,5 @@ SHA256 (tg123-websockify-nginx-module-c11bc9a_GH0.tar.gz) = aca454bffcee2476dc92
SIZE (tg123-websockify-nginx-module-c11bc9a_GH0.tar.gz) = 14646
SHA256 (openresty-xss-nginx-module-v0.06_GH0.tar.gz) = 0b12bbc53a41f3e3d6df419c173b8c87434be3e6cd255a8193aa91345a2de6cf
SIZE (openresty-xss-nginx-module-v0.06_GH0.tar.gz) = 12448
+SHA256 (openresty-stream-lua-nginx-module-v0.0.14_GH0.tar.gz) = 8e2ff6ad5f91127da3c01757e7e654f1addf9769450d9159601d2cc153953c47
+SIZE (openresty-stream-lua-nginx-module-v0.0.14_GH0.tar.gz) = 381313
diff --git a/www/nginx/pkg-plist b/www/nginx/pkg-plist
index 94e0cd5e7946..35d8f66bfad8 100644
--- a/www/nginx/pkg-plist
+++ b/www/nginx/pkg-plist
@@ -63,6 +63,7 @@
%%DSO%%%%LET%%libexec/nginx/ngx_http_let_module.so
%%DSO%%%%LINK%%libexec/nginx/ngx_http_link_func_module.so
%%DSO%%%%LUA%%libexec/nginx/ngx_http_lua_module.so
+%%DSO%%%%LUASTREAM%%libexec/nginx/ngx_stream_lua_module.so
%%DSO%%%%MAIL%%libexec/nginx/ngx_mail_module.so
%%DSO%%%%MAIL%%%%CT%%libexec/nginx/ngx_mail_ssl_ct_module.so
%%DSO%%%%MEMC%%libexec/nginx/ngx_http_memc_module.so
diff --git a/www/node20/Makefile.version b/www/node20/Makefile.version
index e7769912e8d4..55b4a96ad539 100644
--- a/www/node20/Makefile.version
+++ b/www/node20/Makefile.version
@@ -1 +1 @@
-NODEJS_PORTVERSION= 20.12.2
+NODEJS_PORTVERSION= 20.13.1
diff --git a/www/node20/distinfo b/www/node20/distinfo
index e52b7562b5a0..412ca8a90956 100644
--- a/www/node20/distinfo
+++ b/www/node20/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1712886412
-SHA256 (node-v20.12.2.tar.xz) = d7cbcc5fbfb31e9001f3f0150bbeda59abe5dd7137aaa6273958cd59ce35ced7
-SIZE (node-v20.12.2.tar.xz) = 41634476
+TIMESTAMP = 1715842558
+SHA256 (node-v20.13.1.tar.xz) = 791786a09023241cb7e4f7d65ec90aa924bb39141ff7bb6d5a1dedf7def4b4e7
+SIZE (node-v20.13.1.tar.xz) = 41770976
diff --git a/www/node20/files/patch-tools_install.py b/www/node20/files/patch-tools_install.py
deleted file mode 100644
index 4cb60f5a219a..000000000000
--- a/www/node20/files/patch-tools_install.py
+++ /dev/null
@@ -1,11 +0,0 @@
---- tools/install.py.orig 2024-03-26 14:14:20 UTC
-+++ tools/install.py
-@@ -182,7 +182,7 @@ def files(options, action):
- action(options, [os.path.join(options.v8_dir, 'tools/gdbinit')], 'share/doc/node/')
- action(options, [os.path.join(options.v8_dir, 'tools/lldb_commands.py')], 'share/doc/node/')
-
-- if 'freebsd' in sys.platform or 'openbsd' in sys.platform:
-+ if 'openbsd' in sys.platform:
- action(options, ['doc/node.1'], 'man/man1/')
- else:
- action(options, ['doc/node.1'], 'share/man/man1/')
diff --git a/www/node20/pkg-descr b/www/node20/pkg-descr
index 4920df91f200..aed88d828d57 100644
--- a/www/node20/pkg-descr
+++ b/www/node20/pkg-descr
@@ -1,4 +1,2 @@
-Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js
-uses an event-driven, non-blocking I/O model that makes it lightweight and
-efficient. Node.js' package ecosystem, npm, is the largest ecosystem of open
-source libraries in the world.
+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/node21/Makefile b/www/node21/Makefile
index fc883ba47750..58b2001248fa 100644
--- a/www/node21/Makefile
+++ b/www/node21/Makefile
@@ -17,6 +17,9 @@ 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
+DEPRECATED= Node.js 21.* will reach its EoL on 2024-06-01. Use Node.js 22.* (www/node22) instead
+EXPIRATION_DATE=2024-06-30
+
BUILD_DEPENDS= brotli>=1.0.9,1:archivers/brotli \
c-ares>=1.17.2:dns/c-ares \
libnghttp2>=1.45.1:www/libnghttp2 \
diff --git a/www/node22/Makefile b/www/node22/Makefile
new file mode 100644
index 000000000000..10668cd56718
--- /dev/null
+++ b/www/node22/Makefile
@@ -0,0 +1,88 @@
+PORTNAME= node
+PORTVERSION= ${NODEJS_PORTVERSION}
+DISTVERSIONPREFIX= v
+CATEGORIES= www
+MASTER_SITES= https://nodejs.org/dist/v${PORTVERSION}/
+PKGNAMESUFFIX= 22
+
+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= brotli>=1.0.9,1:archivers/brotli \
+ c-ares>=1.17.2:dns/c-ares \
+ libnghttp2>=1.45.1:www/libnghttp2 \
+ libuv>=1.42.0:devel/libuv \
+ objdump:devel/binutils
+LIB_DEPENDS= libbrotlidec.so:archivers/brotli \
+ libcares.so:dns/c-ares \
+ libnghttp2.so:www/libnghttp2 \
+ libuv.so:devel/libuv
+
+USES= compiler:c++11-lib gmake localbase pkgconfig python:build shebangfix tar:xz
+
+CONFIGURE_ARGS= --prefix=${PREFIX:S|^${DESTDIR}||} \
+ --shared-brotli \
+ --shared-cares \
+ --shared-libuv \
+ --shared-nghttp2 \
+ --shared-zlib \
+ --without-npm
+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 NLS
+OPTIONS_SUB= yes
+BUNDLED_SSL_DESC= Use bundled OpenSSL implementation from node.js
+
+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
+NLS_BUILD_DEPENDS= icu>=69.1:devel/icu
+NLS_CONFIGURE_ON= --with-intl=system-icu
+NLS_LIB_DEPENDS= libicui18n.so:devel/icu
+
+.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
+
+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
+
+.include <bsd.port.mk>
diff --git a/www/node22/Makefile.version b/www/node22/Makefile.version
new file mode 100644
index 000000000000..dfa161297fb6
--- /dev/null
+++ b/www/node22/Makefile.version
@@ -0,0 +1 @@
+NODEJS_PORTVERSION= 22.2.0
diff --git a/www/node22/distinfo b/www/node22/distinfo
new file mode 100644
index 000000000000..25d2ecae5472
--- /dev/null
+++ b/www/node22/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1715842560
+SHA256 (node-v22.2.0.tar.xz) = 889908a8828d1484910d7e659b6aa57ade8d528ff0e390e9a77ef659a7628474
+SIZE (node-v22.2.0.tar.xz) = 44334460
diff --git a/www/node22/files/patch-common.gypi b/www/node22/files/patch-common.gypi
new file mode 100644
index 000000000000..c1a1298912e1
--- /dev/null
+++ b/www/node22/files/patch-common.gypi
@@ -0,0 +1,20 @@
+--- common.gypi.orig 2023-07-20 18:27:37 UTC
++++ common.gypi
+@@ -426,7 +426,7 @@
+ 'ldflags': [ '-m32' ],
+ }],
+ [ 'host_arch=="ppc64" and OS not in "aix os400"', {
+- 'cflags': [ '-m64', '-mminimal-toc' ],
++ 'cflags': [ '-m64' ],
+ 'ldflags': [ '-m64' ],
+ }],
+ [ 'host_arch=="s390x" and OS=="linux"', {
+@@ -450,7 +450,7 @@
+ 'ldflags': [ '-m32' ],
+ }],
+ [ 'target_arch=="ppc64" and OS not in "aix os400"', {
+- 'cflags': [ '-m64', '-mminimal-toc' ],
++ 'cflags': [ '-m64' ],
+ 'ldflags': [ '-m64' ],
+ }],
+ [ 'target_arch=="s390x" and OS=="linux"', {
diff --git a/www/node22/files/patch-deps-openssl-config-archs-linux-elf-no-asm-openssl-cl.gypi b/www/node22/files/patch-deps-openssl-config-archs-linux-elf-no-asm-openssl-cl.gypi
new file mode 100644
index 000000000000..281de6be8ee2
--- /dev/null
+++ b/www/node22/files/patch-deps-openssl-config-archs-linux-elf-no-asm-openssl-cl.gypi
@@ -0,0 +1,11 @@
+--- deps/openssl/config/archs/linux-elf/no-asm/openssl-cl.gypi.orig 2023-05-16 06:58:19 UTC
++++ deps/openssl/config/archs/linux-elf/no-asm/openssl-cl.gypi
+@@ -13,7 +13,7 @@
+ '-Wall -O3 -fomit-frame-pointer',
+ ],
+ 'openssl_ex_libs_linux-elf': [
+- '-ldl -pthread',
++ '-pthread',
+ ],
+ 'openssl_cli_srcs_linux-elf': [
+ 'openssl/apps/lib/cmp_mock_srv.c',
diff --git a/www/node22/files/patch-deps-openssl-config-archs-linux-elf-no-asm-openssl.gypi b/www/node22/files/patch-deps-openssl-config-archs-linux-elf-no-asm-openssl.gypi
new file mode 100644
index 000000000000..5a7ce627e099
--- /dev/null
+++ b/www/node22/files/patch-deps-openssl-config-archs-linux-elf-no-asm-openssl.gypi
@@ -0,0 +1,11 @@
+--- deps/openssl/config/archs/linux-elf/no-asm/openssl.gypi.orig 2023-05-16 06:58:19 UTC
++++ deps/openssl/config/archs/linux-elf/no-asm/openssl.gypi
+@@ -977,7 +977,7 @@
+ '-Wall -O3 -fomit-frame-pointer',
+ ],
+ 'openssl_ex_libs_linux-elf': [
+- '-ldl -pthread',
++ '-pthread',
+ ],
+ },
+ 'include_dirs': [
diff --git a/www/node22/files/patch-deps-openssl-openssl-cl_no_asm.gypi b/www/node22/files/patch-deps-openssl-openssl-cl_no_asm.gypi
new file mode 100644
index 000000000000..2670843ea933
--- /dev/null
+++ b/www/node22/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/node22/files/patch-deps-openssl-openssl_no_asm.gypi b/www/node22/files/patch-deps-openssl-openssl_no_asm.gypi
new file mode 100644
index 000000000000..f7fb266e350c
--- /dev/null
+++ b/www/node22/files/patch-deps-openssl-openssl_no_asm.gypi
@@ -0,0 +1,11 @@
+--- deps/openssl/openssl_no_asm.gypi.orig 2023-05-16 06:58:20 UTC
++++ deps/openssl/openssl_no_asm.gypi
+@@ -44,7 +44,7 @@
+ 'includes': ['config/archs/linux64-riscv64/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/node22/files/patch-deps-v8-src-base-platform-platform-freebsd.cc b/www/node22/files/patch-deps-v8-src-base-platform-platform-freebsd.cc
new file mode 100644
index 000000000000..be89ded1df8d
--- /dev/null
+++ b/www/node22/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/node22/files/patch-deps-v8-src-base-small-vector.h b/www/node22/files/patch-deps-v8-src-base-small-vector.h
new file mode 100644
index 000000000000..7e362808330c
--- /dev/null
+++ b/www/node22/files/patch-deps-v8-src-base-small-vector.h
@@ -0,0 +1,10 @@
+--- deps/v8/src/base/small-vector.h.orig 2024-04-24 14:03:50 UTC
++++ deps/v8/src/base/small-vector.h
+@@ -22,7 +22,6 @@ class SmallVector {
+ class SmallVector {
+ // Currently only support trivially copyable and trivially destructible data
+ // types, as it uses memcpy to copy elements and never calls destructors.
+- ASSERT_TRIVIALLY_COPYABLE(T);
+ static_assert(std::is_trivially_destructible<T>::value);
+
+ public:
diff --git a/www/node22/files/patch-deps-v8-src-codegen-arm-cpu-arm.cc b/www/node22/files/patch-deps-v8-src-codegen-arm-cpu-arm.cc
new file mode 100644
index 000000000000..42fd70bfd7ca
--- /dev/null
+++ b/www/node22/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/node22/files/patch-deps-v8-src-codegen-ppc-constants-ppc.h b/www/node22/files/patch-deps-v8-src-codegen-ppc-constants-ppc.h
new file mode 100644
index 000000000000..c6269ea752d6
--- /dev/null
+++ b/www/node22/files/patch-deps-v8-src-codegen-ppc-constants-ppc.h
@@ -0,0 +1,20 @@
+--- deps/v8/src/codegen/ppc/constants-ppc.h.orig 2023-05-16 06:58:20 UTC
++++ deps/v8/src/codegen/ppc/constants-ppc.h
+@@ -36,7 +36,7 @@
+ #endif
+
+ #if !(V8_HOST_ARCH_PPC || 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_RETURNS_OBJECT_PAIRS_IN_REGS 1
+ #else
+ #define ABI_RETURNS_OBJECT_PAIRS_IN_REGS 0
+@@ -44,7 +44,7 @@
+
+ #if !(V8_HOST_ARCH_PPC || 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/node22/files/patch-deps-v8-src-libsampler-sampler.cc b/www/node22/files/patch-deps-v8-src-libsampler-sampler.cc
new file mode 100644
index 000000000000..dd19d75d8196
--- /dev/null
+++ b/www/node22/files/patch-deps-v8-src-libsampler-sampler.cc
@@ -0,0 +1,13 @@
+--- deps/v8/src/libsampler/sampler.cc.orig 2023-05-16 06:58:20 UTC
++++ deps/v8/src/libsampler/sampler.cc
+@@ -511,6 +511,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/node22/files/patch-node.gypi b/www/node22/files/patch-node.gypi
new file mode 100644
index 000000000000..c1f4c867c303
--- /dev/null
+++ b/www/node22/files/patch-node.gypi
@@ -0,0 +1,12 @@
+--- node.gypi.orig 2023-05-16 06:58:21 UTC
++++ node.gypi
+@@ -349,6 +349,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/node22/files/patch-openssl3 b/www/node22/files/patch-openssl3
new file mode 100644
index 000000000000..0e80424bd33c
--- /dev/null
+++ b/www/node22/files/patch-openssl3
@@ -0,0 +1,15 @@
+--- src/crypto/crypto_util.cc.orig 2023-05-16 06:58:21 UTC
++++ src/crypto/crypto_util.cc
+@@ -205,10 +205,12 @@ void InitCryptoOnce() {
+ // No-op with OPENSSL_NO_COMP builds of OpenSSL.
+ sk_SSL_COMP_zero(SSL_COMP_get_compression_methods());
+
++#if OPENSSL_VERSION_MAJOR < 3
+ #ifndef OPENSSL_NO_ENGINE
+ ERR_load_ENGINE_strings();
+ ENGINE_load_builtin_engines();
+ #endif // !OPENSSL_NO_ENGINE
++#endif
+ }
+
+ void GetFipsCrypto(const FunctionCallbackInfo<Value>& args) {
diff --git a/www/node22/files/patch-src-cares_wrap.h b/www/node22/files/patch-src-cares_wrap.h
new file mode 100644
index 000000000000..7bac6f049408
--- /dev/null
+++ b/www/node22/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/node22/files/patch-tools-v8_gypfiles-v8.gyp b/www/node22/files/patch-tools-v8_gypfiles-v8.gyp
new file mode 100644
index 000000000000..61657d4c24a1
--- /dev/null
+++ b/www/node22/files/patch-tools-v8_gypfiles-v8.gyp
@@ -0,0 +1,11 @@
+--- tools/v8_gypfiles/v8.gyp.orig 2023-05-16 06:58:22 UTC
++++ tools/v8_gypfiles/v8.gyp
+@@ -1091,7 +1091,7 @@
+ }],
+ # Platforms that don't have Compare-And-Swap (CAS) support need to link atomic library
+ # to implement atomic memory access
+- ['v8_current_cpu in ["mips64", "mips64el", "ppc", "arm", "riscv64", "loong64"]', {
++ ['v8_current_cpu in ["mips64", "mips64el", "ppc", "riscv64", "loong64"]', {
+ 'link_settings': {
+ 'libraries': ['-latomic', ],
+ },
diff --git a/www/node22/pkg-descr b/www/node22/pkg-descr
new file mode 100644
index 000000000000..aed88d828d57
--- /dev/null
+++ b/www/node22/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/node22/pkg-message b/www/node22/pkg-message
new file mode 100644
index 000000000000..ddea08386149
--- /dev/null
+++ b/www/node22/pkg-message
@@ -0,0 +1,7 @@
+[
+{ type: install
+ message: <<EOM
+Note: If you need npm (Node Package Manager), please install www/npm.
+EOM
+}
+]
diff --git a/www/node22/pkg-plist b/www/node22/pkg-plist
new file mode 100644
index 000000000000..c26599edfe88
--- /dev/null
+++ b/www/node22/pkg-plist
@@ -0,0 +1,2375 @@
+bin/corepack
+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/ephemeron-pair.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/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
+%%BUNDLED_SSL%%include/node/openssl/aes.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/asm_avx2/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86/no-asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/asm_avx2/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/BSD-x86_64/no-asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/asm_avx2/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN32/no-asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64-ARM/no-asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/asm_avx2/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/VC-WIN64A/no-asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/asm_avx2/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/aix64-gcc-as/no-asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/asm_avx2/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin-i386-cc/no-asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-arm64-cc/no-asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/darwin64-x86_64-cc/no-asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/asm_avx2/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-aarch64/no-asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/asm_avx2/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-armv4/no-asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/asm_avx2/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-elf/no-asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/asm_avx2/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-ppc64le/no-asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/asm_avx2/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux-x86_64/no-asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/asm_avx2/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux32-s390x/no-asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/asm_avx2/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-mips64/no-asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-riscv64/no-asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/asm_avx2/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/linux64-s390x/no-asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/asm_avx2/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris-x86-gcc/no-asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/crypto/buildinf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/crypto/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/crypto/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/progs.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/providers/common/include/prov/der_digests.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/providers/common/include/prov/der_dsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/providers/common/include/prov/der_ec.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/providers/common/include/prov/der_ecx.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/providers/common/include/prov/der_rsa.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/providers/common/include/prov/der_sm2.h
+%%BUNDLED_SSL%%include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/providers/common/include/prov/der_wrap.h
+%%BUNDLED_SSL%%include/node/openssl/asn1.h
+%%BUNDLED_SSL%%include/node/openssl/asn1_asm.h
+%%BUNDLED_SSL%%include/node/openssl/asn1_mac.h
+%%BUNDLED_SSL%%include/node/openssl/asn1_no-asm.h
+%%BUNDLED_SSL%%include/node/openssl/asn1err.h
+%%BUNDLED_SSL%%include/node/openssl/asn1t.h
+%%BUNDLED_SSL%%include/node/openssl/asn1t_asm.h
+%%BUNDLED_SSL%%include/node/openssl/asn1t_no-asm.h
+%%BUNDLED_SSL%%include/node/openssl/async.h
+%%BUNDLED_SSL%%include/node/openssl/asyncerr.h
+%%BUNDLED_SSL%%include/node/openssl/bio.h
+%%BUNDLED_SSL%%include/node/openssl/bio_asm.h
+%%BUNDLED_SSL%%include/node/openssl/bio_no-asm.h
+%%BUNDLED_SSL%%include/node/openssl/bioerr.h
+%%BUNDLED_SSL%%include/node/openssl/blowfish.h
+%%BUNDLED_SSL%%include/node/openssl/bn.h
+%%BUNDLED_SSL%%include/node/openssl/bn_conf.h
+%%BUNDLED_SSL%%include/node/openssl/bn_conf_asm.h
+%%BUNDLED_SSL%%include/node/openssl/bn_conf_no-asm.h
+%%BUNDLED_SSL%%include/node/openssl/bnerr.h
+%%BUNDLED_SSL%%include/node/openssl/buffer.h
+%%BUNDLED_SSL%%include/node/openssl/buffererr.h
+%%BUNDLED_SSL%%include/node/openssl/camellia.h
+%%BUNDLED_SSL%%include/node/openssl/cast.h
+%%BUNDLED_SSL%%include/node/openssl/cmac.h
+%%BUNDLED_SSL%%include/node/openssl/cmp.h
+%%BUNDLED_SSL%%include/node/openssl/cmp_asm.h
+%%BUNDLED_SSL%%include/node/openssl/cmp_no-asm.h
+%%BUNDLED_SSL%%include/node/openssl/cmp_util.h
+%%BUNDLED_SSL%%include/node/openssl/cmperr.h
+%%BUNDLED_SSL%%include/node/openssl/cms.h
+%%BUNDLED_SSL%%include/node/openssl/cms_asm.h
+%%BUNDLED_SSL%%include/node/openssl/cms_no-asm.h
+%%BUNDLED_SSL%%include/node/openssl/cmserr.h
+%%BUNDLED_SSL%%include/node/openssl/comp.h
+%%BUNDLED_SSL%%include/node/openssl/comperr.h
+%%BUNDLED_SSL%%include/node/openssl/conf.h
+%%BUNDLED_SSL%%include/node/openssl/conf_api.h
+%%BUNDLED_SSL%%include/node/openssl/conf_asm.h
+%%BUNDLED_SSL%%include/node/openssl/conf_no-asm.h
+%%BUNDLED_SSL%%include/node/openssl/conferr.h
+%%BUNDLED_SSL%%include/node/openssl/configuration.h
+%%BUNDLED_SSL%%include/node/openssl/configuration_asm.h
+%%BUNDLED_SSL%%include/node/openssl/configuration_no-asm.h
+%%BUNDLED_SSL%%include/node/openssl/conftypes.h
+%%BUNDLED_SSL%%include/node/openssl/core.h
+%%BUNDLED_SSL%%include/node/openssl/core_dispatch.h
+%%BUNDLED_SSL%%include/node/openssl/core_names.h
+%%BUNDLED_SSL%%include/node/openssl/core_object.h
+%%BUNDLED_SSL%%include/node/openssl/crmf.h
+%%BUNDLED_SSL%%include/node/openssl/crmf_asm.h
+%%BUNDLED_SSL%%include/node/openssl/crmf_no-asm.h
+%%BUNDLED_SSL%%include/node/openssl/crmferr.h
+%%BUNDLED_SSL%%include/node/openssl/crypto.h
+%%BUNDLED_SSL%%include/node/openssl/crypto_asm.h
+%%BUNDLED_SSL%%include/node/openssl/crypto_no-asm.h
+%%BUNDLED_SSL%%include/node/openssl/cryptoerr.h
+%%BUNDLED_SSL%%include/node/openssl/cryptoerr_legacy.h
+%%BUNDLED_SSL%%include/node/openssl/ct.h
+%%BUNDLED_SSL%%include/node/openssl/ct_asm.h
+%%BUNDLED_SSL%%include/node/openssl/ct_no-asm.h
+%%BUNDLED_SSL%%include/node/openssl/cterr.h
+%%BUNDLED_SSL%%include/node/openssl/decoder.h
+%%BUNDLED_SSL%%include/node/openssl/decodererr.h
+%%BUNDLED_SSL%%include/node/openssl/des.h
+%%BUNDLED_SSL%%include/node/openssl/dh.h
+%%BUNDLED_SSL%%include/node/openssl/dherr.h
+%%BUNDLED_SSL%%include/node/openssl/dsa.h
+%%BUNDLED_SSL%%include/node/openssl/dsaerr.h
+%%BUNDLED_SSL%%include/node/openssl/dso_conf.h
+%%BUNDLED_SSL%%include/node/openssl/dso_conf_asm.h
+%%BUNDLED_SSL%%include/node/openssl/dso_conf_no-asm.h
+%%BUNDLED_SSL%%include/node/openssl/dtls1.h
+%%BUNDLED_SSL%%include/node/openssl/e_os2.h
+%%BUNDLED_SSL%%include/node/openssl/ebcdic.h
+%%BUNDLED_SSL%%include/node/openssl/ec.h
+%%BUNDLED_SSL%%include/node/openssl/ecdh.h
+%%BUNDLED_SSL%%include/node/openssl/ecdsa.h
+%%BUNDLED_SSL%%include/node/openssl/ecerr.h
+%%BUNDLED_SSL%%include/node/openssl/encoder.h
+%%BUNDLED_SSL%%include/node/openssl/encodererr.h
+%%BUNDLED_SSL%%include/node/openssl/engine.h
+%%BUNDLED_SSL%%include/node/openssl/engineerr.h
+%%BUNDLED_SSL%%include/node/openssl/err.h
+%%BUNDLED_SSL%%include/node/openssl/err_asm.h
+%%BUNDLED_SSL%%include/node/openssl/err_no-asm.h
+%%BUNDLED_SSL%%include/node/openssl/ess.h
+%%BUNDLED_SSL%%include/node/openssl/ess_asm.h
+%%BUNDLED_SSL%%include/node/openssl/ess_no-asm.h
+%%BUNDLED_SSL%%include/node/openssl/esserr.h
+%%BUNDLED_SSL%%include/node/openssl/evp.h
+%%BUNDLED_SSL%%include/node/openssl/evperr.h
+%%BUNDLED_SSL%%include/node/openssl/fips_names.h
+%%BUNDLED_SSL%%include/node/openssl/fipskey.h
+%%BUNDLED_SSL%%include/node/openssl/fipskey_asm.h
+%%BUNDLED_SSL%%include/node/openssl/fipskey_no-asm.h
+%%BUNDLED_SSL%%include/node/openssl/hmac.h
+%%BUNDLED_SSL%%include/node/openssl/http.h
+%%BUNDLED_SSL%%include/node/openssl/httperr.h
+%%BUNDLED_SSL%%include/node/openssl/idea.h
+%%BUNDLED_SSL%%include/node/openssl/kdf.h
+%%BUNDLED_SSL%%include/node/openssl/kdferr.h
+%%BUNDLED_SSL%%include/node/openssl/lhash.h
+%%BUNDLED_SSL%%include/node/openssl/lhash_asm.h
+%%BUNDLED_SSL%%include/node/openssl/lhash_no-asm.h
+%%BUNDLED_SSL%%include/node/openssl/macros.h
+%%BUNDLED_SSL%%include/node/openssl/md2.h
+%%BUNDLED_SSL%%include/node/openssl/md4.h
+%%BUNDLED_SSL%%include/node/openssl/md5.h
+%%BUNDLED_SSL%%include/node/openssl/mdc2.h
+%%BUNDLED_SSL%%include/node/openssl/modes.h
+%%BUNDLED_SSL%%include/node/openssl/obj_mac.h
+%%BUNDLED_SSL%%include/node/openssl/objects.h
+%%BUNDLED_SSL%%include/node/openssl/objectserr.h
+%%BUNDLED_SSL%%include/node/openssl/ocsp.h
+%%BUNDLED_SSL%%include/node/openssl/ocsp_asm.h
+%%BUNDLED_SSL%%include/node/openssl/ocsp_no-asm.h
+%%BUNDLED_SSL%%include/node/openssl/ocsperr.h
+%%BUNDLED_SSL%%include/node/openssl/opensslconf.h
+%%BUNDLED_SSL%%include/node/openssl/opensslconf_asm.h
+%%BUNDLED_SSL%%include/node/openssl/opensslv.h
+%%BUNDLED_SSL%%include/node/openssl/opensslv_asm.h
+%%BUNDLED_SSL%%include/node/openssl/opensslv_no-asm.h
+%%BUNDLED_SSL%%include/node/openssl/ossl_typ.h
+%%BUNDLED_SSL%%include/node/openssl/param_build.h
+%%BUNDLED_SSL%%include/node/openssl/params.h
+%%BUNDLED_SSL%%include/node/openssl/pem.h
+%%BUNDLED_SSL%%include/node/openssl/pem2.h
+%%BUNDLED_SSL%%include/node/openssl/pemerr.h
+%%BUNDLED_SSL%%include/node/openssl/pkcs12.h
+%%BUNDLED_SSL%%include/node/openssl/pkcs12_asm.h
+%%BUNDLED_SSL%%include/node/openssl/pkcs12_no-asm.h
+%%BUNDLED_SSL%%include/node/openssl/pkcs12err.h
+%%BUNDLED_SSL%%include/node/openssl/pkcs7.h
+%%BUNDLED_SSL%%include/node/openssl/pkcs7_asm.h
+%%BUNDLED_SSL%%include/node/openssl/pkcs7_no-asm.h
+%%BUNDLED_SSL%%include/node/openssl/pkcs7err.h
+%%BUNDLED_SSL%%include/node/openssl/prov_ssl.h
+%%BUNDLED_SSL%%include/node/openssl/proverr.h
+%%BUNDLED_SSL%%include/node/openssl/provider.h
+%%BUNDLED_SSL%%include/node/openssl/quic.h
+%%BUNDLED_SSL%%include/node/openssl/rand.h
+%%BUNDLED_SSL%%include/node/openssl/randerr.h
+%%BUNDLED_SSL%%include/node/openssl/rc2.h
+%%BUNDLED_SSL%%include/node/openssl/rc4.h
+%%BUNDLED_SSL%%include/node/openssl/rc5.h
+%%BUNDLED_SSL%%include/node/openssl/ripemd.h
+%%BUNDLED_SSL%%include/node/openssl/rsa.h
+%%BUNDLED_SSL%%include/node/openssl/rsaerr.h
+%%BUNDLED_SSL%%include/node/openssl/safestack.h
+%%BUNDLED_SSL%%include/node/openssl/safestack_asm.h
+%%BUNDLED_SSL%%include/node/openssl/safestack_no-asm.h
+%%BUNDLED_SSL%%include/node/openssl/seed.h
+%%BUNDLED_SSL%%include/node/openssl/self_test.h
+%%BUNDLED_SSL%%include/node/openssl/sha.h
+%%BUNDLED_SSL%%include/node/openssl/srp.h
+%%BUNDLED_SSL%%include/node/openssl/srp_asm.h
+%%BUNDLED_SSL%%include/node/openssl/srp_no-asm.h
+%%BUNDLED_SSL%%include/node/openssl/srtp.h
+%%BUNDLED_SSL%%include/node/openssl/ssl.h
+%%BUNDLED_SSL%%include/node/openssl/ssl2.h
+%%BUNDLED_SSL%%include/node/openssl/ssl3.h
+%%BUNDLED_SSL%%include/node/openssl/ssl_asm.h
+%%BUNDLED_SSL%%include/node/openssl/ssl_no-asm.h
+%%BUNDLED_SSL%%include/node/openssl/sslerr.h
+%%BUNDLED_SSL%%include/node/openssl/sslerr_legacy.h
+%%BUNDLED_SSL%%include/node/openssl/stack.h
+%%BUNDLED_SSL%%include/node/openssl/store.h
+%%BUNDLED_SSL%%include/node/openssl/storeerr.h
+%%BUNDLED_SSL%%include/node/openssl/symhacks.h
+%%BUNDLED_SSL%%include/node/openssl/tls1.h
+%%BUNDLED_SSL%%include/node/openssl/trace.h
+%%BUNDLED_SSL%%include/node/openssl/ts.h
+%%BUNDLED_SSL%%include/node/openssl/tserr.h
+%%BUNDLED_SSL%%include/node/openssl/txt_db.h
+%%BUNDLED_SSL%%include/node/openssl/types.h
+%%BUNDLED_SSL%%include/node/openssl/ui.h
+%%BUNDLED_SSL%%include/node/openssl/ui_asm.h
+%%BUNDLED_SSL%%include/node/openssl/ui_no-asm.h
+%%BUNDLED_SSL%%include/node/openssl/uierr.h
+%%BUNDLED_SSL%%include/node/openssl/whrlpool.h
+%%BUNDLED_SSL%%include/node/openssl/x509.h
+%%BUNDLED_SSL%%include/node/openssl/x509_asm.h
+%%BUNDLED_SSL%%include/node/openssl/x509_no-asm.h
+%%BUNDLED_SSL%%include/node/openssl/x509_vfy.h
+%%BUNDLED_SSL%%include/node/openssl/x509_vfy_asm.h
+%%BUNDLED_SSL%%include/node/openssl/x509_vfy_no-asm.h
+%%BUNDLED_SSL%%include/node/openssl/x509err.h
+%%BUNDLED_SSL%%include/node/openssl/x509v3.h
+%%BUNDLED_SSL%%include/node/openssl/x509v3_asm.h
+%%BUNDLED_SSL%%include/node/openssl/x509v3_no-asm.h
+%%BUNDLED_SSL%%include/node/openssl/x509v3err.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-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
+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/npm-node22/Makefile b/www/npm-node22/Makefile
new file mode 100644
index 000000000000..a95ca153555b
--- /dev/null
+++ b/www/npm-node22/Makefile
@@ -0,0 +1,5 @@
+USES= nodejs:22,run
+
+MASTERDIR= ${.CURDIR}/../npm-node20
+
+.include "${MASTERDIR}/Makefile"
diff --git a/www/oauth2-proxy/Makefile b/www/oauth2-proxy/Makefile
index 29d9e5edb8ed..ee0285ec98f4 100644
--- a/www/oauth2-proxy/Makefile
+++ b/www/oauth2-proxy/Makefile
@@ -1,7 +1,7 @@
PORTNAME= oauth2-proxy
-PORTVERSION= 7.5.1
+PORTVERSION= 7.6.0
DISTVERSIONPREFIX= v
-PORTREVISION= 4
+PORTREVISION= 1
CATEGORIES= www
MAINTAINER= freebsd@rheinwolf.de
@@ -13,88 +13,96 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
USES= go:modules
-USE_RC_SUBR= oauth2-proxy
+USE_RC_SUBR= oauth2_proxy
USE_GITHUB= yes
GH_TUPLE= \
Bose:minisentinel:917c5a9223bb:bose_minisentinel/vendor/github.com/Bose/minisentinel \
- alicebob:gopher-json:a9ecdc9d1d3a:alicebob_gopher_json/vendor/github.com/alicebob/gopher-json \
- alicebob:miniredis:v2.23.0:alicebob_miniredis_v2/vendor/github.com/alicebob/miniredis/v2 \
- benbjohnson:clock:v1.3.0:benbjohnson_clock/vendor/github.com/benbjohnson/clock \
+ a8m:envsubst:v1.4.2:a8m_envsubst/vendor/github.com/a8m/envsubst \
+ alicebob:gopher-json:906a9b012302:alicebob_gopher_json/vendor/github.com/alicebob/gopher-json \
+ alicebob:miniredis:v2.31.1:alicebob_miniredis_v2/vendor/github.com/alicebob/miniredis/v2 \
+ benbjohnson:clock:v1.3.5:benbjohnson_clock/vendor/github.com/benbjohnson/clock \
beorn7:perks:v1.0.1:beorn7_perks/vendor/github.com/beorn7/perks \
- bitly:go-simplejson:v0.5.0:bitly_go_simplejson/vendor/github.com/bitly/go-simplejson \
+ bitly:go-simplejson:v0.5.1:bitly_go_simplejson/vendor/github.com/bitly/go-simplejson \
bmizerany:assert:b7ed37b82869:bmizerany_assert/vendor/github.com/bmizerany/assert \
- bsm:redislock:v0.9.1:bsm_redislock/vendor/github.com/bsm/redislock \
+ bsm:redislock:v0.9.4:bsm_redislock/vendor/github.com/bsm/redislock \
census-instrumentation:opencensus-go:v0.24.0:census_instrumentation_opencensus_go/vendor/go.opencensus.io \
cespare:xxhash:v2.2.0:cespare_xxhash_v2/vendor/github.com/cespare/xxhash/v2 \
- coreos:go-oidc:v3.5.0:coreos_go_oidc_v3/vendor/github.com/coreos/go-oidc/v3 \
- davecgh:go-spew:v1.1.1:davecgh_go_spew/vendor/github.com/davecgh/go-spew \
+ coreos:go-oidc:v3.9.0:coreos_go_oidc_v3/vendor/github.com/coreos/go-oidc/v3 \
+ davecgh:go-spew:d8f796af33cc:davecgh_go_spew/vendor/github.com/davecgh/go-spew \
dgryski:go-rendezvous:9f7001d12a5f:dgryski_go_rendezvous/vendor/github.com/dgryski/go-rendezvous \
- fsnotify:fsnotify:v1.6.0:fsnotify_fsnotify/vendor/github.com/fsnotify/fsnotify \
- ghodss:yaml:25d852aebe32:ghodss_yaml/vendor/github.com/ghodss/yaml \
+ felixge:httpsnoop:v1.0.4:felixge_httpsnoop/vendor/github.com/felixge/httpsnoop \
+ fsnotify:fsnotify:v1.7.0:fsnotify_fsnotify/vendor/github.com/fsnotify/fsnotify \
+ ghodss:yaml:d8423dcdf344:ghodss_yaml/vendor/github.com/ghodss/yaml \
go-ini:ini:v1.67.0:go_ini_ini/vendor/gopkg.in/ini.v1 \
- go-jose:go-jose:v3.0.0:go_jose_go_jose_v3/vendor/github.com/go-jose/go-jose/v3 \
- go-logr:logr:v1.2.3:go_logr_logr/vendor/github.com/go-logr/logr \
+ go-jose:go-jose:v3.0.1:go_jose_go_jose_v3/vendor/github.com/go-jose/go-jose/v3 \
+ go-logr:logr:v1.4.1:go_logr_logr/vendor/github.com/go-logr/logr \
+ go-logr:stdr:v1.2.2:go_logr_stdr/vendor/github.com/go-logr/stdr \
go-tomb:tomb:dd632973f1e7:go_tomb_tomb/vendor/gopkg.in/tomb.v1 \
go-yaml:yaml:v2.4.0:go_yaml_yaml/vendor/gopkg.in/yaml.v2 \
go-yaml:yaml:v3.0.1:go_yaml_yaml_1/vendor/gopkg.in/yaml.v3 \
golang-jwt:jwt:v3.2.2:golang_jwt_jwt/vendor/github.com/golang-jwt/jwt \
- golang:appengine:v1.6.7:golang_appengine/vendor/google.golang.org/appengine \
- golang:crypto:v0.7.0:golang_crypto/vendor/golang.org/x/crypto \
- golang:exp:47ecfdc1ba53:golang_exp/vendor/golang.org/x/exp \
+ golang:appengine:v1.6.8:golang_appengine/vendor/google.golang.org/appengine \
+ golang:crypto:v0.18.0:golang_crypto/vendor/golang.org/x/crypto \
+ golang:exp:be819d1f06fc:golang_exp/vendor/golang.org/x/exp \
golang:groupcache:41bb18bfe9da:golang_groupcache/vendor/github.com/golang/groupcache \
- golang:net:v0.8.0:golang_net/vendor/golang.org/x/net \
- golang:oauth2:v0.6.0:golang_oauth2/vendor/golang.org/x/oauth2 \
+ golang:net:v0.20.0:golang_net/vendor/golang.org/x/net \
+ golang:oauth2:v0.16.0:golang_oauth2/vendor/golang.org/x/oauth2 \
golang:protobuf:v1.5.3:golang_protobuf/vendor/github.com/golang/protobuf \
- golang:sync:v0.1.0:golang_sync/vendor/golang.org/x/sync \
- golang:sys:v0.6.0:golang_sys/vendor/golang.org/x/sys \
- golang:text:v0.8.0:golang_text/vendor/golang.org/x/text \
- google:go-cmp:v0.5.9:google_go_cmp/vendor/github.com/google/go-cmp \
- google:go-genproto:7f2fa6fef1f4:google_go_genproto/vendor/google.golang.org/genproto \
- google:uuid:v1.3.0:google_uuid/vendor/github.com/google/uuid \
- googleapis:enterprise-certificate-proxy:v0.2.3:googleapis_enterprise_certificate_proxy/vendor/github.com/googleapis/enterprise-certificate-proxy \
- googleapis:gax-go:v2.7.0:googleapis_gax_go_v2/vendor/github.com/googleapis/gax-go \
- googleapis:google-api-go-client:v0.111.0:googleapis_google_api_go_client/vendor/google.golang.org/api \
- googleapis:google-cloud-go:compute/v1.18.0:googleapis_google_cloud_go_compute/vendor/cloud.google.com/go \
- gorilla:mux:v1.8.0:gorilla_mux/vendor/github.com/gorilla/mux \
- grpc:grpc-go:v1.53.0:grpc_grpc_go/vendor/google.golang.org/grpc \
+ golang:sync:v0.6.0:golang_sync/vendor/golang.org/x/sync \
+ golang:sys:v0.16.0:golang_sys/vendor/golang.org/x/sys \
+ golang:text:v0.14.0:golang_text/vendor/golang.org/x/text \
+ google:go-cmp:v0.6.0:google_go_cmp/vendor/github.com/google/go-cmp \
+ google:s2a-go:v0.1.7:google_s2a_go/vendor/github.com/google/s2a-go \
+ google:uuid:v1.6.0:google_uuid/vendor/github.com/google/uuid \
+ googleapis:enterprise-certificate-proxy:v0.3.2:googleapis_enterprise_certificate_proxy/vendor/github.com/googleapis/enterprise-certificate-proxy \
+ googleapis:gax-go:v2.12.0:googleapis_gax_go_v2/vendor/github.com/googleapis/gax-go \
+ googleapis:go-genproto:a9fa1716bcac:googleapis_go_genproto/vendor/google.golang.org/genproto \
+ googleapis:google-api-go-client:v0.158.0:googleapis_google_api_go_client/vendor/google.golang.org/api \
+ googleapis:google-cloud-go:compute/v1.23.3:googleapis_google_cloud_go_compute/vendor/cloud.google.com/go \
+ gorilla:mux:v1.8.1:gorilla_mux/vendor/github.com/gorilla/mux \
+ grpc:grpc-go:v1.60.1:grpc_grpc_go/vendor/google.golang.org/grpc \
hashicorp:hcl:v1.0.0:hashicorp_hcl/vendor/github.com/hashicorp/hcl \
justinas:alice:v1.2.0:justinas_alice/vendor/github.com/justinas/alice \
- kubernetes:apimachinery:v0.26.2:kubernetes_apimachinery/vendor/k8s.io/apimachinery \
+ kubernetes:apimachinery:v0.29.1:kubernetes_apimachinery/vendor/k8s.io/apimachinery \
kubernetes:gengo:83324d819ded:kubernetes_gengo/vendor/k8s.io/gengo \
- kubernetes:klog:v2.80.1:kubernetes_klog/vendor/k8s.io/klog/v2 \
+ kubernetes:klog:v2.110.1:kubernetes_klog/vendor/k8s.io/klog/v2 \
magiconair:properties:v1.8.7:magiconair_properties/vendor/github.com/magiconair/properties \
- matttproud:golang_protobuf_extensions:v1.0.4:matttproud_golang_protobuf_extensions/vendor/github.com/matttproud/golang_protobuf_extensions \
+ matttproud:golang_protobuf_extensions:v2.0.0:matttproud_golang_protobuf_extensions_v2/vendor/github.com/matttproud/golang_protobuf_extensions/v2 \
mbland:hmacauth:44256dfd4bfa:mbland_hmacauth/vendor/github.com/mbland/hmacauth \
- mitchellh:mapstructure:v1.1.2:mitchellh_mapstructure/vendor/github.com/mitchellh/mapstructure \
+ mitchellh:mapstructure:v1.5.0:mitchellh_mapstructure/vendor/github.com/mitchellh/mapstructure \
natefinch:lumberjack:v2.2.1:natefinch_lumberjack/vendor/gopkg.in/natefinch/lumberjack.v2 \
- nxadm:tail:v1.4.8:nxadm_tail/vendor/github.com/nxadm/tail \
- oauth2-proxy:mockoidc:e3afe97dec43:oauth2_proxy_mockoidc/vendor/github.com/oauth2-proxy/mockoidc \
+ nxadm:tail:v1.4.11:nxadm_tail/vendor/github.com/nxadm/tail \
+ oauth2-proxy:mockoidc:b9169deeb282:oauth2_proxy_mockoidc/vendor/github.com/oauth2-proxy/mockoidc \
oauth2-proxy:tools:56ffd7384404:oauth2_proxy_tools_reference_gen/vendor/github.com/oauth2-proxy/tools \
- ohler55:ojg:v1.14.5:ohler55_ojg/vendor/github.com/ohler55/ojg \
+ ohler55:ojg:v1.21.0:ohler55_ojg/vendor/github.com/ohler55/ojg \
onsi:ginkgo:v1.16.5:onsi_ginkgo/vendor/github.com/onsi/ginkgo \
- onsi:gomega:v1.27.6:onsi_gomega/vendor/github.com/onsi/gomega \
- pelletier:go-toml:v1.2.0:pelletier_go_toml/vendor/github.com/pelletier/go-toml \
- pelletier:go-toml:v2.0.7:pelletier_go_toml_v2/vendor/github.com/pelletier/go-toml/v2 \
- pierrec:lz4:v4.1.17:pierrec_lz4_v4/vendor/github.com/pierrec/lz4/v4 \
- pmezard:go-difflib:v1.0.0:pmezard_go_difflib/vendor/github.com/pmezard/go-difflib \
- prometheus:client_golang:v1.14.0:prometheus_client_golang/vendor/github.com/prometheus/client_golang \
- prometheus:client_model:v0.3.0:prometheus_client_model/vendor/github.com/prometheus/client_model \
- prometheus:common:v0.42.0:prometheus_common/vendor/github.com/prometheus/common \
- prometheus:procfs:v0.9.0:prometheus_procfs/vendor/github.com/prometheus/procfs \
- protocolbuffers:protobuf-go:v1.28.1:protocolbuffers_protobuf_go/vendor/google.golang.org/protobuf \
- redis:go-redis:v9.0.2:redis_go_redis_v9/vendor/github.com/redis/go-redis/v9 \
- spf13:afero:v1.1.2:spf13_afero/vendor/github.com/spf13/afero \
- spf13:cast:v1.5.0:spf13_cast/vendor/github.com/spf13/cast \
- spf13:jwalterweatherman:v1.0.0:spf13_jwalterweatherman/vendor/github.com/spf13/jwalterweatherman \
+ onsi:gomega:v1.30.0:onsi_gomega/vendor/github.com/onsi/gomega \
+ open-telemetry:opentelemetry-go-contrib:v1.22.0:open_telemetry_opentelemetry_go_contrib/vendor/go.opentelemetry.io/contrib \
+ open-telemetry:opentelemetry-go:v1.22.0:open_telemetry_opentelemetry_go/vendor/go.opentelemetry.io/otel \
+ pelletier:go-toml:v2.1.1:pelletier_go_toml_v2/vendor/github.com/pelletier/go-toml/v2 \
+ pierrec:lz4:v4.1.19:pierrec_lz4_v4/vendor/github.com/pierrec/lz4/v4 \
+ pmezard:go-difflib:5d4384ee4fb2:pmezard_go_difflib/vendor/github.com/pmezard/go-difflib \
+ prometheus:client_golang:v1.18.0:prometheus_client_golang/vendor/github.com/prometheus/client_golang \
+ prometheus:client_model:v0.5.0:prometheus_client_model/vendor/github.com/prometheus/client_model \
+ prometheus:common:v0.45.0:prometheus_common/vendor/github.com/prometheus/common \
+ prometheus:procfs:v0.12.0:prometheus_procfs/vendor/github.com/prometheus/procfs \
+ protocolbuffers:protobuf-go:v1.32.0:protocolbuffers_protobuf_go/vendor/google.golang.org/protobuf \
+ redis:go-redis:v9.4.0:redis_go_redis_v9/vendor/github.com/redis/go-redis/v9 \
+ sagikazarmark:locafero:v0.4.0:sagikazarmark_locafero/vendor/github.com/sagikazarmark/locafero \
+ sagikazarmark:slog-shim:v0.1.0:sagikazarmark_slog_shim/vendor/github.com/sagikazarmark/slog-shim \
+ sourcegraph:conc:v0.3.0:sourcegraph_conc/vendor/github.com/sourcegraph/conc \
+ spf13:afero:v1.11.0:spf13_afero/vendor/github.com/spf13/afero \
+ spf13:cast:v1.6.0:spf13_cast/vendor/github.com/spf13/cast \
spf13:pflag:v1.0.5:spf13_pflag/vendor/github.com/spf13/pflag \
- spf13:viper:v1.6.3:spf13_viper/vendor/github.com/spf13/viper \
+ spf13:viper:v1.18.2:spf13_viper/vendor/github.com/spf13/viper \
square:go-jose:v2.6.0:square_go_jose/vendor/gopkg.in/square/go-jose.v2 \
- stretchr:testify:v1.8.1:stretchr_testify/vendor/github.com/stretchr/testify \
- subosito:gotenv:v1.4.2:subosito_gotenv/vendor/github.com/subosito/gotenv \
- vmihailenco:msgpack:v5.3.5:vmihailenco_msgpack_v5/vendor/github.com/vmihailenco/msgpack/v5 \
+ stretchr:testify:v1.8.4:stretchr_testify/vendor/github.com/stretchr/testify \
+ subosito:gotenv:v1.6.0:subosito_gotenv/vendor/github.com/subosito/gotenv \
+ uber-go:multierr:v1.11.0:uber_go_multierr/vendor/go.uber.org/multierr \
+ vmihailenco:msgpack:v5.4.1:vmihailenco_msgpack_v5/vendor/github.com/vmihailenco/msgpack/v5 \
vmihailenco:tagparser:v2.0.0:vmihailenco_tagparser_v2/vendor/github.com/vmihailenco/tagparser/v2 \
- yuin:gopher-lua:f4c35e4016d9:yuin_gopher_lua/vendor/github.com/yuin/gopher-lua
+ yuin:gopher-lua:v1.1.1:yuin_gopher_lua/vendor/github.com/yuin/gopher-lua
GO_BUILDFLAGS= -ldflags="-s -X main.VERSION=${PORTVERSION}"
diff --git a/www/oauth2-proxy/distinfo b/www/oauth2-proxy/distinfo
index f4112a427591..fda578d3f4d7 100644
--- a/www/oauth2-proxy/distinfo
+++ b/www/oauth2-proxy/distinfo
@@ -1,42 +1,48 @@
-TIMESTAMP = 1695629050
-SHA256 (oauth2-proxy-oauth2-proxy-v7.5.1_GH0.tar.gz) = 97de086ba98ce884da77d4031537f72496a059d14c60977c46824c24010096c8
-SIZE (oauth2-proxy-oauth2-proxy-v7.5.1_GH0.tar.gz) = 1283412
+TIMESTAMP = 1709746851
+SHA256 (oauth2-proxy-oauth2-proxy-v7.6.0_GH0.tar.gz) = 2beac9e817d59b37f2277efefeda68447418355792a60da709a80c278628fcd8
+SIZE (oauth2-proxy-oauth2-proxy-v7.6.0_GH0.tar.gz) = 1231670
SHA256 (Bose-minisentinel-917c5a9223bb_GH0.tar.gz) = c765c12a0ed631ae864f74ee606279a0962f3a87c4274cea6e8d922b0ad8a98e
SIZE (Bose-minisentinel-917c5a9223bb_GH0.tar.gz) = 8352
-SHA256 (alicebob-gopher-json-a9ecdc9d1d3a_GH0.tar.gz) = ce51bf794d26ef3a8a4d0e4e8a4b477ce4e78bbad6d317fd7c839af9ebfcc68a
-SIZE (alicebob-gopher-json-a9ecdc9d1d3a_GH0.tar.gz) = 3630
-SHA256 (alicebob-miniredis-v2.23.0_GH0.tar.gz) = 4fd067da97a974e4fe6ab2996e62f3b6c8c99700aa803918a961cc751475428d
-SIZE (alicebob-miniredis-v2.23.0_GH0.tar.gz) = 166328
-SHA256 (benbjohnson-clock-v1.3.0_GH0.tar.gz) = 5d3b9240f6e03499de38515ce7eeff033c2e09df2a1ef3b8e07bba665b8872a3
-SIZE (benbjohnson-clock-v1.3.0_GH0.tar.gz) = 8173
+SHA256 (a8m-envsubst-v1.4.2_GH0.tar.gz) = 3692eb658657ffdec5725ae2accd96a05ac6097d770a7bdfd622410983962387
+SIZE (a8m-envsubst-v1.4.2_GH0.tar.gz) = 12316
+SHA256 (alicebob-gopher-json-906a9b012302_GH0.tar.gz) = 5899fe9fd1e1401062ef8330e63be498cfbfeabe2efb4394610c1062b1a73e1d
+SIZE (alicebob-gopher-json-906a9b012302_GH0.tar.gz) = 3634
+SHA256 (alicebob-miniredis-v2.31.1_GH0.tar.gz) = 135ca0b40eb8aacecf81f459845a55e500d00496aaf68d15e7e2837e94c85508
+SIZE (alicebob-miniredis-v2.31.1_GH0.tar.gz) = 184286
+SHA256 (benbjohnson-clock-v1.3.5_GH0.tar.gz) = d26928c5301d8f7feedebeda0506599fa8c9aeb0b724de619b9d468df441a33c
+SIZE (benbjohnson-clock-v1.3.5_GH0.tar.gz) = 9183
SHA256 (beorn7-perks-v1.0.1_GH0.tar.gz) = 98db84bb0224a26094e6adba91b7ee7a1a7ace28cb648d818f8e779e6a19f825
SIZE (beorn7-perks-v1.0.1_GH0.tar.gz) = 10867
-SHA256 (bitly-go-simplejson-v0.5.0_GH0.tar.gz) = 44196c95263e74277372319e5a6cb7f53b29ef7ddab8c7fed6ce6fc80144d465
-SIZE (bitly-go-simplejson-v0.5.0_GH0.tar.gz) = 5994
+SHA256 (bitly-go-simplejson-v0.5.1_GH0.tar.gz) = ef4c1cc5aa25a5d681b7cc22c6eac7d60efd705a1ac4da60e5d8fd7ab942db48
+SIZE (bitly-go-simplejson-v0.5.1_GH0.tar.gz) = 6177
SHA256 (bmizerany-assert-b7ed37b82869_GH0.tar.gz) = f7dc11f10c5e52a94c836e15e7aff05ad4afba7436f66e5f4506806627c4635e
SIZE (bmizerany-assert-b7ed37b82869_GH0.tar.gz) = 1469
-SHA256 (bsm-redislock-v0.9.1_GH0.tar.gz) = b54cd475f0ceb8398f6a84cac00ddee5fbe04794aa8c54dbbe59b7ceb044a168
-SIZE (bsm-redislock-v0.9.1_GH0.tar.gz) = 7550
+SHA256 (bsm-redislock-v0.9.4_GH0.tar.gz) = b77a6f71c12dc6d3aa3ad17aa634b01542aae352da2e2ae6c24a9b9ba85f3f92
+SIZE (bsm-redislock-v0.9.4_GH0.tar.gz) = 7326
SHA256 (census-instrumentation-opencensus-go-v0.24.0_GH0.tar.gz) = 048708914541817193330ce052026deb0c617c9d953ac15ae601ab2bde5788d1
SIZE (census-instrumentation-opencensus-go-v0.24.0_GH0.tar.gz) = 176752
SHA256 (cespare-xxhash-v2.2.0_GH0.tar.gz) = b8c684b9e5e136510913727e6a845b28f8176e55db827b11f17769fba970fe13
SIZE (cespare-xxhash-v2.2.0_GH0.tar.gz) = 12334
-SHA256 (coreos-go-oidc-v3.5.0_GH0.tar.gz) = 848eb135d3a6b6dcee99a09be7eb1514dc55cc0e497bb9a4200689043994c081
-SIZE (coreos-go-oidc-v3.5.0_GH0.tar.gz) = 32229
-SHA256 (davecgh-go-spew-v1.1.1_GH0.tar.gz) = 7d82b9bb7291adbe7498fe946920ab3e7fc9e6cbfc3b2294693fad00bf0dd17e
-SIZE (davecgh-go-spew-v1.1.1_GH0.tar.gz) = 42152
+SHA256 (coreos-go-oidc-v3.9.0_GH0.tar.gz) = c644f0d98dd8f62c4332402682d6c369b73033aae6b6a43db6083d3f94d227da
+SIZE (coreos-go-oidc-v3.9.0_GH0.tar.gz) = 32500
+SHA256 (davecgh-go-spew-d8f796af33cc_GH0.tar.gz) = 21505c2cb5cb4e2b8ae3007f3f6db6edb9f1c28511f98975b6b0dedf0e3fa24e
+SIZE (davecgh-go-spew-d8f796af33cc_GH0.tar.gz) = 42183
SHA256 (dgryski-go-rendezvous-9f7001d12a5f_GH0.tar.gz) = 29584550745fd4b8fce2e2f3def7b9d9ffe2b86cf9b6596b53a660c9bbfe27b6
SIZE (dgryski-go-rendezvous-9f7001d12a5f_GH0.tar.gz) = 1699
-SHA256 (fsnotify-fsnotify-v1.6.0_GH0.tar.gz) = 583b2b399709d04807c5c3185e7d4dc0543d532af91fdeb85eeaf803a0b7703b
-SIZE (fsnotify-fsnotify-v1.6.0_GH0.tar.gz) = 46044
-SHA256 (ghodss-yaml-25d852aebe32_GH0.tar.gz) = 52ad2f9939d39cd22a4267ad385eeef1ae6ae329929bb4117181f87af1689c27
-SIZE (ghodss-yaml-25d852aebe32_GH0.tar.gz) = 14351
+SHA256 (felixge-httpsnoop-v1.0.4_GH0.tar.gz) = ffb63ba081e4c2360342dea2079d08b8560c315b2f458885fd34639786a1aa3d
+SIZE (felixge-httpsnoop-v1.0.4_GH0.tar.gz) = 11954
+SHA256 (fsnotify-fsnotify-v1.7.0_GH0.tar.gz) = ca8175ba6bd3d0cc992200c2f44acabec05367575dc0478c5902971fe7453f35
+SIZE (fsnotify-fsnotify-v1.7.0_GH0.tar.gz) = 57502
+SHA256 (ghodss-yaml-d8423dcdf344_GH0.tar.gz) = 1595e11cd70d828f1fab36d2d6569df0f852f464d812f903692f9cabc03974fc
+SIZE (ghodss-yaml-d8423dcdf344_GH0.tar.gz) = 14394
SHA256 (go-ini-ini-v1.67.0_GH0.tar.gz) = 06ba51234140118d1b6064f1817aa89cc971c6e7ce04cb9d286e6660d89296c8
SIZE (go-ini-ini-v1.67.0_GH0.tar.gz) = 53531
-SHA256 (go-jose-go-jose-v3.0.0_GH0.tar.gz) = 06fe2a7dbc16f27993a979eeb3a20c2608a02ea2d04480ed3141056be98c279c
-SIZE (go-jose-go-jose-v3.0.0_GH0.tar.gz) = 315103
-SHA256 (go-logr-logr-v1.2.3_GH0.tar.gz) = c5e27e7dcd864e17b3187739fea1c2f149a0e1a9c53e54d8a242db24443c3667
-SIZE (go-logr-logr-v1.2.3_GH0.tar.gz) = 38564
+SHA256 (go-jose-go-jose-v3.0.1_GH0.tar.gz) = 14bfdae88d8b0dda027d066c9ae92d0832fe90f08eb18c5749273b3ce18d58f7
+SIZE (go-jose-go-jose-v3.0.1_GH0.tar.gz) = 315497
+SHA256 (go-logr-logr-v1.4.1_GH0.tar.gz) = 8eae286ca6e69e82f22cdde7464f4e5530e624b2da486b09cd0ec46b745c0d0e
+SIZE (go-logr-logr-v1.4.1_GH0.tar.gz) = 56957
+SHA256 (go-logr-stdr-v1.2.2_GH0.tar.gz) = 37d975b280d884ca0d55a800bc6e47314b6e86268e56254f9d15d19ca9404eb8
+SIZE (go-logr-stdr-v1.2.2_GH0.tar.gz) = 9098
SHA256 (go-tomb-tomb-dd632973f1e7_GH0.tar.gz) = b67f4ee9324a78176bc3196fe262388696aeb3f31d9879d498200219f9c4c554
SIZE (go-tomb-tomb-dd632973f1e7_GH0.tar.gz) = 3631
SHA256 (go-yaml-yaml-v2.4.0_GH0.tar.gz) = d8e94679e5fff6bd1a35e10241543929a5f3da44f701755babf99b3daf0faac0
@@ -45,115 +51,125 @@ SHA256 (go-yaml-yaml-v3.0.1_GH0.tar.gz) = cf05411540d3e6ef8f1fd88434b34f94cedace
SIZE (go-yaml-yaml-v3.0.1_GH0.tar.gz) = 91173
SHA256 (golang-jwt-jwt-v3.2.2_GH0.tar.gz) = 4cd18a4bb5d949244f137fed0884f93695ff268cb9efaba71ddcf4c50b17efe0
SIZE (golang-jwt-jwt-v3.2.2_GH0.tar.gz) = 39887
-SHA256 (golang-appengine-v1.6.7_GH0.tar.gz) = c623d81235f7c9699e299b328191d813337dd57dcc800d7afdb5130e8c321a8f
-SIZE (golang-appengine-v1.6.7_GH0.tar.gz) = 333007
-SHA256 (golang-crypto-v0.7.0_GH0.tar.gz) = a7e73081a33f1bf496753a0cfd374052fb52da16d00600ca411d086a23da6178
-SIZE (golang-crypto-v0.7.0_GH0.tar.gz) = 1634438
-SHA256 (golang-exp-47ecfdc1ba53_GH0.tar.gz) = f2b18b76b508aad14a64ec635b433c98579426f77f3fc3297a80a69d5b3cf9a6
-SIZE (golang-exp-47ecfdc1ba53_GH0.tar.gz) = 1623283
+SHA256 (golang-appengine-v1.6.8_GH0.tar.gz) = 9f0029767e180c64ef42c448f02a247deb2980b2ba6908977ad4c53ebae1abb5
+SIZE (golang-appengine-v1.6.8_GH0.tar.gz) = 628708
+SHA256 (golang-crypto-v0.18.0_GH0.tar.gz) = 65cc44408170afc3f58d242ec1bf5c2ded68ae9d0847652eb3dca51a86ff7c34
+SIZE (golang-crypto-v0.18.0_GH0.tar.gz) = 1809280
+SHA256 (golang-exp-be819d1f06fc_GH0.tar.gz) = f84031c4cf21c41bb37649cc4f011368f281a1082d05419e16dde14702a7b6f2
+SIZE (golang-exp-be819d1f06fc_GH0.tar.gz) = 1733317
SHA256 (golang-groupcache-41bb18bfe9da_GH0.tar.gz) = 1e89795970d6593affdafe1d09dcf947681ca1ea82528e8e4fb9974a77f2e394
SIZE (golang-groupcache-41bb18bfe9da_GH0.tar.gz) = 26101
-SHA256 (golang-net-v0.8.0_GH0.tar.gz) = f9e2128a2d6861db0595428c7cce62fe5a131348a6c7651b6efa8b03d0b10831
-SIZE (golang-net-v0.8.0_GH0.tar.gz) = 1244302
-SHA256 (golang-oauth2-v0.6.0_GH0.tar.gz) = 9114431a99c6b75b1d0d738dba462edb9ba618b6735710e2d9164cebaadaee77
-SIZE (golang-oauth2-v0.6.0_GH0.tar.gz) = 86646
+SHA256 (golang-net-v0.20.0_GH0.tar.gz) = bae5107274cce60331dbc29301657afd86e5fb92a2e545f159e992eda8a9133d
+SIZE (golang-net-v0.20.0_GH0.tar.gz) = 1486820
+SHA256 (golang-oauth2-v0.16.0_GH0.tar.gz) = ff7fdccf5ceeec747740ac75fbeaf06158721aab3d0f057111d3271fbda351ff
+SIZE (golang-oauth2-v0.16.0_GH0.tar.gz) = 96077
SHA256 (golang-protobuf-v1.5.3_GH0.tar.gz) = 48457a6a9e8c78a7556ff5ff4a4c77d7df9bf70e882491ee0f3f1ff06db2bfaa
SIZE (golang-protobuf-v1.5.3_GH0.tar.gz) = 171822
-SHA256 (golang-sync-v0.1.0_GH0.tar.gz) = 81056c07b5dc1077f2d6ac0f7ce3d4ef199a3ff85c319ab03dcff22fa9ba2183
-SIZE (golang-sync-v0.1.0_GH0.tar.gz) = 19356
-SHA256 (golang-sys-v0.6.0_GH0.tar.gz) = b4f6d17c7a128f76169964b437cb66b3f2dbf9a33361928ec19dfecf7b03fc54
-SIZE (golang-sys-v0.6.0_GH0.tar.gz) = 1434234
-SHA256 (golang-text-v0.8.0_GH0.tar.gz) = aeaec799a8e0b02523c80fed03383da04bf1b9c9ef431ed4d34b70488fbeaa64
-SIZE (golang-text-v0.8.0_GH0.tar.gz) = 8359526
-SHA256 (google-go-cmp-v0.5.9_GH0.tar.gz) = 41a074c2fcfc72f813736f8ca8e3116e260a6b79af407d9da0d4c5e4c3f61acf
-SIZE (google-go-cmp-v0.5.9_GH0.tar.gz) = 104427
-SHA256 (google-go-genproto-7f2fa6fef1f4_GH0.tar.gz) = 15b01bd8312128a59e32a22237ca762afb26a49e2cd47006da242d6d56afe462
-SIZE (google-go-genproto-7f2fa6fef1f4_GH0.tar.gz) = 6129006
-SHA256 (google-uuid-v1.3.0_GH0.tar.gz) = 7f7f37c47980e0afcc178a9ffc390bec29ed2371919b4c07658eb01791a7f921
-SIZE (google-uuid-v1.3.0_GH0.tar.gz) = 16210
-SHA256 (googleapis-enterprise-certificate-proxy-v0.2.3_GH0.tar.gz) = 203c28cf4c29a46962c7508863fc23fab50afbc85d8775dceeb9c935a7022909
-SIZE (googleapis-enterprise-certificate-proxy-v0.2.3_GH0.tar.gz) = 31940
-SHA256 (googleapis-gax-go-v2.7.0_GH0.tar.gz) = 87891c9e72a2482ade4ec60d0ebc4d5fa6a3396e5e3593d5bb060d4a421c9677
-SIZE (googleapis-gax-go-v2.7.0_GH0.tar.gz) = 52950
-SHA256 (googleapis-google-api-go-client-v0.111.0_GH0.tar.gz) = 0873b9e16e4b86153b2b89e5b246629834137ead4a312248a26a63e7b15a3b68
-SIZE (googleapis-google-api-go-client-v0.111.0_GH0.tar.gz) = 31108245
-SHA256 (googleapis-google-cloud-go-compute-v1.18.0_GH0.tar.gz) = 479534541f37ac187391ea4fee29aa5dbbc0b2b0e526f002c97197abb9a72b32
-SIZE (googleapis-google-cloud-go-compute-v1.18.0_GH0.tar.gz) = 19763531
-SHA256 (gorilla-mux-v1.8.0_GH0.tar.gz) = ea2639259d2ce6f402636655e91eb93ba69c139e3cbf80b044ee393ada53757b
-SIZE (gorilla-mux-v1.8.0_GH0.tar.gz) = 45517
-SHA256 (grpc-grpc-go-v1.53.0_GH0.tar.gz) = acc2f19f13b778bbc2fe77ce4c6afe51e87793971acc5c0bb1e8e141a5643a3f
-SIZE (grpc-grpc-go-v1.53.0_GH0.tar.gz) = 1724906
+SHA256 (golang-sync-v0.6.0_GH0.tar.gz) = 23b8fca95397b2293e64e58d333633051ec942b46318ad8f630318e801658b67
+SIZE (golang-sync-v0.6.0_GH0.tar.gz) = 17605
+SHA256 (golang-sys-v0.16.0_GH0.tar.gz) = 9c17b728aa75f4fc4743c3f5c0dccdc3b7f9ac7c12b3124b666672cc571f657e
+SIZE (golang-sys-v0.16.0_GH0.tar.gz) = 1444155
+SHA256 (golang-text-v0.14.0_GH0.tar.gz) = c80295e75bda599d17ccf74038139b0957b9915fae4e60d8b46f89454ef171a0
+SIZE (golang-text-v0.14.0_GH0.tar.gz) = 8974094
+SHA256 (google-go-cmp-v0.6.0_GH0.tar.gz) = d14f7d57b0f6d25771bee3d7d5d038f532539e71bfc934772b1c0467ab90fa86
+SIZE (google-go-cmp-v0.6.0_GH0.tar.gz) = 104784
+SHA256 (google-s2a-go-v0.1.7_GH0.tar.gz) = 671aa97ee51cf7fff4f62a27d659aefb0ba97785c552183a03b25f49197cd028
+SIZE (google-s2a-go-v0.1.7_GH0.tar.gz) = 267117
+SHA256 (google-uuid-v1.6.0_GH0.tar.gz) = ee63376b5675376c60e055ed66e5f3651ccc703bd580c022b8ad00cea309252d
+SIZE (google-uuid-v1.6.0_GH0.tar.gz) = 20896
+SHA256 (googleapis-enterprise-certificate-proxy-v0.3.2_GH0.tar.gz) = d01f2349b605a37db615d0a9454970bda9575d8ebe12bdd0c164f4d2717ab2bc
+SIZE (googleapis-enterprise-certificate-proxy-v0.3.2_GH0.tar.gz) = 38853
+SHA256 (googleapis-gax-go-v2.12.0_GH0.tar.gz) = 40987741a6ab2c9aa56ee1a498e521d719271b808d25318cf2a602ee8b5f5dbf
+SIZE (googleapis-gax-go-v2.12.0_GH0.tar.gz) = 37779
+SHA256 (googleapis-go-genproto-a9fa1716bcac_GH0.tar.gz) = 70778b02cc720c909bef3a7d76c5c076ab269900cebb6ee1a8d270ec835dba1a
+SIZE (googleapis-go-genproto-a9fa1716bcac_GH0.tar.gz) = 5919264
+SHA256 (googleapis-google-api-go-client-v0.158.0_GH0.tar.gz) = 385df36f23551f0c1ded5fe31de6ef1e1bbec3020b46cd1ea8a8cb8912c030c0
+SIZE (googleapis-google-api-go-client-v0.158.0_GH0.tar.gz) = 36843908
+SHA256 (googleapis-google-cloud-go-compute-v1.23.3_GH0.tar.gz) = 712f6713c1549d4e150be3de3cd7a1698e309c56b57e08f8b3dc072fdbae33cc
+SIZE (googleapis-google-cloud-go-compute-v1.23.3_GH0.tar.gz) = 23101803
+SHA256 (gorilla-mux-v1.8.1_GH0.tar.gz) = c2a09e78d1886abb2d291b472eba3ac9185acb35234c1f5616669664ba893d6d
+SIZE (gorilla-mux-v1.8.1_GH0.tar.gz) = 47033
+SHA256 (grpc-grpc-go-v1.60.1_GH0.tar.gz) = a97859fadaa14a0a5e0d91d78ea69f301b07d7d206c9caf8ffebb0bc26c7299b
+SIZE (grpc-grpc-go-v1.60.1_GH0.tar.gz) = 2042404
SHA256 (hashicorp-hcl-v1.0.0_GH0.tar.gz) = 50632428210503070fd2fde748c88b7414bf84a6a0eadebf9d8e596a033bead2
SIZE (hashicorp-hcl-v1.0.0_GH0.tar.gz) = 70658
SHA256 (justinas-alice-v1.2.0_GH0.tar.gz) = 12171459da7096e0d34a0972387e15978ad7b0e73c83ce04ba2f89c44a22336b
SIZE (justinas-alice-v1.2.0_GH0.tar.gz) = 4568
-SHA256 (kubernetes-apimachinery-v0.26.2_GH0.tar.gz) = c656f032ad32a720b757f9c8c494f3505a17541c8c72c74625912d176d8fec5d
-SIZE (kubernetes-apimachinery-v0.26.2_GH0.tar.gz) = 567161
+SHA256 (kubernetes-apimachinery-v0.29.1_GH0.tar.gz) = 384964b9154daf8533d9533c509de3bfa12ae463eb29133012a455fa5b000ce2
+SIZE (kubernetes-apimachinery-v0.29.1_GH0.tar.gz) = 694122
SHA256 (kubernetes-gengo-83324d819ded_GH0.tar.gz) = 3a6a728f65a0b2c48210025e2418c8157a883f629d07d40a567682666be7f058
SIZE (kubernetes-gengo-83324d819ded_GH0.tar.gz) = 93239
-SHA256 (kubernetes-klog-v2.80.1_GH0.tar.gz) = 78730bcf9f801be40f98dc45ed43e942ca168b2bffa1b5d04b05c0aa7de1c95f
-SIZE (kubernetes-klog-v2.80.1_GH0.tar.gz) = 89632
+SHA256 (kubernetes-klog-v2.110.1_GH0.tar.gz) = 3d3f029acb93f027bf1efe9473672115fdf43345687e924c462adc4446068a67
+SIZE (kubernetes-klog-v2.110.1_GH0.tar.gz) = 104423
SHA256 (magiconair-properties-v1.8.7_GH0.tar.gz) = 09e950df1970975400edc7f6c2f9e3edace4e1ea49f823006387d130fb0f4f03
SIZE (magiconair-properties-v1.8.7_GH0.tar.gz) = 31425
-SHA256 (matttproud-golang_protobuf_extensions-v1.0.4_GH0.tar.gz) = b64cab9cb9ae8b9162c7197aeedc6ed617b4c93e4f5674c3ec6cd2e9b0d9d09c
-SIZE (matttproud-golang_protobuf_extensions-v1.0.4_GH0.tar.gz) = 37510
+SHA256 (matttproud-golang_protobuf_extensions-v2.0.0_GH0.tar.gz) = 69fd83cb3002df3359128c2748c8f319fc63ce0493d43a3dcd7a94a4f487f742
+SIZE (matttproud-golang_protobuf_extensions-v2.0.0_GH0.tar.gz) = 12099
SHA256 (mbland-hmacauth-44256dfd4bfa_GH0.tar.gz) = f5b9d6aff7eba04766d11cdc780d08458324f158f893ba84479f045dde75cb23
SIZE (mbland-hmacauth-44256dfd4bfa_GH0.tar.gz) = 6192
-SHA256 (mitchellh-mapstructure-v1.1.2_GH0.tar.gz) = 53fbc06b125ff1c9c73a4eb1764346932671a29c67a45a92e2ebc6855635069b
-SIZE (mitchellh-mapstructure-v1.1.2_GH0.tar.gz) = 20980
+SHA256 (mitchellh-mapstructure-v1.5.0_GH0.tar.gz) = 81106cbac93000812c194b4a2069dd32913ec18819b1e99e8436595ce4939413
+SIZE (mitchellh-mapstructure-v1.5.0_GH0.tar.gz) = 30123
SHA256 (natefinch-lumberjack-v2.2.1_GH0.tar.gz) = 935582f3f3377f09604bce4ab0488092d71c0d9ff3e9359a397f00ab6caed658
SIZE (natefinch-lumberjack-v2.2.1_GH0.tar.gz) = 12568
-SHA256 (nxadm-tail-v1.4.8_GH0.tar.gz) = 8208362046819275a0809000dceacbd7b2a7caa07bcd6547dd2ff9b2104fa56c
-SIZE (nxadm-tail-v1.4.8_GH0.tar.gz) = 1255770
-SHA256 (oauth2-proxy-mockoidc-e3afe97dec43_GH0.tar.gz) = 9e970562ef07c397b19ccd12b8f87431db410250801ed25ff57c10d67c7de3c7
-SIZE (oauth2-proxy-mockoidc-e3afe97dec43_GH0.tar.gz) = 19642
+SHA256 (nxadm-tail-v1.4.11_GH0.tar.gz) = f20a022655bb5acdb364382418d0481f938e761be7d4233af61b0d4659ae1812
+SIZE (nxadm-tail-v1.4.11_GH0.tar.gz) = 1175268
+SHA256 (oauth2-proxy-mockoidc-b9169deeb282_GH0.tar.gz) = 5b71bc5aeb71b68631e9d3f555f92323349a0125910dcae3238370b75d07d8cd
+SIZE (oauth2-proxy-mockoidc-b9169deeb282_GH0.tar.gz) = 20597
SHA256 (oauth2-proxy-tools-56ffd7384404_GH0.tar.gz) = bd43655e4593bc0692f2737cc3abcbd14211fc456479cf33f63fd1e0d3665226
SIZE (oauth2-proxy-tools-56ffd7384404_GH0.tar.gz) = 8481
-SHA256 (ohler55-ojg-v1.14.5_GH0.tar.gz) = 3d64667c15e3ff478273e9da7add9f1e2e43b02bc4c331c00f40d30d2a777b70
-SIZE (ohler55-ojg-v1.14.5_GH0.tar.gz) = 415778
+SHA256 (ohler55-ojg-v1.21.0_GH0.tar.gz) = ccd5fb7f4d01a367823e3fccac9625025bc94199def64abddb2b6b78b4bafb7b
+SIZE (ohler55-ojg-v1.21.0_GH0.tar.gz) = 448220
SHA256 (onsi-ginkgo-v1.16.5_GH0.tar.gz) = 0380c81321b764b75e76a7aa8fc8ab1ab361232a88d5b6124ef8b9a9e75d5287
SIZE (onsi-ginkgo-v1.16.5_GH0.tar.gz) = 164965
-SHA256 (onsi-gomega-v1.27.6_GH0.tar.gz) = 45d6cb03201279d052217ff6fe2b411a4308a463b21abe210ddc8d5a69d0fe8c
-SIZE (onsi-gomega-v1.27.6_GH0.tar.gz) = 311764
-SHA256 (pelletier-go-toml-v1.2.0_GH0.tar.gz) = 1a5a620f680033f17e34148bee8f26d96d8c27ff1d7f56f0fe1c7253595b5244
-SIZE (pelletier-go-toml-v1.2.0_GH0.tar.gz) = 57496
-SHA256 (pelletier-go-toml-v2.0.7_GH0.tar.gz) = e3add1ec1c2f00af3478d361b36f8ae598fbcca978d04dbd2aa2dfc12904083c
-SIZE (pelletier-go-toml-v2.0.7_GH0.tar.gz) = 892190
-SHA256 (pierrec-lz4-v4.1.17_GH0.tar.gz) = 2b8e1b98d4b2f859e27760e9018e9e57396764711f4665ebf0e7a0a9c088e7c2
-SIZE (pierrec-lz4-v4.1.17_GH0.tar.gz) = 40904356
-SHA256 (pmezard-go-difflib-v1.0.0_GH0.tar.gz) = 28f3dc1b5c0efd61203ab07233f774740d3bf08da4d8153fb5310db6cea0ebda
-SIZE (pmezard-go-difflib-v1.0.0_GH0.tar.gz) = 11398
-SHA256 (prometheus-client_golang-v1.14.0_GH0.tar.gz) = e774de79b48fcaf27a5b6bbeb6da0e814fee33c5050550625ef9b33f77835049
-SIZE (prometheus-client_golang-v1.14.0_GH0.tar.gz) = 236318
-SHA256 (prometheus-client_model-v0.3.0_GH0.tar.gz) = c71dc6402fe2414dec82c48173fe8d5aa9fc7c43af2f1f1f48d05c1652b965b9
-SIZE (prometheus-client_model-v0.3.0_GH0.tar.gz) = 14941
-SHA256 (prometheus-common-v0.42.0_GH0.tar.gz) = 156b60f595cab579dc6e5475f4125ebcbd73c25d0f42de1d6442eea73cd4e750
-SIZE (prometheus-common-v0.42.0_GH0.tar.gz) = 130574
-SHA256 (prometheus-procfs-v0.9.0_GH0.tar.gz) = 58e339aeb758e502cea6231f82add4924778b0df4544a918786fcf54de20fa95
-SIZE (prometheus-procfs-v0.9.0_GH0.tar.gz) = 220383
-SHA256 (protocolbuffers-protobuf-go-v1.28.1_GH0.tar.gz) = df0b3dceeff0e1b6d029e60f076edd0d852cb8f3c2fe4fe3fe40164f16ec9b6b
-SIZE (protocolbuffers-protobuf-go-v1.28.1_GH0.tar.gz) = 1280756
-SHA256 (redis-go-redis-v9.0.2_GH0.tar.gz) = 8a7e959bdae59f907bb06c9dfeab32e680f9723e1f9e876563bf2de02df35903
-SIZE (redis-go-redis-v9.0.2_GH0.tar.gz) = 268640
-SHA256 (spf13-afero-v1.1.2_GH0.tar.gz) = 66554a6b09b0009340ae77c119d5a14e2460bb3aea56e75e138c87e621f3803b
-SIZE (spf13-afero-v1.1.2_GH0.tar.gz) = 45309
-SHA256 (spf13-cast-v1.5.0_GH0.tar.gz) = b5bf72b468a9a9a0509b7d87c984a9b2e653c9b87e9842da385f81c43bd05b9a
-SIZE (spf13-cast-v1.5.0_GH0.tar.gz) = 15287
-SHA256 (spf13-jwalterweatherman-v1.0.0_GH0.tar.gz) = 2ece12b964e0d230b10851555185d42d3c81b401efda044265ae716eb1d0bc2d
-SIZE (spf13-jwalterweatherman-v1.0.0_GH0.tar.gz) = 6392
+SHA256 (onsi-gomega-v1.30.0_GH0.tar.gz) = fd60dbfac362dd0207fc202152044f6acc9e259c1120173a047f9dc8d7a7fad4
+SIZE (onsi-gomega-v1.30.0_GH0.tar.gz) = 315792
+SHA256 (open-telemetry-opentelemetry-go-contrib-v1.22.0_GH0.tar.gz) = 781d51a0935bb44a7e49d494743ae8dc74778a6eb8c530490ba64f85755a76f6
+SIZE (open-telemetry-opentelemetry-go-contrib-v1.22.0_GH0.tar.gz) = 609707
+SHA256 (open-telemetry-opentelemetry-go-v1.22.0_GH0.tar.gz) = f4000e1ef0078a1ee4bcbf25b1833ff3f56a10e4a9186a9c36766faaa53aa4a0
+SIZE (open-telemetry-opentelemetry-go-v1.22.0_GH0.tar.gz) = 1499182
+SHA256 (pelletier-go-toml-v2.1.1_GH0.tar.gz) = 372ec9b709082b04bafa60e87bbf40585cb7ad5de2cf632387a54ba242a0e825
+SIZE (pelletier-go-toml-v2.1.1_GH0.tar.gz) = 906877
+SHA256 (pierrec-lz4-v4.1.19_GH0.tar.gz) = a4f5f6fbeabf20736ea0539345288d91dd45f178c61850389cc39f973b0f5c7a
+SIZE (pierrec-lz4-v4.1.19_GH0.tar.gz) = 40910325
+SHA256 (pmezard-go-difflib-5d4384ee4fb2_GH0.tar.gz) = 8574a5cbc435057352a17ff9e6ad40190f3b9d623cd9ab0cdfa6c1d8f0bea0b2
+SIZE (pmezard-go-difflib-5d4384ee4fb2_GH0.tar.gz) = 11395
+SHA256 (prometheus-client_golang-v1.18.0_GH0.tar.gz) = 7de5d163cb7f18e1a3a0dd40d35e8de7bc2ef85f4a0bc22572bcbcfaa86ff709
+SIZE (prometheus-client_golang-v1.18.0_GH0.tar.gz) = 1081423
+SHA256 (prometheus-client_model-v0.5.0_GH0.tar.gz) = 170873e0b91cab5da6634af1498b88876842ff3e01212e2dabf6b4e6512c948d
+SIZE (prometheus-client_model-v0.5.0_GH0.tar.gz) = 17333
+SHA256 (prometheus-common-v0.45.0_GH0.tar.gz) = 775ce5c074b5261d85227d13c61075f9c36e6d3cf9ab2c5a7d90f4006ad24c40
+SIZE (prometheus-common-v0.45.0_GH0.tar.gz) = 133098
+SHA256 (prometheus-procfs-v0.12.0_GH0.tar.gz) = 2e10f60725a5905d6cfaeffd0bc1441171aa694236a6c7031aad5a87ff841495
+SIZE (prometheus-procfs-v0.12.0_GH0.tar.gz) = 237430
+SHA256 (protocolbuffers-protobuf-go-v1.32.0_GH0.tar.gz) = 816e0babc183807928c4ede81999dc1e33bfe6e7eca9ccebe0409974e68559db
+SIZE (protocolbuffers-protobuf-go-v1.32.0_GH0.tar.gz) = 1324049
+SHA256 (redis-go-redis-v9.4.0_GH0.tar.gz) = d2bd26be4dcb2368b6d4fbab2759b61385b0b36f8b8ccf80ad211f0594785973
+SIZE (redis-go-redis-v9.4.0_GH0.tar.gz) = 294300
+SHA256 (sagikazarmark-locafero-v0.4.0_GH0.tar.gz) = 9ca93b1d037912d27bbd11689c8a14b15f151df2cd2391648df67465423364c1
+SIZE (sagikazarmark-locafero-v0.4.0_GH0.tar.gz) = 9674
+SHA256 (sagikazarmark-slog-shim-v0.1.0_GH0.tar.gz) = a594ec7e138265768a5c23f8ab460724d8215db45dc1bddde4743bca3373803d
+SIZE (sagikazarmark-slog-shim-v0.1.0_GH0.tar.gz) = 10872
+SHA256 (sourcegraph-conc-v0.3.0_GH0.tar.gz) = c20a36ef6e8cd4721b8824d3e0a590d78f56ce72ace53ec7fdd2f7a978e9240f
+SIZE (sourcegraph-conc-v0.3.0_GH0.tar.gz) = 23021
+SHA256 (spf13-afero-v1.11.0_GH0.tar.gz) = f83f67c4a03d8bba2b7fe1a496e848b2b1b7d97d0b951d85d2b401e7488a4ed4
+SIZE (spf13-afero-v1.11.0_GH0.tar.gz) = 89257
+SHA256 (spf13-cast-v1.6.0_GH0.tar.gz) = 8eef6bfd96458f061dd738f6e146b7687bdde18f996258c9bab0f574f8c36ae8
+SIZE (spf13-cast-v1.6.0_GH0.tar.gz) = 15616
SHA256 (spf13-pflag-v1.0.5_GH0.tar.gz) = 9a2cae1f8e8ab0d2cc8ebe468e871af28d9ac0962cf0520999e3ba85f0c7b808
SIZE (spf13-pflag-v1.0.5_GH0.tar.gz) = 50796
-SHA256 (spf13-viper-v1.6.3_GH0.tar.gz) = a58703b5a80523d752d67ba1238473ec507e2f752268926f3a4fd79e3cb44e47
-SIZE (spf13-viper-v1.6.3_GH0.tar.gz) = 52318
+SHA256 (spf13-viper-v1.18.2_GH0.tar.gz) = eb9223a46c6319b3add6cfe3e7986fde9919bd441d695169d6f1238d19a0d6d4
+SIZE (spf13-viper-v1.18.2_GH0.tar.gz) = 118481
SHA256 (square-go-jose-v2.6.0_GH0.tar.gz) = 0c1556d9675158342ca7ed875b3b40ea534861b96a5a75b1eb3f6637503b9a76
SIZE (square-go-jose-v2.6.0_GH0.tar.gz) = 310320
-SHA256 (stretchr-testify-v1.8.1_GH0.tar.gz) = 6749fede6c26ae66b7e7500136dbe56913b4e0679099b6c1154d2210a9a1ec00
-SIZE (stretchr-testify-v1.8.1_GH0.tar.gz) = 97670
-SHA256 (subosito-gotenv-v1.4.2_GH0.tar.gz) = b7bafced91bfb64f2f80a78b7c343f0a16099aa0a4049ea6e4d0fa5d62be1741
-SIZE (subosito-gotenv-v1.4.2_GH0.tar.gz) = 10641
-SHA256 (vmihailenco-msgpack-v5.3.5_GH0.tar.gz) = ea944f50da36f44c610e36591b089724fed30414834c9fd1689052c94322d77b
-SIZE (vmihailenco-msgpack-v5.3.5_GH0.tar.gz) = 36037
+SHA256 (stretchr-testify-v1.8.4_GH0.tar.gz) = 0d3e82b04a05d9428a2a2aec8776bd0a07f14f5d1b4fa0a3676526ca8259fd62
+SIZE (stretchr-testify-v1.8.4_GH0.tar.gz) = 104427
+SHA256 (subosito-gotenv-v1.6.0_GH0.tar.gz) = 51a5a8e36f30ddd97866779e93c4e93b0d4958a60fabd1d17fc2226bfe7823db
+SIZE (subosito-gotenv-v1.6.0_GH0.tar.gz) = 11470
+SHA256 (uber-go-multierr-v1.11.0_GH0.tar.gz) = 8aa599cf7de733306cf8770f854f8a38e6c819b1ae4296f15e44b1e7c6698f34
+SIZE (uber-go-multierr-v1.11.0_GH0.tar.gz) = 16900
+SHA256 (vmihailenco-msgpack-v5.4.1_GH0.tar.gz) = cffb190f68ddf9d248e1587080466981ed911cf08901c6a81f4edc8d66b69f90
+SIZE (vmihailenco-msgpack-v5.4.1_GH0.tar.gz) = 37770
SHA256 (vmihailenco-tagparser-v2.0.0_GH0.tar.gz) = 676b99c051fef68d1b0fb0385103de0e42a3ee556919b2b54ff5d3445bac56dd
SIZE (vmihailenco-tagparser-v2.0.0_GH0.tar.gz) = 3683
-SHA256 (yuin-gopher-lua-f4c35e4016d9_GH0.tar.gz) = 4694620cb5ae735933bdd5bb7921de0daa0ed930c0e877cb8f2049d9fbeca16b
-SIZE (yuin-gopher-lua-f4c35e4016d9_GH0.tar.gz) = 162941
+SHA256 (yuin-gopher-lua-v1.1.1_GH0.tar.gz) = 9e706d96c11314a4b3e2034eb10726e48cc7e7e7e31d4765a675f901ee6a9a7e
+SIZE (yuin-gopher-lua-v1.1.1_GH0.tar.gz) = 170691
diff --git a/www/oauth2-proxy/files/oauth2-proxy.in b/www/oauth2-proxy/files/oauth2_proxy.in
index 17122e3eff13..5c8aeab10dcb 100644
--- a/www/oauth2-proxy/files/oauth2-proxy.in
+++ b/www/oauth2-proxy/files/oauth2_proxy.in
@@ -16,21 +16,35 @@
. /etc/rc.subr
-name=oauth2_proxy
-rcvar=oauth2_proxy_enable
+case $0 in
+/etc/rc*)
+ # during boot (shutdown) $0 is /etc/rc (/etc/rc.shutdown),
+ # so get the name of the script from $_file
+ name=$_file
+ ;;
+*)
+ name=$0
+ ;;
+esac
+
+name=${name##*/}
+rcvar=${name}_enable
desc="OAuth 2.0 proxy server"
-load_rc_config $name
+load_rc_config "$name"
-: ${oauth2_proxy_enable:=NO}
-: ${oauth2_proxy_user:=%%USER%%}
-: ${oauth2_proxy_group:=%%GROUP%%}
-: ${oauth2_proxy_flags:=""}
-: ${oauth2_proxy_restart:=60}
+eval "${rcvar}=\${${rcvar}:-'NO'}"
+eval "_oauth2_proxy_user=\${${name}_user:-'%%USER%%'}"
+eval "_oauth2_proxy_group=\${${name}_group:-'%%GROUP%%'}"
+eval "_oauth2_proxy_flags=\${${name}_flags:-''}"
+eval "_oauth2_proxy_restart=\${${name}_restart:-'60'}"
-pidfile=%%RUN_DIR%%/%%PORTNAME%%.pid
+configname=$(echo ${name}.cfg | sed -e 's:_:-:g')
+
+pidfile=%%RUN_DIR%%/${name}.pid
+childpidfile=%%RUN_DIR%%/${name}_child.pid
command=/usr/sbin/daemon
-command_args="-u ${oauth2_proxy_user} -o %%LOG_DIR%%/%%PORTNAME%%.out -t %%PORTNAME%% -R ${oauth2_proxy_restart} -P ${pidfile}"
+command_args="-u ${_oauth2_proxy_user} -o %%LOG_DIR%%/${name}.out -t ${name} -R ${_oauth2_proxy_restart} -P ${pidfile} -p ${childpidfile}"
start_cmd="oauth2_proxy_start"
stop_cmd="oauth2_proxy_stop"
@@ -38,19 +52,19 @@ stop_cmd="oauth2_proxy_stop"
oauth2_proxy_start()
{
if [ ! -d "%%LOG_DIR%%" ]; then
- install -d -o ${oauth2_proxy_user} %%LOG_DIR%%
+ install -d -o ${_oauth2_proxy_user} %%LOG_DIR%%
fi
if [ ! -d "%%RUN_DIR%%" ]; then
- install -d -o ${oauth2_proxy_user} %%RUN_DIR%%
+ install -d -o ${_oauth2_proxy_user} %%RUN_DIR%%
fi
- chown -R ${oauth2_proxy_user} %%LOG_DIR%%
+ chown -R ${_oauth2_proxy_user} %%LOG_DIR%%
- echo "Starting %%PORTNAME%%."
+ echo "Starting ${name}."
${command} ${command_args} \
%%PREFIX%%/bin/%%PORTNAME%% \
- --config %%PREFIX%%/etc/%%PORTNAME%%.cfg \
- ${oauth2_proxy_flags}
+ --config %%PREFIX%%/etc/${configname} \
+ ${_oauth2_proxy_flags}
}
oauth2_proxy_stop()
@@ -58,7 +72,7 @@ oauth2_proxy_stop()
local pid_daemon
local pid_child
- echo "Stopping %%PORTNAME%%."
+ echo "Stopping ${name}."
pid_daemon=$(check_pidfile ${pidfile} ${command})
if [ ! -z "${pid_daemon}" ]; then
@@ -66,7 +80,7 @@ oauth2_proxy_stop()
fi
- pid_child=$(pgrep -U ${oauth2_proxy_user} -f %%PREFIX%%/bin/%%PORTNAME%%)
+ pid_child=$(check_pidfile ${childpidfile} %%PREFIX%%/bin/%%PORTNAME%%)
if [ ! -z "${pid_child}" ]; then
kill -TERM ${pid_child}
fi
diff --git a/www/offpunk/Makefile b/www/offpunk/Makefile
index 41bd3486fd6b..c50a6a4fe34b 100644
--- a/www/offpunk/Makefile
+++ b/www/offpunk/Makefile
@@ -1,5 +1,5 @@
PORTNAME= offpunk
-PORTVERSION= 1.10
+PORTVERSION= 2.2
DISTVERSIONPREFIX= v
CATEGORIES= www python
MASTER_SITES= https://git.sr.ht/~lioploum/${PORTNAME}/archive/${DISTVERSIONFULL}${EXTRACT_SUFX}?dummy=/
@@ -11,6 +11,7 @@ WWW= https://sr.ht/~lioploum/offpunk/
LICENSE= BSD2CLAUSE
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}flit-core>0:devel/py-flit-core@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}hatchling>0:devel/py-hatchling@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}beautifulsoup>0:www/py-beautifulsoup@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}cryptography>0:security/py-cryptography@${PY_FLAVOR} \
@@ -21,7 +22,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}beautifulsoup>0:www/py-beautifulsoup@${PY_FL
USES= python shebangfix
USE_PYTHON= autoplist pep517
-SHEBANG_FILES= offpunk.py
+SHEBANG_FILES= ansicat.py netcache.py offpunk.py opnk.py
NO_ARCH= yes
diff --git a/www/offpunk/distinfo b/www/offpunk/distinfo
index ad13874c7c73..34bf62cb1ef9 100644
--- a/www/offpunk/distinfo
+++ b/www/offpunk/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1691366454
-SHA256 (offpunk-v1.10.tar.gz) = 1715e819cbf1475943b16aba18a157a26bc8da5184dc6c5b1f1bbcf8e5455eea
-SIZE (offpunk-v1.10.tar.gz) = 210865
+TIMESTAMP = 1714949990
+SHA256 (offpunk-v2.2.tar.gz) = c6afc11bcfc8624f2eb79e97b37987ee3a9b46fe0888a09d86310fd3a7ddb346
+SIZE (offpunk-v2.2.tar.gz) = 231019
diff --git a/www/oneshot/Makefile b/www/oneshot/Makefile
index b1046d9d2f1e..2c61785924f6 100644
--- a/www/oneshot/Makefile
+++ b/www/oneshot/Makefile
@@ -1,7 +1,7 @@
PORTNAME= oneshot
DISTVERSIONPREFIX= v
DISTVERSION= 1.5.1
-PORTREVISION= 20
+PORTREVISION= 21
CATEGORIES= www
MAINTAINER= lcook@FreeBSD.org
diff --git a/www/onionshare-cli/Makefile b/www/onionshare-cli/Makefile
index dad116890835..c3a13470cefe 100644
--- a/www/onionshare-cli/Makefile
+++ b/www/onionshare-cli/Makefile
@@ -1,6 +1,7 @@
PORTNAME= onionshare-cli
PORTVERSION= 2.6
DISTNAME= onionshare_cli-${PORTVERSION}
+PORTREVISION= 1
CATEGORIES= www security python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/onionshare/Makefile b/www/onionshare/Makefile
index af474ab64b89..130cd73619c4 100644
--- a/www/onionshare/Makefile
+++ b/www/onionshare/Makefile
@@ -1,7 +1,7 @@
PORTNAME= onionshare
DISTVERSIONPREFIX=v
DISTVERSION= 2.6
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= www security python
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/openemr/Makefile b/www/openemr/Makefile
new file mode 100644
index 000000000000..88c8646f4cde
--- /dev/null
+++ b/www/openemr/Makefile
@@ -0,0 +1,39 @@
+PORTNAME= openemr
+PORTVERSION= 7.0.2
+CATEGORIES= www
+MASTER_SITES= SF/openemr/OpenEMR%20Current/${PORTVERSION}/
+PKGNAMESUFFIX= ${PHP_PKGNAMESUFFIX}
+
+MAINTAINER= wen@FreeBSD.org
+COMMENT= Electronic health records and medical practice management application
+WWW= https://www.open-emr.org/
+
+LICENSE= GPLv3
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+USES= cpe php:flavors
+USE_PHP= ctype curl gd json ldap mcrypt \
+ mbstring openssl pdo pdo_mysql \
+ session xml xmlreader xmlrpc xsl zip zlib
+
+NO_BUILD= yes
+PLIST= ${WRKDIR}/plist
+SUB_FILES= pkg-message
+SUB_LIST= OPENEMRDIR=${OPENEMRDIR}
+
+OPENEMRDIR?= www/openemr
+
+post-patch:
+ @${RM} -rf ${WRKSRC}/.g*
+ @${RM} -rf ${WRKSRC}/.e*
+ @${RM} -rf ${WRKSRC}/.s*
+
+pre-install:
+ @${FIND} -s -d ${WRKSRC} -type f | ${SED} "s?${WRKSRC}?${OPENEMRDIR}?g" >>${PLIST}
+ @${FIND} -s -d ${WRKSRC} -type l | ${SED} "s?${WRKSRC}?${OPENEMRDIR}?g" >>${PLIST}
+ @${FIND} -s -d ${WRKSRC} -type d | ${SED} "s?${WRKSRC}?@dir ${OPENEMRDIR}?g" >> ${PLIST}
+
+do-install:
+ @cd ${WRKSRC} && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/${OPENEMRDIR}
+
+.include <bsd.port.mk>
diff --git a/www/openemr/distinfo b/www/openemr/distinfo
new file mode 100644
index 000000000000..96f94b2a3a16
--- /dev/null
+++ b/www/openemr/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1714915935
+SHA256 (openemr-7.0.2.tar.gz) = 70fded3f6f6dc0817b390ff32f442abd915198b8680369b0112b42d54bae1694
+SIZE (openemr-7.0.2.tar.gz) = 209854194
diff --git a/www/openemr/files/pkg-message.in b/www/openemr/files/pkg-message.in
new file mode 100644
index 000000000000..1bebbb3aa69c
--- /dev/null
+++ b/www/openemr/files/pkg-message.in
@@ -0,0 +1,26 @@
+[
+{ type: install
+ message: <<EOM
+
+1) Add the following to your Apache configuration file
+ httpd.conf, and restart the server:
+
+ Alias /openemr %%PREFIX%%/%%OPENEMRDIR%%/
+ AcceptPathInfo On
+ <Directory %%PREFIX%%/%%OPENEMRDIR%%/>
+ AllowOverride None
+ Require all granted
+ </Directory>
+
+2) Visit your OpenEMR site with a browser (i.e.,
+ http://your.server.com/openemr/), and you should
+ be taken to the install script, which will lead
+ you through the installation step by step.
+
+For more information, see the INSTALL DOCUMENTATION:
+
+ https://www.open-emr.org/wiki/index.php/OpenEMR_Installation_Guides
+
+EOM
+}
+]
diff --git a/www/openemr/pkg-descr b/www/openemr/pkg-descr
new file mode 100644
index 000000000000..0d60dbcf617f
--- /dev/null
+++ b/www/openemr/pkg-descr
@@ -0,0 +1,5 @@
+OpenEMR is a Free and Open Source electronic health records and medical
+practice management application. It is ONC Certified and it features
+fully integrated electronic health records, practice management, scheduling,
+electronic billing, internationalization, free support, a vibrant community,
+and a whole lot more.
diff --git a/www/owncast/Makefile b/www/owncast/Makefile
index 30eed7a153e0..9bb99e51008c 100644
--- a/www/owncast/Makefile
+++ b/www/owncast/Makefile
@@ -1,7 +1,7 @@
PORTNAME= owncast
DISTVERSIONPREFIX= v
DISTVERSION= 0.1.2
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= www
DIST_SUBDIR= ${PORTNAME}
diff --git a/www/p5-HTML5-DOM/Makefile b/www/p5-HTML5-DOM/Makefile
index fd20dcee12a5..7e5094014390 100644
--- a/www/p5-HTML5-DOM/Makefile
+++ b/www/p5-HTML5-DOM/Makefile
@@ -1,5 +1,5 @@
PORTNAME= HTML5-DOM
-PORTVERSION= 1.25
+PORTVERSION= 1.26
CATEGORIES= www perl5
MASTER_SITES= CPAN
MASTER_SITE_SUBDIR= CPAN:ZHUMARIN
@@ -7,7 +7,7 @@ PKGNAMEPREFIX= p5-
MAINTAINER= wen@FreeBSD.org
COMMENT= Super fast html5 DOM library with css selectors
-WWW= https://metacpan.org/release/HTML5-DOM
+WWW= https://metacpan.org/release/HTML5-DOM
LICENSE= MIT
diff --git a/www/p5-HTML5-DOM/distinfo b/www/p5-HTML5-DOM/distinfo
index c8ba15b50f6e..34ff6d39f790 100644
--- a/www/p5-HTML5-DOM/distinfo
+++ b/www/p5-HTML5-DOM/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1625764493
-SHA256 (HTML5-DOM-1.25.tar.gz) = a815c4bd6bada87203628f8e658d78610fdf9bd6b9dacfd10c437819416cee54
-SIZE (HTML5-DOM-1.25.tar.gz) = 1473445
+TIMESTAMP = 1715047555
+SHA256 (HTML5-DOM-1.26.tar.gz) = 0c149680bba16de39839f512007376d31810520cdd824afa7ef218af15db5bd9
+SIZE (HTML5-DOM-1.26.tar.gz) = 1469098
diff --git a/www/p5-HTTP-Tiny/Makefile b/www/p5-HTTP-Tiny/Makefile
index bdb68b7d7c3d..791a5fb136bd 100644
--- a/www/p5-HTTP-Tiny/Makefile
+++ b/www/p5-HTTP-Tiny/Makefile
@@ -1,5 +1,6 @@
PORTNAME= HTTP-Tiny
PORTVERSION= 0.088
+PORTREVISION= 1
CATEGORIES= www perl5
MASTER_SITES= CPAN
PKGNAMEPREFIX= p5-
@@ -19,17 +20,18 @@ NO_ARCH= yes
PORTSCOUT= limit:^[0-9\.]*$$
-OPTIONS_DEFINE= COOKIE HTTPS IO_SOCKET_IP
-OPTIONS_DEFAULT=COOKIE HTTPS IO_SOCKET_IP
+OPTIONS_DEFINE= CERTS COOKIE HTTPS IO_SOCKET_IP
+OPTIONS_DEFAULT=CERTS COOKIE HTTPS IO_SOCKET_IP
+CERTS_DESC= Install the Mozilla CA cert bundle
IO_SOCKET_IP_DESC= Use IO::Socket:IP instead of IO::Socket::INET
+CERTS_BUILD_DEPENDS= p5-Mozilla-CA>=20160104:www/p5-Mozilla-CA
+CERTS_RUN_DEPENDS= p5-Mozilla-CA>=20160104:www/p5-Mozilla-CA
COOKIE_BUILD_DEPENDS= p5-HTTP-CookieJar>=0.001:www/p5-HTTP-CookieJar
COOKIE_RUN_DEPENDS= p5-HTTP-CookieJar>=0.001:www/p5-HTTP-CookieJar
HTTPS_BUILD_DEPENDS= p5-IO-Socket-SSL>=1.42:security/p5-IO-Socket-SSL \
- p5-Mozilla-CA>=20160104:www/p5-Mozilla-CA \
p5-Net-SSLeay>=1.49:security/p5-Net-SSLeay
HTTPS_RUN_DEPENDS= p5-IO-Socket-SSL>=1.42:security/p5-IO-Socket-SSL \
- p5-Mozilla-CA>=20160104:www/p5-Mozilla-CA \
p5-Net-SSLeay>=1.49:security/p5-Net-SSLeay
.include <bsd.port.mk>
diff --git a/www/p5-Mojolicious/Makefile b/www/p5-Mojolicious/Makefile
index deda1ad1770a..244f94db54ff 100644
--- a/www/p5-Mojolicious/Makefile
+++ b/www/p5-Mojolicious/Makefile
@@ -1,5 +1,5 @@
PORTNAME= Mojolicious
-PORTVERSION= 9.36
+PORTVERSION= 9.37
CATEGORIES= www perl5
MASTER_SITES= CPAN
PKGNAMEPREFIX= p5-
diff --git a/www/p5-Mojolicious/distinfo b/www/p5-Mojolicious/distinfo
index 6e3b3c938c0a..7a547ee308d0 100644
--- a/www/p5-Mojolicious/distinfo
+++ b/www/p5-Mojolicious/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1710045378
-SHA256 (Mojolicious-9.36.tar.gz) = 517ecf6fd86a0b7c6169d55102238bf9851618db762fb00d4cf0d94c6252015f
-SIZE (Mojolicious-9.36.tar.gz) = 938951
+TIMESTAMP = 1715802752
+SHA256 (Mojolicious-9.37.tar.gz) = 4fb8a0882ed17f864f7de96b94fab61706f967f919c572dcccede68e588e9810
+SIZE (Mojolicious-9.37.tar.gz) = 940046
diff --git a/www/p5-Mojolicious/pkg-plist b/www/p5-Mojolicious/pkg-plist
index d8af50670429..d7e72618c31a 100644
--- a/www/p5-Mojolicious/pkg-plist
+++ b/www/p5-Mojolicious/pkg-plist
@@ -6,6 +6,7 @@ bin/morbo
%%SITE_PERL%%/Mojo/Asset/File.pm
%%SITE_PERL%%/Mojo/Asset/Memory.pm
%%SITE_PERL%%/Mojo/Base.pm
+%%SITE_PERL%%/Mojo/BaseUtil.pm
%%SITE_PERL%%/Mojo/ByteStream.pm
%%SITE_PERL%%/Mojo/Cache.pm
%%SITE_PERL%%/Mojo/Collection.pm
@@ -151,6 +152,7 @@ bin/morbo
%%PERL5_MAN3%%/Mojo::Asset::File.3.gz
%%PERL5_MAN3%%/Mojo::Asset::Memory.3.gz
%%PERL5_MAN3%%/Mojo::Base.3.gz
+%%PERL5_MAN3%%/Mojo::BaseUtil.3.gz
%%PERL5_MAN3%%/Mojo::ByteStream.3.gz
%%PERL5_MAN3%%/Mojo::Cache.3.gz
%%PERL5_MAN3%%/Mojo::Collection.3.gz
diff --git a/www/p5-REST-Client/Makefile b/www/p5-REST-Client/Makefile
index c45a9a35065b..651b07edd6c6 100644
--- a/www/p5-REST-Client/Makefile
+++ b/www/p5-REST-Client/Makefile
@@ -1,10 +1,10 @@
PORTNAME= REST-Client
-PORTVERSION= 273
+DISTVERSION= 281
CATEGORIES= www perl5
MASTER_SITES= CPAN
PKGNAMEPREFIX= p5-
-MAINTAINER= michelle@sorbs.net
+MAINTAINER= ports@FreeBSD.org
COMMENT= Simple client for interacting with RESTful http/https resources
WWW= https://metacpan.org/release/REST-Client
diff --git a/www/p5-REST-Client/distinfo b/www/p5-REST-Client/distinfo
index 4263c3cdcbfc..575f4f073e2f 100644
--- a/www/p5-REST-Client/distinfo
+++ b/www/p5-REST-Client/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1508317417
-SHA256 (REST-Client-273.tar.gz) = a8652a2214308faff2c68be5ce64c904dcccc5e86be7f32376c1590869d01844
-SIZE (REST-Client-273.tar.gz) = 20405
+TIMESTAMP = 1715681294
+SHA256 (REST-Client-281.tar.gz) = fa10d21a0037e682601efe66738a758ff7521094aa01229e93c888a679b2c8f6
+SIZE (REST-Client-281.tar.gz) = 10292
diff --git a/www/pear-Structures_DataGrid_Renderer_Smarty/Makefile b/www/pear-Structures_DataGrid_Renderer_Smarty/Makefile
index 997bd3d9a794..d9cba579748f 100644
--- a/www/pear-Structures_DataGrid_Renderer_Smarty/Makefile
+++ b/www/pear-Structures_DataGrid_Renderer_Smarty/Makefile
@@ -6,6 +6,9 @@ MAINTAINER= sunpoet@FreeBSD.org
COMMENT= Smarty Renderer for pear-Structures_DataGrid
WWW= https://pear.php.net/package/Structures_DataGrid_Renderer_Smarty
+DEPRECATED= Last release in 2010, depends on expired www/smarty2
+EXPIRATION_DATE=2024-06-04
+
RUN_DEPENDS= ${PEARDIR}/Structures/DataGrid.php:devel/pear-Structures_DataGrid@${PHP_FLAVOR} \
${LOCALBASE}/share/smarty/Smarty.class.php:www/smarty2@${PHP_FLAVOR} \
${PEARDIR}/Structures/DataGrid/Renderer/Pager.php:www/pear-Structures_DataGrid_Renderer_Pager@${PHP_FLAVOR}
diff --git a/www/php83-tidy/Makefile b/www/php83-tidy/Makefile
index b7d1a33160c5..e8b8a4b50107 100644
--- a/www/php83-tidy/Makefile
+++ b/www/php83-tidy/Makefile
@@ -1,4 +1,4 @@
-PORTEVISION= 1
+PORTREVISION= 1
CATEGORIES= www
MASTERDIR= ${.CURDIR}/../../lang/php83
diff --git a/www/phpfpmtop/Makefile b/www/phpfpmtop/Makefile
index 6236fcbea5fb..21c2bd70c27e 100644
--- a/www/phpfpmtop/Makefile
+++ b/www/phpfpmtop/Makefile
@@ -1,7 +1,7 @@
PORTNAME= phpfpmtop
DISTVERSIONPREFIX= v
DISTVERSION= 0.2
-PORTREVISION= 6
+PORTREVISION= 7
CATEGORIES= www devel
MAINTAINER= mops@punkt.de
diff --git a/www/phpsysinfo/Makefile b/www/phpsysinfo/Makefile
index e383a6c8889b..8ebc1bbb7380 100644
--- a/www/phpsysinfo/Makefile
+++ b/www/phpsysinfo/Makefile
@@ -1,8 +1,9 @@
PORTNAME= phpsysinfo
DISTVERSIONPREFIX= v
DISTVERSION= 3.4.3
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= www
+PKGNAMESUFFIX= ${PHP_PKGNAMESUFFIX}
MAINTAINER= tremere@cainites.net
COMMENT= PHP script for displaying system information
diff --git a/www/piwigo/Makefile b/www/piwigo/Makefile
index 88326280cb5b..fd3de60cd6a8 100644
--- a/www/piwigo/Makefile
+++ b/www/piwigo/Makefile
@@ -1,6 +1,6 @@
PORTNAME= piwigo
DISTVERSION= 14.4.0
-PORTREVISION= 0
+PORTREVISION= 3
PKGNAMESUFFIX= ${PHP_PKGNAMESUFFIX}
CATEGORIES= www
MASTER_SITES= https://piwigo.org/download/dlcounter.php?code=${PORTVERSION}&/
diff --git a/www/pomerium/Makefile b/www/pomerium/Makefile
index 6be718741fa5..7707f19c7b03 100644
--- a/www/pomerium/Makefile
+++ b/www/pomerium/Makefile
@@ -1,7 +1,7 @@
PORTNAME= pomerium
DISTVERSIONPREFIX= v
DISTVERSION= 0.8.4
-PORTREVISION= 3
+PORTREVISION= 4
PORTEPOCH= 1
CATEGORIES= www
diff --git a/www/privatebin/Makefile b/www/privatebin/Makefile
index e1e932894359..cd58be87d537 100644
--- a/www/privatebin/Makefile
+++ b/www/privatebin/Makefile
@@ -1,5 +1,6 @@
PORTNAME= privatebin
-PORTVERSION= 1.7.1
+PORTVERSION= 1.7.3
+PORTREVISION= 1
CATEGORIES= www security
MAINTAINER= dvl@FreeBSD.org
diff --git a/www/privatebin/distinfo b/www/privatebin/distinfo
index d5ad49a165f9..5283ed0b65e1 100644
--- a/www/privatebin/distinfo
+++ b/www/privatebin/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1707662300
-SHA256 (privatebin-PrivateBin-1.7.1_GH0.tar.gz) = 136faa5ba0c2d51ace916a2c0b282f5c7d5376265406040c91730e28233367ff
-SIZE (privatebin-PrivateBin-1.7.1_GH0.tar.gz) = 657024
+TIMESTAMP = 1715622786
+SHA256 (privatebin-PrivateBin-1.7.3_GH0.tar.gz) = 85b3b8db81e893b684364b12085cd2ee9eef172d96e6d831ebbc021fcb32fb99
+SIZE (privatebin-PrivateBin-1.7.3_GH0.tar.gz) = 762434
diff --git a/www/privatebin/pkg-plist b/www/privatebin/pkg-plist
index ea0e37a89489..947dd4b8e719 100644
--- a/www/privatebin/pkg-plist
+++ b/www/privatebin/pkg-plist
@@ -10,6 +10,8 @@
%%WWWDIR%%/browserconfig.xml
%%WWWDIR%%/cfg/.htaccess
%%WWWDIR%%/cfg/conf.sample.php
+%%WWWDIR%%/composer.json
+%%WWWDIR%%/composer.lock
%%WWWDIR%%/css/bootstrap/bootstrap-3.4.1.css
%%WWWDIR%%/css/bootstrap/bootstrap-theme-3.4.1.css
%%WWWDIR%%/css/bootstrap/darkstrap-0.9.3.css
@@ -19,6 +21,10 @@
%%WWWDIR%%/css/bootstrap/fonts/glyphicons-halflings-regular.woff
%%WWWDIR%%/css/bootstrap/fonts/glyphicons-halflings-regular.woff2
%%WWWDIR%%/css/bootstrap/privatebin.css
+%%WWWDIR%%/css/bootstrap5/bootstrap-5.3.3.css
+%%WWWDIR%%/css/bootstrap5/bootstrap.rtl-5.3.3.css
+%%WWWDIR%%/css/bootstrap5/privatebin.css
+%%WWWDIR%%/css/common.css
%%WWWDIR%%/css/noscript.css
%%WWWDIR%%/css/prettify/desert.css
%%WWWDIR%%/css/prettify/doxy.css
@@ -62,6 +68,7 @@
%%WWWDIR%%/i18n/tr.json
%%WWWDIR%%/i18n/uk.json
%%WWWDIR%%/i18n/zh.json
+%%WWWDIR%%/img/bootstrap-icons.svg
%%WWWDIR%%/img/android-chrome-192x192.png
%%WWWDIR%%/img/android-chrome-512x512.png
%%WWWDIR%%/img/apple-touch-icon.png
@@ -90,9 +97,11 @@
%%WWWDIR%%/js/base-x-4.0.0.js
%%WWWDIR%%/js/base64-1.7.js
%%WWWDIR%%/js/bootstrap-3.4.1.js
+%%WWWDIR%%/js/bootstrap-5.3.3.js
%%WWWDIR%%/js/comment.jsonld
%%WWWDIR%%/js/commentmeta.jsonld
-%%WWWDIR%%/js/jquery-3.7.0.js
+%%WWWDIR%%/js/dark-mode-switch.js
+%%WWWDIR%%/js/jquery-3.7.1.js
%%WWWDIR%%/js/kjua-0.9.0.js
%%WWWDIR%%/js/legacy.js
%%WWWDIR%%/js/package-lock.json
@@ -101,7 +110,7 @@
%%WWWDIR%%/js/pastemeta.jsonld
%%WWWDIR%%/js/prettify.js
%%WWWDIR%%/js/privatebin.js
-%%WWWDIR%%/js/purify-3.0.8.js
+%%WWWDIR%%/js/purify-3.1.3.js
%%WWWDIR%%/js/rawinflate-0.3.js
%%WWWDIR%%/js/showdown-2.1.0.js
%%WWWDIR%%/js/types.jsonld
@@ -135,6 +144,7 @@
%%WWWDIR%%/robots.txt
%%WWWDIR%%/tpl/.htaccess
%%WWWDIR%%/tpl/bootstrap.php
+%%WWWDIR%%/tpl/bootstrap5.php
%%WWWDIR%%/tpl/page.php
%%WWWDIR%%/tpl/yourlsproxy.php
%%WWWDIR%%/vendor/.htaccess
diff --git a/www/proxygen/Makefile b/www/proxygen/Makefile
index c30f3cd2f2a1..410678d3c94a 100644
--- a/www/proxygen/Makefile
+++ b/www/proxygen/Makefile
@@ -1,6 +1,7 @@
PORTNAME= proxygen
DISTVERSIONPREFIX= v
-DISTVERSION= 2024.04.22.00
+DISTVERSION= 2024.05.06.00
+PORTREVISION= 1
CATEGORIES= www
MAINTAINER= yuri@FreeBSD.org
diff --git a/www/proxygen/distinfo b/www/proxygen/distinfo
index 340440c8fa3b..e11fa8025178 100644
--- a/www/proxygen/distinfo
+++ b/www/proxygen/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1713844786
-SHA256 (facebook-proxygen-v2024.04.22.00_GH0.tar.gz) = 931e1721e0f455d8c9ec6027f345db4e30b73cf3c39d162c308a3968ee95e6a8
-SIZE (facebook-proxygen-v2024.04.22.00_GH0.tar.gz) = 1179877
+TIMESTAMP = 1715055836
+SHA256 (facebook-proxygen-v2024.05.06.00_GH0.tar.gz) = dcd618bce64711b39d3ca7c89caa41afb69bd3523e6f7b1c5e8ff3caf0fd90cb
+SIZE (facebook-proxygen-v2024.05.06.00_GH0.tar.gz) = 1181280
diff --git a/www/py-adblock/Makefile b/www/py-adblock/Makefile
index 5c4130c778a8..a7347e085b69 100644
--- a/www/py-adblock/Makefile
+++ b/www/py-adblock/Makefile
@@ -1,6 +1,6 @@
PORTNAME= adblock
DISTVERSION= 0.6.0
-PORTREVISION= 7
+PORTREVISION= 9
CATEGORIES= www python
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-aioh2/Makefile b/www/py-aioh2/Makefile
index 6d6470f68d37..70731fd0538b 100644
--- a/www/py-aioh2/Makefile
+++ b/www/py-aioh2/Makefile
@@ -1,5 +1,6 @@
PORTNAME= aioh2
PORTVERSION= 0.2.3
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,11 +12,13 @@ WWW= https://github.com/decentfox/aioh2
LICENSE= BSD3CLAUSE
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}h2>=3:www/py-h2@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}priority>=1.3.0:www/py-priority@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-aiohttp-session/Makefile b/www/py-aiohttp-session/Makefile
index 0ec4cae489a4..d42704bc0f2d 100644
--- a/www/py-aiohttp-session/Makefile
+++ b/www/py-aiohttp-session/Makefile
@@ -1,5 +1,6 @@
PORTNAME= aiohttp-session
DISTVERSION= 2.11.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-aiohttp_cors/Makefile b/www/py-aiohttp_cors/Makefile
index cb2777d4d79f..bcad74f7335c 100644
--- a/www/py-aiohttp_cors/Makefile
+++ b/www/py-aiohttp_cors/Makefile
@@ -1,5 +1,6 @@
PORTNAME= aiohttp_cors
PORTVERSION= 0.7.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,10 +13,12 @@ WWW= https://github.com/aio-libs/aiohttp-cors
LICENSE= APACHE20
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}aiohttp>=1.1:www/py-aiohttp@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-aiostream/Makefile b/www/py-aiostream/Makefile
index b1e1773ad872..2b406fe47773 100644
--- a/www/py-aiostream/Makefile
+++ b/www/py-aiostream/Makefile
@@ -1,5 +1,5 @@
PORTNAME= aiostream
-PORTVERSION= 0.5.2
+PORTVERSION= 0.6.1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,10 +12,12 @@ WWW= https://aiostream.readthedocs.io/en/stable/ \
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/LICENSE
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=61:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}typing-extensions>=0:devel/py-typing-extensions@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-aiostream/distinfo b/www/py-aiostream/distinfo
index 2f706112f049..c48a0e867c7a 100644
--- a/www/py-aiostream/distinfo
+++ b/www/py-aiostream/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1698341089
-SHA256 (aiostream-0.5.2.tar.gz) = b71b519a2d66c38f0872403ab86417955b77352f08d9ad02ad46fc3926b389f4
-SIZE (aiostream-0.5.2.tar.gz) = 35339
+TIMESTAMP = 1715842850
+SHA256 (aiostream-0.6.1.tar.gz) = 7bef8046e56f69b81c2d7cc394893dd9021046c3e02295968d3be0cb9e606196
+SIZE (aiostream-0.6.1.tar.gz) = 66890
diff --git a/www/py-aiostream/files/patch-pyproject.toml b/www/py-aiostream/files/patch-pyproject.toml
new file mode 100644
index 000000000000..ba657f88242b
--- /dev/null
+++ b/www/py-aiostream/files/patch-pyproject.toml
@@ -0,0 +1,9 @@
+--- pyproject.toml.orig 2024-05-10 11:10:14 UTC
++++ pyproject.toml
+@@ -1,5 +1,5 @@
+ [build-system]
+-requires = ["setuptools >= 69.5"]
++requires = ["setuptools >= 61"]
+ build-backend = "setuptools.build_meta"
+
+ [project]
diff --git a/www/py-arxiv/Makefile b/www/py-arxiv/Makefile
index 93c102d80427..456251bf43cd 100644
--- a/www/py-arxiv/Makefile
+++ b/www/py-arxiv/Makefile
@@ -1,5 +1,6 @@
PORTNAME= arxiv
PORTVERSION= 2.1.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -10,12 +11,14 @@ WWW= https://github.com/lukasschwab/arxiv.py
LICENSE= MIT
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}feedparser>=6.0.10:textproc/py-feedparser@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests>=2.31.0:www/py-requests@${PY_FLAVOR}
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pdoc>=0:devel/py-pdoc@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils pytest
+USE_PYTHON= autoplist concurrent pep517 pytest
NO_ARCH= yes
diff --git a/www/py-autobahn/Makefile b/www/py-autobahn/Makefile
index 0419396493ae..eb43061ad88c 100644
--- a/www/py-autobahn/Makefile
+++ b/www/py-autobahn/Makefile
@@ -1,7 +1,7 @@
PORTNAME= autobahn
DISTVERSIONPREFIX= v
DISTVERSION= 23.6.2
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= www python
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-betamax/Makefile b/www/py-betamax/Makefile
index 0993fac9390d..1d162721b6f5 100644
--- a/www/py-betamax/Makefile
+++ b/www/py-betamax/Makefile
@@ -1,5 +1,6 @@
PORTNAME= betamax
PORTVERSION= 0.9.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -10,11 +11,14 @@ WWW= https://betamax.readthedocs.io/en/latest/ \
https://github.com/betamaxpy/betamax
LICENSE= APACHE20
+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}requests>=2.0:www/py-requests@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-biscuits/Makefile b/www/py-biscuits/Makefile
index 0455b3a970c1..599738e0f8b0 100644
--- a/www/py-biscuits/Makefile
+++ b/www/py-biscuits/Makefile
@@ -1,5 +1,6 @@
PORTNAME= biscuits
PORTVERSION= 0.3.2
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -10,8 +11,11 @@ WWW= https://github.com/pyrates/biscuits
LICENSE= MIT
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
post-install:
${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR} -name '*.so' -exec ${STRIP_CMD} {} +
diff --git a/www/py-bleach/Makefile b/www/py-bleach/Makefile
index 749a55248a87..88a8802c45f1 100644
--- a/www/py-bleach/Makefile
+++ b/www/py-bleach/Makefile
@@ -1,5 +1,6 @@
PORTNAME= bleach
PORTVERSION= 6.1.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -10,12 +11,15 @@ WWW= https://bleach.readthedocs.io/en/latest/ \
https://github.com/mozilla/bleach
LICENSE= APACHE20
+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}six>=1.9.0:devel/py-six@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}webencodings>=0:converters/py-webencodings@${PY_FLAVOR}
USES= cpe python shebangfix
-USE_PYTHON= autoplist concurrent distutils pytest
+USE_PYTHON= autoplist concurrent pep517 pytest
NO_ARCH= yes
@@ -27,6 +31,6 @@ OPTIONS_DEFINE= CSS
OPTIONS_DEFAULT=CSS
CSS_DESC= CSS support
-CSS_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}tinycss2>=1.1.0<1.3:textproc/py-tinycss2@${PY_FLAVOR}
+CSS_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}tinycss2>=1.1.0<1.4:textproc/py-tinycss2@${PY_FLAVOR}
.include <bsd.port.mk>
diff --git a/www/py-bleach/files/patch-setup.py b/www/py-bleach/files/patch-setup.py
new file mode 100644
index 000000000000..2d4c434ee708
--- /dev/null
+++ b/www/py-bleach/files/patch-setup.py
@@ -0,0 +1,11 @@
+--- setup.py.orig 2023-10-06 16:19:57 UTC
++++ setup.py
+@@ -32,7 +32,7 @@ EXTRAS_REQUIRE = {
+
+ EXTRAS_REQUIRE = {
+ "css": [
+- "tinycss2>=1.1.0,<1.3",
++ "tinycss2>=1.1.0,<1.4",
+ ],
+ }
+
diff --git a/www/py-boto3/Makefile b/www/py-boto3/Makefile
index d75bd80eb600..86154996f2a2 100644
--- a/www/py-boto3/Makefile
+++ b/www/py-boto3/Makefile
@@ -1,5 +1,5 @@
PORTNAME= boto3
-PORTVERSION= 1.34.88
+PORTVERSION= 1.34.108
CATEGORIES= www python devel
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-boto3/distinfo b/www/py-boto3/distinfo
index 700f741987c7..2dd3b185ac69 100644
--- a/www/py-boto3/distinfo
+++ b/www/py-boto3/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1713624724
-SHA256 (boto3-1.34.88.tar.gz) = 168894499578a9d69d6f7deb5811952bf4171c51b95749a9aef32cf67bc71f87
-SIZE (boto3-1.34.88.tar.gz) = 108308
+TIMESTAMP = 1716142144
+SHA256 (boto3-1.34.108.tar.gz) = 677723295151d29ff9b363598a20c1997c4e2af7e50669d9e428b757fe586a10
+SIZE (boto3-1.34.108.tar.gz) = 108299
diff --git a/www/py-branca/Makefile b/www/py-branca/Makefile
index 585f315c0c21..d603653fca36 100644
--- a/www/py-branca/Makefile
+++ b/www/py-branca/Makefile
@@ -1,5 +1,5 @@
PORTNAME= branca
-PORTVERSION= 0.7.1
+PORTVERSION= 0.7.2
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-branca/distinfo b/www/py-branca/distinfo
index f9afdd654d9f..16aabd7a91a5 100644
--- a/www/py-branca/distinfo
+++ b/www/py-branca/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1708449500
-SHA256 (branca-0.7.1.tar.gz) = e6b6f37a37bc0abffd960c68c045a7fe025d628eff87fedf6ab6ca814812110c
-SIZE (branca-0.7.1.tar.gz) = 27437
+TIMESTAMP = 1715842854
+SHA256 (branca-0.7.2.tar.gz) = ca4c94643ef31b819987ca5bd19c6009ea17b440baa3aac04628545f7a4da023
+SIZE (branca-0.7.2.tar.gz) = 27015
diff --git a/www/py-caldav/Makefile b/www/py-caldav/Makefile
index 157f00b944e1..98008e587068 100644
--- a/www/py-caldav/Makefile
+++ b/www/py-caldav/Makefile
@@ -1,5 +1,6 @@
PORTNAME= caldav
PORTVERSION= 1.2.1
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -13,6 +14,8 @@ LICENSE_COMB= dual
LICENSE_FILE_APACHE20= ${WRKSRC}/COPYING.APACHE
LICENSE_FILE_GPLv3= ${WRKSRC}/COPYING.GPL
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}icalendar>=0:devel/py-icalendar@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}lxml>=0:devel/py-lxml@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}recurring-ical-events>=2.0.0:devel/py-recurring-ical-events@${PY_FLAVOR} \
@@ -25,7 +28,7 @@ TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}coverage>=0:devel/py-coverage@${PY_FLAVOR}
${PYTHON_PKGNAMEPREFIX}xandikos>=0:www/py-xandikos@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils pytest
+USE_PYTHON= autoplist concurrent pep517 pytest
NO_ARCH= yes
TEST_ENV= TZ=UTC
diff --git a/www/py-dj42-channels-redis/Makefile b/www/py-channels-redis/Makefile
index b2b4acdae087..a8846f5b752c 100644
--- a/www/py-dj42-channels-redis/Makefile
+++ b/www/py-channels-redis/Makefile
@@ -2,7 +2,7 @@ PORTNAME= channels-redis
PORTVERSION= 4.2.0
CATEGORIES= www python
MASTER_SITES= PYPI
-PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj42-
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
DISTNAME= ${PORTNAME:S/-/_/}-${PORTVERSION}
MAINTAINER= grembo@FreeBSD.org
@@ -15,7 +15,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}redis>=5.0.1:databases/py-redis@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}msgpack>=1:devel/py-msgpack@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}asgiref>=3.7.2:www/py-asgiref@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}dj42-channels>=4:www/py-dj42-channels@${PY_FLAVOR}
+ ${PYTHON_PKGNAMEPREFIX}channels>=4:www/py-channels@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist distutils
diff --git a/www/py-dj42-channels-redis/distinfo b/www/py-channels-redis/distinfo
index 1512fee23c7a..1512fee23c7a 100644
--- a/www/py-dj42-channels-redis/distinfo
+++ b/www/py-channels-redis/distinfo
diff --git a/www/py-dj42-channels-redis/pkg-descr b/www/py-channels-redis/pkg-descr
index 8cd2d32f3a39..8cd2d32f3a39 100644
--- a/www/py-dj42-channels-redis/pkg-descr
+++ b/www/py-channels-redis/pkg-descr
diff --git a/www/py-cheroot/Makefile b/www/py-cheroot/Makefile
index 83545beb7410..2e5a510e49b0 100644
--- a/www/py-cheroot/Makefile
+++ b/www/py-cheroot/Makefile
@@ -1,8 +1,8 @@
PORTNAME= cheroot
-PORTVERSION= 10.0.0
-PORTREVISION= 1
+PORTVERSION= 10.0.1
CATEGORIES= www python
-MASTER_SITES= PYPI
+MASTER_SITES= PYPI \
+ https://github.com/cherrypy/cheroot/releases/download/v${PORTVERSION}/
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
MAINTAINER= sunpoet@FreeBSD.org
@@ -13,8 +13,7 @@ LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE.md
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=34.4:devel/py-setuptools@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}setuptools-scm>=3.5:devel/py-setuptools-scm@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}setuptools_scm_git_archive>=1.1:devel/py-setuptools_scm_git_archive@${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}jaraco.functools>=0:devel/py-jaraco.functools@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}more-itertools>=2.6:devel/py-more-itertools@${PY_FLAVOR}
diff --git a/www/py-cheroot/distinfo b/www/py-cheroot/distinfo
index 17a223886ade..009d99a4c2c3 100644
--- a/www/py-cheroot/distinfo
+++ b/www/py-cheroot/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1685162244
-SHA256 (cheroot-10.0.0.tar.gz) = 59c4a1877fef9969b3c3c080caaaf377e2780919437853fc0d32a9df40b311f0
-SIZE (cheroot-10.0.0.tar.gz) = 148461
+TIMESTAMP = 1715842856
+SHA256 (cheroot-10.0.1.tar.gz) = e0b82f797658d26b8613ec8eb563c3b08e6bd6a7921e9d5089bd1175ad1b1740
+SIZE (cheroot-10.0.1.tar.gz) = 167586
diff --git a/www/py-cinemagoer/Makefile b/www/py-cinemagoer/Makefile
index 62b5b2b242b4..a62010835d58 100644
--- a/www/py-cinemagoer/Makefile
+++ b/www/py-cinemagoer/Makefile
@@ -1,5 +1,6 @@
PORTNAME= cinemagoer
PORTVERSION= 2023.5.1
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,13 +13,15 @@ WWW= https://cinemagoer.github.io/ \
LICENSE= GPLv2
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}lxml>=0:devel/py-lxml@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}sqlalchemy14>=0:databases/py-sqlalchemy14@${PY_FLAVOR}
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest-cov>=0:devel/py-pytest-cov@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pytest-profiling>=0:devel/py-pytest-profiling@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils pytest
+USE_PYTHON= autoplist concurrent pep517 pytest
NO_ARCH= yes
diff --git a/www/py-cookies/Makefile b/www/py-cookies/Makefile
index d0f482ba2769..175c8552bd23 100644
--- a/www/py-cookies/Makefile
+++ b/www/py-cookies/Makefile
@@ -1,5 +1,6 @@
PORTNAME= cookies
PORTVERSION= 2.2.1
+PORTREVISION= 1
CATEGORIES= www devel python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -10,8 +11,11 @@ WWW= https://github.com/sashahart/cookies
LICENSE= MIT
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+
USES= python
-USE_PYTHON= autoplist concurrent distutils pytest
+USE_PYTHON= autoplist concurrent pep517 pytest
NO_ARCH= yes
diff --git a/www/py-cssmin/Makefile b/www/py-cssmin/Makefile
index c6a291679091..39a08a1ad86a 100644
--- a/www/py-cssmin/Makefile
+++ b/www/py-cssmin/Makefile
@@ -1,6 +1,6 @@
PORTNAME= cssmin
PORTVERSION= 0.2.0
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,8 +11,11 @@ WWW= https://github.com/zacharyvoase/cssmin
LICENSE= MIT
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-cssutils/Makefile b/www/py-cssutils/Makefile
index fc4410125f14..b8edfd19697b 100644
--- a/www/py-cssutils/Makefile
+++ b/www/py-cssutils/Makefile
@@ -1,5 +1,5 @@
PORTNAME= cssutils
-PORTVERSION= 2.10.2
+PORTVERSION= 2.11.0
PORTEPOCH= 1
CATEGORIES= www python
MASTER_SITES= PYPI
@@ -14,7 +14,7 @@ LICENSE_COMB= dual
LICENSE_FILE_GPLv3= ${WRKSRC}/COPYING
LICENSE_FILE_LGPL3= ${WRKSRC}/COPYING.LESSER
-BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=56:devel/py-setuptools@${PY_FLAVOR} \
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=61.2:devel/py-setuptools@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}setuptools-scm>=3.4.1:devel/py-setuptools-scm@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
diff --git a/www/py-cssutils/distinfo b/www/py-cssutils/distinfo
index eee31156e9b0..d6ccb191d25d 100644
--- a/www/py-cssutils/distinfo
+++ b/www/py-cssutils/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1712084536
-SHA256 (cssutils-2.10.2.tar.gz) = 93cf92a350b1c123b17feff042e212f94d960975a3ed145743d84ebe8ccec7ab
-SIZE (cssutils-2.10.2.tar.gz) = 723055
+TIMESTAMP = 1715842858
+SHA256 (cssutils-2.11.0.tar.gz) = cd24a30b9a848ca92d80f0d1b362139c0b69de31394d585dbf1b17a5dc4aa627
+SIZE (cssutils-2.11.0.tar.gz) = 723164
diff --git a/www/py-daphne/Makefile b/www/py-daphne/Makefile
index fa13c254f1d7..9941d1eee79b 100644
--- a/www/py-daphne/Makefile
+++ b/www/py-daphne/Makefile
@@ -1,5 +1,6 @@
PORTNAME= daphne
PORTVERSION= 4.1.2
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-dj-database-url/Makefile b/www/py-dj-database-url/Makefile
index 62e601d5a50a..faf1f3a1e17c 100644
--- a/www/py-dj-database-url/Makefile
+++ b/www/py-dj-database-url/Makefile
@@ -1,5 +1,6 @@
PORTNAME= dj-database-url
DISTVERSION= 2.1.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,7 +12,7 @@ WWW= https://github.com/jazzband/dj-database-url
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}typing-extensions>=3.10.0.0:devel/py-typing-extensions@${PY_FLAVOR}
USES= python
diff --git a/www/py-dj42-django-modelcluster/Makefile b/www/py-dj42-django-modelcluster/Makefile
index 5fc30b0a20b7..d3afa07ee9a6 100644
--- a/www/py-dj42-django-modelcluster/Makefile
+++ b/www/py-dj42-django-modelcluster/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-modelcluster
PORTVERSION= 6.2.1
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj42-
@@ -11,11 +12,13 @@ WWW= https://github.com/wagtail/django-modelcluster
LICENSE= BSD3CLAUSE
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}django42>=3.2:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pytz>=2022.4,1:devel/py-pytz@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-dj42-django-permissionedforms/Makefile b/www/py-dj42-django-permissionedforms/Makefile
index 2013906aec95..2e982ac40d3f 100644
--- a/www/py-dj42-django-permissionedforms/Makefile
+++ b/www/py-dj42-django-permissionedforms/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-permissionedforms
PORTVERSION= 0.1
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj42-
@@ -11,10 +12,12 @@ WWW= https://github.com/wagtail/django-permissionedforms
LICENSE= BSD3CLAUSE
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}django42>=0:www/py-django42@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-dj42-drf-spectacular-sidecar/Makefile b/www/py-dj42-drf-spectacular-sidecar/Makefile
index a41a608936f9..73dc057800fa 100644
--- a/www/py-dj42-drf-spectacular-sidecar/Makefile
+++ b/www/py-dj42-drf-spectacular-sidecar/Makefile
@@ -1,8 +1,9 @@
PORTNAME= drf-spectacular-sidecar
-DISTVERSION= 2024.4.1
+DISTVERSION= 2024.5.1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj42-
+DISTNAME= drf_spectacular_sidecar-${DISTVERSION}
MAINTAINER= kai@FreeBSD.org
COMMENT= Serve self-contained Swagger UI/Redoc distribution builds with Django
diff --git a/www/py-dj42-drf-spectacular-sidecar/distinfo b/www/py-dj42-drf-spectacular-sidecar/distinfo
index 8837bfa258b6..473947a24813 100644
--- a/www/py-dj42-drf-spectacular-sidecar/distinfo
+++ b/www/py-dj42-drf-spectacular-sidecar/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1712292833
-SHA256 (drf-spectacular-sidecar-2024.4.1.tar.gz) = 68532dd094714f79c1775c00848f22c10f004826abc856442ff30c3bc9c40bb4
-SIZE (drf-spectacular-sidecar-2024.4.1.tar.gz) = 2345981
+TIMESTAMP = 1714600240
+SHA256 (drf_spectacular_sidecar-2024.5.1.tar.gz) = 1ecfbe86174461e3cf78a9cd49f69aa8d9e0710cb5e8b35107d3f8cc0f380c21
+SIZE (drf_spectacular_sidecar-2024.5.1.tar.gz) = 2380912
diff --git a/www/py-django-allauth/Makefile b/www/py-django-allauth/Makefile
index f80a2e28790f..cc6997b1d762 100644
--- a/www/py-django-allauth/Makefile
+++ b/www/py-django-allauth/Makefile
@@ -1,5 +1,5 @@
PORTNAME= django-allauth
-PORTVERSION= 0.61.1
+PORTVERSION= 0.63.1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -15,22 +15,26 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=40.8.0:devel/py-setuptools@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}pyjwt>=1.7:www/py-pyjwt@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}python3-openid>=3.0.8:security/py-python3-openid@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}requests>=2.0.0:www/py-requests@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}requests-oauthlib>=0.3.0:www/py-requests-oauthlib@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
-OPTIONS_DEFINE= MFA SAML
-MFA_DESC= Multi-Factor Authentication support
-SAML_DESC= Security Assertion Markup Language support
+OPTIONS_DEFINE= MFA OPENID SAML SOCIALACCOUNT STEAM
+MFA_DESC= Multi-Factor Authentication support
+OPENID_DESC= OpenID authentication support
+SAML_DESC= Security Assertion Markup Language support
+SOCIALACCOUNT_DESC= Social network account support
+STEAM_DESC= Steam OpenID authentication support
MFA_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}qrcode>=7.0.0:textproc/py-qrcode@${PY_FLAVOR}
+OPENID_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}python3-openid>=3.0.8:security/py-python3-openid@${PY_FLAVOR}
SAML_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}python3-saml>=1.15.0<2.0.0:security/py-python3-saml@${PY_FLAVOR}
+SOCIALACCOUNT_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pyjwt>=1.7:www/py-pyjwt@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}requests-oauthlib>=0.3.0:www/py-requests-oauthlib@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}requests>=2.0.0:www/py-requests@${PY_FLAVOR}
+STEAM_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}python3-openid>=3.0.8:security/py-python3-openid@${PY_FLAVOR}
.include <bsd.port.mk>
diff --git a/www/py-django-allauth/distinfo b/www/py-django-allauth/distinfo
index ff0207c42fef..1eb9b1f2d427 100644
--- a/www/py-django-allauth/distinfo
+++ b/www/py-django-allauth/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1708449504
-SHA256 (django-allauth-0.61.1.tar.gz) = 5b4ae515ea74f54f0041210692eee10c309ad15ddbbd03d3620693c75e3f7945
-SIZE (django-allauth-0.61.1.tar.gz) = 951524
+TIMESTAMP = 1716142146
+SHA256 (django-allauth-0.63.1.tar.gz) = ef52957992ac3dfc57dec4f7c078bb317b7b47bd7bf6b15f2c12a31c9892ad4c
+SIZE (django-allauth-0.63.1.tar.gz) = 1076577
diff --git a/www/py-django-annoying/Makefile b/www/py-django-annoying/Makefile
index 65c6f1a4b55b..24604cd70fcc 100644
--- a/www/py-django-annoying/Makefile
+++ b/www/py-django-annoying/Makefile
@@ -1,6 +1,6 @@
PORTNAME= django-annoying
PORTVERSION= 0.10.6
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,7 +11,7 @@ WWW= https://github.com/skorokithakis/django-annoying
LICENSE= BSD3CLAUSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=0:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=0:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist distutils
diff --git a/www/py-django-assets/Makefile b/www/py-django-assets/Makefile
index e4d97b91c5c4..8c74dfa2edbb 100644
--- a/www/py-django-assets/Makefile
+++ b/www/py-django-assets/Makefile
@@ -1,6 +1,6 @@
PORTNAME= django-assets
PORTVERSION= 2.0
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,7 +11,7 @@ WWW= https://github.com/miracle2k/django-assets
LICENSE= BSD2CLAUSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=1.7:www/py-django32@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=1.7:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}webassets>=2.0:www/py-webassets@${PY_FLAVOR}
USES= dos2unix python
diff --git a/www/py-dj42-django-auditlog/Makefile b/www/py-django-auditlog/Makefile
index a72e7813178a..6cdaedc753db 100644
--- a/www/py-dj42-django-auditlog/Makefile
+++ b/www/py-django-auditlog/Makefile
@@ -3,7 +3,7 @@ PORTVERSION= 2.3.0
PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
-PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj42-
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
MAINTAINER= grembo@FreeBSD.org
COMMENT= Django app that keeps a log of changes made to an object
diff --git a/www/py-dj42-django-auditlog/distinfo b/www/py-django-auditlog/distinfo
index c4d6ad6233fe..c4d6ad6233fe 100644
--- a/www/py-dj42-django-auditlog/distinfo
+++ b/www/py-django-auditlog/distinfo
diff --git a/www/py-dj42-django-auditlog/pkg-descr b/www/py-django-auditlog/pkg-descr
index 3287e3ab624d..3287e3ab624d 100644
--- a/www/py-dj42-django-auditlog/pkg-descr
+++ b/www/py-django-auditlog/pkg-descr
diff --git a/www/py-django-auth-ldap/Makefile b/www/py-django-auth-ldap/Makefile
index 09a094e9b8b4..e895fa75b22b 100644
--- a/www/py-django-auth-ldap/Makefile
+++ b/www/py-django-auth-ldap/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-auth-ldap
PORTVERSION= 4.8.0
+PORTREVISION= 1
CATEGORIES= www security python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -14,7 +15,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${PY_SETUPTOOLS} \
${PYTHON_PKGNAMEPREFIX}setuptools-scm>=3.4:devel/py-setuptools-scm@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}python-ldap>=3.1:net/py-python-ldap@${PY_FLAVOR}
USES= python
diff --git a/www/py-django-bitfield/Makefile b/www/py-django-bitfield/Makefile
index 5d1a8791d47e..dcb3111d9766 100644
--- a/www/py-django-bitfield/Makefile
+++ b/www/py-django-bitfield/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-bitfield
PORTVERSION= 2.2.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,7 +12,7 @@ WWW= https://github.com/disqus/django-bitfield
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=1.11.29:www/py-django32@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=1.11.29:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}six>=0:devel/py-six@${PY_FLAVOR}
USES= python
diff --git a/www/py-django-bleach/Makefile b/www/py-django-bleach/Makefile
index 981c35d02b3a..10e388aec85d 100644
--- a/www/py-django-bleach/Makefile
+++ b/www/py-django-bleach/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-bleach
PORTVERSION= 3.1.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -14,7 +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}bleach>=5:www/py-bleach@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR}
+ ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist concurrent pep517
diff --git a/www/py-django-bootstrap3/Makefile b/www/py-django-bootstrap3/Makefile
index 75cc8dcfa19d..e96f0c5aee11 100644
--- a/www/py-django-bootstrap3/Makefile
+++ b/www/py-django-bootstrap3/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-bootstrap3
PORTVERSION= 23.4
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -13,7 +14,7 @@ LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}hatchling>0:devel/py-hatchling@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=2.2:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=2.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist pep517
diff --git a/www/py-django-braces/Makefile b/www/py-django-braces/Makefile
index 19fbe01f6415..44e3f8b563e2 100644
--- a/www/py-django-braces/Makefile
+++ b/www/py-django-braces/Makefile
@@ -1,6 +1,6 @@
PORTNAME= django-braces
PORTVERSION= 1.15.0
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -14,7 +14,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=40.6.6:devel/py-setuptools@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=2.2:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=2.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist concurrent pep517
diff --git a/www/py-django-cacheops/Makefile b/www/py-django-cacheops/Makefile
index a987ba25ab67..a8e336609f81 100644
--- a/www/py-django-cacheops/Makefile
+++ b/www/py-django-cacheops/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-cacheops
PORTVERSION= 7.0.2
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,7 +12,7 @@ WWW= https://github.com/Suor/django-cacheops
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}redis>=3.0.0:databases/py-redis@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}funcy>=1.8<3.0:devel/py-funcy@${PY_FLAVOR}
diff --git a/www/py-dj42-django-celery-results/Makefile b/www/py-django-celery-results/Makefile
index 82f507cf6078..921747930fc0 100644
--- a/www/py-dj42-django-celery-results/Makefile
+++ b/www/py-django-celery-results/Makefile
@@ -2,7 +2,7 @@ PORTNAME= django-celery-results
PORTVERSION= 2.5.1
CATEGORIES= www python
MASTER_SITES= PYPI
-PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj42-
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
DISTNAME= ${PORTNAME:S/-/_/g}-${PORTVERSION}
MAINTAINER= grembo@FreeBSD.org
diff --git a/www/py-dj42-django-celery-results/distinfo b/www/py-django-celery-results/distinfo
index 89582fc7649d..89582fc7649d 100644
--- a/www/py-dj42-django-celery-results/distinfo
+++ b/www/py-django-celery-results/distinfo
diff --git a/www/py-dj42-django-celery-results/pkg-descr b/www/py-django-celery-results/pkg-descr
index da24ab97a379..da24ab97a379 100644
--- a/www/py-dj42-django-celery-results/pkg-descr
+++ b/www/py-django-celery-results/pkg-descr
diff --git a/www/py-django-choices-field/Makefile b/www/py-django-choices-field/Makefile
index 488c8582748a..ea749d189df7 100644
--- a/www/py-django-choices-field/Makefile
+++ b/www/py-django-choices-field/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-choices-field
DISTVERSION= 2.3.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -13,7 +14,7 @@ LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}poetry-core>=1.0.0:devel/py-poetry-core@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}typing-extensions>=4.0.0:devel/py-typing-extensions@${PY_FLAVOR}
USES= python
diff --git a/www/py-django-classy-tags/Makefile b/www/py-django-classy-tags/Makefile
index d1e72b94b200..13e326d46228 100644
--- a/www/py-django-classy-tags/Makefile
+++ b/www/py-django-classy-tags/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-classy-tags
PORTVERSION= 4.1.0
+PORTREVISION= 2
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,10 +13,12 @@ WWW= https://django-classy-tags.readthedocs.io/en/latest/ \
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR}
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-django-cms/Makefile b/www/py-django-cms/Makefile
index c68ef62febcf..37998e00d3e8 100644
--- a/www/py-django-cms/Makefile
+++ b/www/py-django-cms/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-cms
PORTVERSION= 4.1.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,7 +12,7 @@ WWW= https://django-cms.org/
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=2.2:www/py-django32@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=2.2:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}djangocms-admin-style>=1.2:www/py-djangocms-admin-style@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-classy-tags>=0.7.2:www/py-django-classy-tags@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-formtools>=2.1:www/py-django-formtools@${PY_FLAVOR} \
diff --git a/www/py-dj42-django-compression-middleware/Makefile b/www/py-django-compression-middleware/Makefile
index 755cc50bc83a..8c428c327ca8 100644
--- a/www/py-dj42-django-compression-middleware/Makefile
+++ b/www/py-django-compression-middleware/Makefile
@@ -2,7 +2,7 @@ PORTNAME= django-compression-middleware
PORTVERSION= 0.5.0
CATEGORIES= www python
MASTER_SITES= PYPI
-PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj42-
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
MAINTAINER= grembo@FreeBSD.org
COMMENT= Django middleware to compress responses using several algorithms
diff --git a/www/py-dj42-django-compression-middleware/distinfo b/www/py-django-compression-middleware/distinfo
index 5dd1c04b8ec1..5dd1c04b8ec1 100644
--- a/www/py-dj42-django-compression-middleware/distinfo
+++ b/www/py-django-compression-middleware/distinfo
diff --git a/www/py-dj42-django-compression-middleware/pkg-descr b/www/py-django-compression-middleware/pkg-descr
index fe4861de4bcb..fe4861de4bcb 100644
--- a/www/py-dj42-django-compression-middleware/pkg-descr
+++ b/www/py-django-compression-middleware/pkg-descr
diff --git a/www/py-django-configurations/Makefile b/www/py-django-configurations/Makefile
index 017c318ad50a..70ec2b285d0e 100644
--- a/www/py-django-configurations/Makefile
+++ b/www/py-django-configurations/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-configurations
PORTVERSION= 2.5
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,9 +12,9 @@ WWW= https://github.com/jazzband/django-configurations
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR} \
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}setuptools-scm>=0:devel/py-setuptools-scm@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist concurrent distutils
diff --git a/www/py-django-constance/Makefile b/www/py-django-constance/Makefile
index 912badddce47..a2f3325e01ef 100644
--- a/www/py-django-constance/Makefile
+++ b/www/py-django-constance/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-constance
PORTVERSION= 3.1.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,7 +13,7 @@ LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django-picklefield>=0:www/py-django-picklefield@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR}
+ ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist distutils
diff --git a/www/py-django-contact-form/Makefile b/www/py-django-contact-form/Makefile
index 9b67e9476a64..bca8bfa00b0f 100644
--- a/www/py-django-contact-form/Makefile
+++ b/www/py-django-contact-form/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-contact-form
PORTVERSION= 2.1
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -13,7 +14,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=61.0:devel/py-setuptools@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist concurrent pep517
diff --git a/www/py-django-contrib-comments/Makefile b/www/py-django-contrib-comments/Makefile
index 5c83068cef9d..c1184a220d1a 100644
--- a/www/py-django-contrib-comments/Makefile
+++ b/www/py-django-contrib-comments/Makefile
@@ -1,6 +1,6 @@
PORTNAME= django-contrib-comments
PORTVERSION= 2.2.0
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -13,7 +13,7 @@ LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
# Supports all Django version. Bump when DEFAULT Django is changed
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=2.2:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=2.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist distutils
diff --git a/www/py-django-cors-headers/Makefile b/www/py-django-cors-headers/Makefile
index 300e20fa3e64..6abf829e74e4 100644
--- a/www/py-django-cors-headers/Makefile
+++ b/www/py-django-cors-headers/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-cors-headers
PORTVERSION= 4.3.1
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -13,7 +14,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${PY_SETUPTOOLS} \
${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}asgiref>=3.6:www/py-asgiref@${PY_FLAVOR}
USES= python
diff --git a/www/py-django-crispy-forms/Makefile b/www/py-django-crispy-forms/Makefile
index 61fa8b04b967..b0f98c34817b 100644
--- a/www/py-django-crispy-forms/Makefile
+++ b/www/py-django-crispy-forms/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-crispy-forms
PORTVERSION= 2.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -14,7 +15,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE.txt
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=61.0:devel/py-setuptools@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=0:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=0:www/py-django42@${PY_FLAVOR}
USES= dos2unix python
USE_PYTHON= autoplist concurrent pep517
diff --git a/www/py-django-cron/Makefile b/www/py-django-cron/Makefile
index 20cbf33143b5..637e940966ca 100644
--- a/www/py-django-cron/Makefile
+++ b/www/py-django-cron/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-cron
PORTVERSION= 0.6.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,7 +12,7 @@ WWW= https://github.com/tivix/django-cron
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist distutils
diff --git a/www/py-django-csp/Makefile b/www/py-django-csp/Makefile
index 1e1d7116d0ba..2c357cab07cd 100644
--- a/www/py-django-csp/Makefile
+++ b/www/py-django-csp/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-csp
PORTVERSION= 3.8
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -14,7 +15,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${PY_SETUPTOOLS} \
${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist pep517
diff --git a/www/py-django-debreach/Makefile b/www/py-django-debreach/Makefile
index ca44116b0fb4..c08b223edb5f 100644
--- a/www/py-django-debreach/Makefile
+++ b/www/py-django-debreach/Makefile
@@ -11,7 +11,7 @@ WWW= https://github.com/lpomfrey/django-debreach
LICENSE= BSD2CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>0:www/py-django32@${PY_FLAVOR}
+TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>0:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist distutils
diff --git a/www/py-django-debug-toolbar/Makefile b/www/py-django-debug-toolbar/Makefile
index 8c0e90bfda91..4d5b504efbd4 100644
--- a/www/py-django-debug-toolbar/Makefile
+++ b/www/py-django-debug-toolbar/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-debug-toolbar
PORTVERSION= 4.3.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -14,7 +15,7 @@ LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}hatchling>=0:devel/py-hatchling@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2.4:www/py-django32@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2.4:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}sqlparse>=0.2.0:databases/py-sqlparse@${PY_FLAVOR}
USES= python
diff --git a/www/py-django-dpaste/Makefile b/www/py-django-dpaste/Makefile
deleted file mode 100644
index 359e7c9bbdee..000000000000
--- a/www/py-django-dpaste/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-PORTNAME= dpaste
-DISTVERSIONPREFIX= v
-DISTVERSION= 3.8
-CATEGORIES= www python
-PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}django-
-
-MAINTAINER= bofh@FreeBSD.org
-COMMENT= Django based pastebin for text and code
-WWW= https://github.com/DarrenOfficial/dpaste
-
-LICENSE= MIT
-LICENSE_FILE= ${WRKSRC}/LICENSE
-
-EXPIRATION_DATE=2024-04-30
-BROKEN= does not work with py-pygments >= 2.12.0 and required static files (css + js), which must be compiled via Node.js, are not packaged.
-
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}dj-database-url>=0.5.0:www/py-dj-database-url@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}django-csp>=3.6:www/py-django-csp@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}django-staticinline>=1.0:www/py-django-staticinline@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}docutils>0:textproc/py-docutils@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}jsx-lexer>=0.0.8:textproc/py-jsx-lexer@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}misaka>=2.1.0:textproc/py-misaka@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}pygments>=1.6:textproc/py-pygments@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}ratelimiter>=1.2.0:devel/py-ratelimiter@${PY_FLAVOR}
-TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest-django>0:devel/py-pytest-django@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR}
-
-USES= python
-USE_GITHUB= yes
-GH_ACCOUNT= DarrenOfficial
-USE_PYTHON= distutils autoplist pytest
-
-TEST_ENV= PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
-
-NO_ARCH= yes
-
-do-test:
- @cd ${WRKSRC} && ${SETENV} ${TEST_ENV} ${PYTHON_CMD} -m pytest -v -rs --ds=dpaste.settings.tests -o addopts=
-
-.include <bsd.port.mk>
diff --git a/www/py-django-dpaste/distinfo b/www/py-django-dpaste/distinfo
deleted file mode 100644
index 138f0f845d42..000000000000
--- a/www/py-django-dpaste/distinfo
+++ /dev/null
@@ -1,3 +0,0 @@
-TIMESTAMP = 1701925084
-SHA256 (DarrenOfficial-dpaste-v3.8_GH0.tar.gz) = c22517b909faf02eb1ba32f09471fd0d83e3bfa25bbea0b4f563db54b89bfea4
-SIZE (DarrenOfficial-dpaste-v3.8_GH0.tar.gz) = 46603
diff --git a/www/py-django-dpaste/pkg-descr b/www/py-django-dpaste/pkg-descr
deleted file mode 100644
index 29a7e7aaf3ea..000000000000
--- a/www/py-django-dpaste/pkg-descr
+++ /dev/null
@@ -1,3 +0,0 @@
-dpaste is a Django based pastebin. It's intended to run separately but its
-also possible to be installed into an existing Django project like a regular
-app. You can find a live example on dpaste.de
diff --git a/www/py-django-extensions/Makefile b/www/py-django-extensions/Makefile
index b9570fdcc06f..a9df8cdff142 100644
--- a/www/py-django-extensions/Makefile
+++ b/www/py-django-extensions/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-extensions
PORTVERSION= 3.2.3
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,7 +12,7 @@ WWW= https://github.com/django-extensions/django-extensions
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist distutils
diff --git a/www/py-django-filer/Makefile b/www/py-django-filer/Makefile
index ba9c1acdfc19..0602557406b4 100644
--- a/www/py-django-filer/Makefile
+++ b/www/py-django-filer/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-filer
PORTVERSION= 3.1.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,7 +12,7 @@ WWW= https://github.com/stefanfoulis/django-filer
LICENSE= BSD2CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2<5.1:www/py-django32@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2<5.1:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-easy-thumbnails>0:graphics/py-django-easy-thumbnails@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-polymorphic>0:www/py-django-polymorphic@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pillow>0:graphics/py-pillow@${PY_FLAVOR}
diff --git a/www/py-django-filter/Makefile b/www/py-django-filter/Makefile
index c279d885b9d5..a34ab80fa1cf 100644
--- a/www/py-django-filter/Makefile
+++ b/www/py-django-filter/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-filter
DISTVERSION= 23.5
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,7 +13,7 @@ LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}flit-core>=3.2<4:devel/py-flit-core@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist pep517
diff --git a/www/py-django-formset-js-improved/Makefile b/www/py-django-formset-js-improved/Makefile
index 093e40276581..c6b6c537fc54 100644
--- a/www/py-django-formset-js-improved/Makefile
+++ b/www/py-django-formset-js-improved/Makefile
@@ -1,6 +1,6 @@
PORTNAME= django-formset-js-improved
PORTVERSION= 0.5.0.2
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,7 +12,7 @@ WWW= https://github.com/pretix/django-formset-js
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=1.8:www/py-django32@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=1.8:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-jquery-js>=0.:www/py-django-jquery-js@${PY_FLAVOR}
USES= python
diff --git a/www/py-django-graphiql-debug-toolbar/Makefile b/www/py-django-graphiql-debug-toolbar/Makefile
index aabb9d593223..f25e568066e1 100644
--- a/www/py-django-graphiql-debug-toolbar/Makefile
+++ b/www/py-django-graphiql-debug-toolbar/Makefile
@@ -1,6 +1,6 @@
PORTNAME= django-graphiql-debug-toolbar
DISTVERSION= 0.2.0
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,7 +12,7 @@ WWW= https://github.com/flavors/django-graphiql-debug-toolbar
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=2.2:www/py-django32@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=2.2:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}graphene-django>=2.0.0:devel/py-graphene-django@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-debug-toolbar>=3.1:www/py-django-debug-toolbar@${PY_FLAVOR}
diff --git a/www/py-django-guardian/Makefile b/www/py-django-guardian/Makefile
index fbb40b28b93e..48e6bd3e5cd5 100644
--- a/www/py-django-guardian/Makefile
+++ b/www/py-django-guardian/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-guardian
PORTVERSION= 2.4.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,7 +12,7 @@ WWW= https://github.com/django-guardian/django-guardian
LICENSE= BSD2CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=2.2:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=2.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist concurrent distutils
diff --git a/www/py-django-hashid-field/Makefile b/www/py-django-hashid-field/Makefile
index 79f534db6212..7120e3105cc6 100644
--- a/www/py-django-hashid-field/Makefile
+++ b/www/py-django-hashid-field/Makefile
@@ -1,5 +1,5 @@
PORTNAME= django-hashid-field
-PORTVERSION= 3.4.0
+PORTVERSION= 3.4.1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -9,12 +9,15 @@ COMMENT= Hashids obfuscated Django Model Field
WWW= https://github.com/nshafer/django-hashid-field
LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=1.11:www/py-django32@${PY_FLAVOR} \
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=1.11:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}hashids>=1.2.0:textproc/py-hashids@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-django-hashid-field/distinfo b/www/py-django-hashid-field/distinfo
index 12bca7b6a502..8e22b6b12b6e 100644
--- a/www/py-django-hashid-field/distinfo
+++ b/www/py-django-hashid-field/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1708449508
-SHA256 (django-hashid-field-3.4.0.tar.gz) = d8981e4506bd6d75bf1f9cc77360770991d77b19a2ef920a878ac85092e84810
-SIZE (django-hashid-field-3.4.0.tar.gz) = 27441
+TIMESTAMP = 1715842862
+SHA256 (django-hashid-field-3.4.1.tar.gz) = 6ebb1ed7323f2465525b395ed26186cfc66cdec948178ec471ad9b1301073dc7
+SIZE (django-hashid-field-3.4.1.tar.gz) = 28752
diff --git a/www/py-django-haystack/Makefile b/www/py-django-haystack/Makefile
index caf937ea9268..ce922a815985 100644
--- a/www/py-django-haystack/Makefile
+++ b/www/py-django-haystack/Makefile
@@ -1,6 +1,6 @@
PORTNAME= django-haystack
PORTVERSION= 3.2.1
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= www databases python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -16,7 +16,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=42:devel/py-setuptools@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}setuptools-scm>=3.4:devel/py-setuptools-scm@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=2.2:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=2.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist concurrent pep517
diff --git a/www/py-django-hijack/Makefile b/www/py-django-hijack/Makefile
index 3f902465d191..b4b5a7803917 100644
--- a/www/py-django-hijack/Makefile
+++ b/www/py-django-hijack/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-hijack
PORTVERSION= 3.4.1
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI \
https://ports.caomhin.org/:npmcache
@@ -17,7 +18,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools-scm>0:devel/py-setuptools-scm@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pytest-runner>0:devel/py-pytest-runner@${PY_FLAVOR} \
npm:www/npm
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=2.2:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=2.2:www/py-django42@${PY_FLAVOR}
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest>0:devel/py-pytest@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pytest-django>0:devel/py-pytest-django@${PY_FLAVOR}
diff --git a/www/py-django-htmx/Makefile b/www/py-django-htmx/Makefile
index 78152c2dc770..288d4acef7e6 100644
--- a/www/py-django-htmx/Makefile
+++ b/www/py-django-htmx/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-htmx
DISTVERSION= 1.17.3
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -13,7 +14,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${PY_SETUPTOOLS} \
${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}asgiref>=3.6:www/py-asgiref@${PY_FLAVOR}
USES= python
diff --git a/www/py-django-jquery-js/Makefile b/www/py-django-jquery-js/Makefile
index 6faed465059b..e6798f2ef27e 100644
--- a/www/py-django-jquery-js/Makefile
+++ b/www/py-django-jquery-js/Makefile
@@ -1,6 +1,6 @@
PORTNAME= django-jquery-js
PORTVERSION= 3.1.1
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,7 +12,7 @@ WWW= https://pypi.org/project/django-jquery-js/
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=1.4:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=1.4:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist distutils
diff --git a/www/py-django-js-asset/Makefile b/www/py-django-js-asset/Makefile
index cd503efcc10b..9e4ffe48bff6 100644
--- a/www/py-django-js-asset/Makefile
+++ b/www/py-django-js-asset/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-js-asset
DISTVERSION= 2.2.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -13,7 +14,7 @@ LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}hatchling>0:devel/py-hatchling@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist pep517
diff --git a/www/py-django-jsonview/Makefile b/www/py-django-jsonview/Makefile
index 404c2fa7062e..3daf01369b35 100644
--- a/www/py-django-jsonview/Makefile
+++ b/www/py-django-jsonview/Makefile
@@ -1,6 +1,6 @@
PORTNAME= django-jsonview
PORTVERSION= 2.0.0
-PORTREVISION= 1
+PORTREVISION= 3
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,10 +11,12 @@ WWW= https://github.com/jsocol/django-jsonview
LICENSE= APACHE20
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=0:www/py-django32@${PY_FLAVOR}
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=0:www/py-django42@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-django-markdownx/Makefile b/www/py-django-markdownx/Makefile
index afb5bcaf361d..c9c317ed6189 100644
--- a/www/py-django-markdownx/Makefile
+++ b/www/py-django-markdownx/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-markdownx
PORTVERSION= 4.0.7
+PORTREVISION= 2
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,12 +12,14 @@ WWW= https://github.com/neutronX/django-markdownx
LICENSE= BSD2CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=0:www/py-django32@${PY_FLAVOR} \
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=0:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}markdown>=0:textproc/py-markdown@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pillow>=0:graphics/py-pillow@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-django-model-utils/Makefile b/www/py-django-model-utils/Makefile
index 26bf7855b7bc..51c82b935843 100644
--- a/www/py-django-model-utils/Makefile
+++ b/www/py-django-model-utils/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-model-utils
PORTVERSION= 4.5.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -14,7 +15,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE.txt
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}setuptools-scm>=0:devel/py-setuptools-scm@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist concurrent pep517
diff --git a/www/py-django-modelcluster/Makefile b/www/py-django-modelcluster/Makefile
index 748ca582bde1..d483297efba9 100644
--- a/www/py-django-modelcluster/Makefile
+++ b/www/py-django-modelcluster/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-modelcluster
PORTVERSION= 6.2.1
+PORTREVISION= 2
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,11 +12,13 @@ WWW= https://github.com/wagtail/django-modelcluster
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR} \
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pytz>=2022.4,1:devel/py-pytz@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-django-mptt/Makefile b/www/py-django-mptt/Makefile
index 625470fe6ac0..6268ea4b6b07 100644
--- a/www/py-django-mptt/Makefile
+++ b/www/py-django-mptt/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-mptt
PORTVERSION= 0.16.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -13,7 +14,7 @@ LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}hatchling>0:devel/py-hatchling@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=2.2:www/py-django32@${PY_FLAVOR}\
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=2.2:www/py-django42@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}django-js-asset>0:www/py-django-js-asset@${PY_FLAVOR}
USES= python:3.9+
diff --git a/www/py-dj42-django-multiselectfield/Makefile b/www/py-django-multiselectfield/Makefile
index 5af9f71000c5..aef2ee82bc24 100644
--- a/www/py-dj42-django-multiselectfield/Makefile
+++ b/www/py-django-multiselectfield/Makefile
@@ -2,7 +2,7 @@ PORTNAME= django-multiselectfield
PORTVERSION= 0.1.12
CATEGORIES= www python
MASTER_SITES= PYPI
-PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj42-
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
MAINTAINER= grembo@FreeBSD.org
COMMENT= Django multiple select field
diff --git a/www/py-dj42-django-multiselectfield/distinfo b/www/py-django-multiselectfield/distinfo
index 98738aa6c5bf..98738aa6c5bf 100644
--- a/www/py-dj42-django-multiselectfield/distinfo
+++ b/www/py-django-multiselectfield/distinfo
diff --git a/www/py-dj42-django-multiselectfield/pkg-descr b/www/py-django-multiselectfield/pkg-descr
index 7a72b1755b70..7a72b1755b70 100644
--- a/www/py-dj42-django-multiselectfield/pkg-descr
+++ b/www/py-django-multiselectfield/pkg-descr
diff --git a/www/py-django-netfields/Makefile b/www/py-django-netfields/Makefile
index 44fbbc080645..f230177a87f8 100644
--- a/www/py-django-netfields/Makefile
+++ b/www/py-django-netfields/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-netfields
DISTVERSION= 1.3.2
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,7 +12,7 @@ WWW= https://github.com/jimfunk/django-postgresql-netfields
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=1.8:www/py-django32@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=1.8:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}psycopg2>0:databases/py-psycopg2@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}netaddr>=0:net/py-netaddr@${PY_FLAVOR}
diff --git a/www/py-django-otp-yubikey/Makefile b/www/py-django-otp-yubikey/Makefile
index ff6cc2a9c7d9..df93c0f3b5f6 100644
--- a/www/py-django-otp-yubikey/Makefile
+++ b/www/py-django-otp-yubikey/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-otp-yubikey
PORTVERSION= 1.0.1
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,11 +12,13 @@ WWW= https://github.com/django-otp/django-otp-yubikey
LICENSE= BSD2CLAUSE
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}django-otp>=1.0.0:www/py-django-otp@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}YubiOTP>=0.2.2:security/py-YubiOTP@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-django-otp/Makefile b/www/py-django-otp/Makefile
index 20116894983d..96cdb1bc7a8f 100644
--- a/www/py-django-otp/Makefile
+++ b/www/py-django-otp/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-otp
PORTVERSION= 1.5.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
DISTNAME= django_otp-${PORTVERSION}
@@ -13,7 +14,7 @@ LICENSE= BSD2CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}hatchling>=0:devel/py-hatchling@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist concurrent pep517
diff --git a/www/py-django-permissionedforms/Makefile b/www/py-django-permissionedforms/Makefile
index 572254dd6e15..4d64525ee658 100644
--- a/www/py-django-permissionedforms/Makefile
+++ b/www/py-django-permissionedforms/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-permissionedforms
PORTVERSION= 0.1
+PORTREVISION= 2
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,10 +12,12 @@ WWW= https://github.com/wagtail/django-permissionedforms
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=0:www/py-django32@${PY_FLAVOR}
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=0:www/py-django42@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-django-photologue/Makefile b/www/py-django-photologue/Makefile
index 6d0dfd822e58..47036e9230b2 100644
--- a/www/py-django-photologue/Makefile
+++ b/www/py-django-photologue/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-photologue
PORTVERSION= 3.17
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -10,7 +11,7 @@ WWW= https://github.com/jdriscoll/django-photologue
LICENSE= BSD3CLAUSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-sortedm2m>=3.1.1:www/py-django-sortedm2m@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}ExifRead>=3:graphics/py-exifread@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pillow>=9:graphics/py-pillow@${PY_FLAVOR}
diff --git a/www/py-django-picklefield/Makefile b/www/py-django-picklefield/Makefile
index 80578a8e090e..d1ffde6665b1 100644
--- a/www/py-django-picklefield/Makefile
+++ b/www/py-django-picklefield/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-picklefield
PORTVERSION= 3.2
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,10 +13,10 @@ LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
# Reminder: www/seahub depends on django, changing django version may break seahub
-BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR} \
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist concurrent pep517
diff --git a/www/py-django-polymorphic/Makefile b/www/py-django-polymorphic/Makefile
index 8c59007e6637..992091e9f6e5 100644
--- a/www/py-django-polymorphic/Makefile
+++ b/www/py-django-polymorphic/Makefile
@@ -1,6 +1,6 @@
PORTNAME= django-polymorphic
PORTVERSION= 3.1.0
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,7 +12,7 @@ WWW= https://github.com/django-polymorphic/django-polymorphic
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=1.11:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=1.11:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= distutils autoplist
diff --git a/www/py-django-post_office/Makefile b/www/py-django-post_office/Makefile
index 53e46b508d90..df7865a82494 100644
--- a/www/py-django-post_office/Makefile
+++ b/www/py-django-post_office/Makefile
@@ -1,6 +1,7 @@
PORTNAME= django-post_office
DISTVERSIONPREFIX= v
DISTVERSION= 3.7.1
+PORTREVISION= 1
CATEGORIES= www python
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,7 +12,7 @@ WWW= https://github.com/ui/django-post_office
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}bleach>=0:www/py-bleach@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pytz>=0:devel/py-pytz@${PY_FLAVOR}
diff --git a/www/py-django-prometheus/Makefile b/www/py-django-prometheus/Makefile
index 48561a84e348..364301836a51 100644
--- a/www/py-django-prometheus/Makefile
+++ b/www/py-django-prometheus/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-prometheus
PORTVERSION= 2.3.1
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,7 +12,7 @@ WWW= https://github.com/korfuri/django-prometheus
LICENSE= APACHE20
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest-runner>0:devel/py-pytest-runner@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}prometheus-client>=0.7:net-mgmt/py-prometheus-client@${PY_FLAVOR}
USES= python
diff --git a/www/py-django-pyscss/Makefile b/www/py-django-pyscss/Makefile
index d625c429c593..a86398b3337b 100644
--- a/www/py-django-pyscss/Makefile
+++ b/www/py-django-pyscss/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-pyscss
PORTVERSION= 2.0.3
+PORTREVISION= 2
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,11 +12,13 @@ WWW= https://github.com/fusionbox/django-pyscss
LICENSE= BSD2CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=1.4:www/py-django32@${PY_FLAVOR} \
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=1.4:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pyscss>=1.3.4:textproc/py-pyscss@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-django-ranged-response/Makefile b/www/py-django-ranged-response/Makefile
index 7bdced2b831a..5081def96a15 100644
--- a/www/py-django-ranged-response/Makefile
+++ b/www/py-django-ranged-response/Makefile
@@ -1,6 +1,6 @@
PORTNAME= django-ranged-response
DISTVERSION= 0.2.0
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,7 +11,7 @@ WWW= https://github.com/i3thuan5/django-ranged-response
LICENSE= MIT
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=0:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=0:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= distutils autoplist
diff --git a/www/py-django-recaptcha/Makefile b/www/py-django-recaptcha/Makefile
index 10916f613c85..6458db9e52cd 100644
--- a/www/py-django-recaptcha/Makefile
+++ b/www/py-django-recaptcha/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-recaptcha
PORTVERSION= 4.0.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
@@ -10,7 +11,7 @@ WWW= https://github.com/django-recaptcha/django-recaptcha
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=1.11<4.0:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>0:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist concurrent distutils
diff --git a/www/py-django-redis/Makefile b/www/py-django-redis/Makefile
index 05aed1045518..2fe1242ae64e 100644
--- a/www/py-django-redis/Makefile
+++ b/www/py-django-redis/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-redis
PORTVERSION= 5.4.0
+PORTREVISION= 2
CATEGORIES= www databases python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,7 +12,9 @@ WWW= https://github.com/jazzband/django-redis
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR} \
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}redis>=3.0.0:databases/py-redis@${PY_FLAVOR}
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}msgpack>=0:devel/py-msgpack@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pytest-django>=0:devel/py-pytest-django@${PY_FLAVOR} \
@@ -19,7 +22,7 @@ TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}msgpack>=0:devel/py-msgpack@${PY_FLAVOR} \
redis-server:databases/redis
USES= python
-USE_PYTHON= autoplist concurrent distutils pytest
+USE_PYTHON= autoplist concurrent pep517 pytest
# Required for Python 3.11+ as the cgi module is deprecated and slated for removal in Python 3.13
TEST_ARGS= -W ignore::DeprecationWarning
diff --git a/www/py-django-registration-redux/Makefile b/www/py-django-registration-redux/Makefile
index 1a8a55c764aa..98e2a6652be8 100644
--- a/www/py-django-registration-redux/Makefile
+++ b/www/py-django-registration-redux/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-registration-redux
PORTVERSION= 2.12
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,7 +12,7 @@ WWW= https://github.com/macropin/django-registration
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>0:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>0:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= distutils autoplist
diff --git a/www/py-django-registration/Makefile b/www/py-django-registration/Makefile
index 31fbdf68234b..9853343e096e 100644
--- a/www/py-django-registration/Makefile
+++ b/www/py-django-registration/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-registration
PORTVERSION= 3.4
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -14,7 +15,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${PY_SETUPTOOLS} \
${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}confusable_homoglyphs>=3.0<4.0:devel/py-confusable_homoglyphs@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR}
+ ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist pep517
diff --git a/www/py-django-requests-debug-toolbar/Makefile b/www/py-django-requests-debug-toolbar/Makefile
index 7254d170029f..8e00e21684eb 100644
--- a/www/py-django-requests-debug-toolbar/Makefile
+++ b/www/py-django-requests-debug-toolbar/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-requests-debug-toolbar
PORTVERSION= 0.0.7
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,10 +12,12 @@ WWW= https://github.com/marceltschoppch/django-requests-debug-toolbar
LICENSE= MIT
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}django-debug-toolbar>=2.2:www/py-django-debug-toolbar@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-django-reversion/Makefile b/www/py-django-reversion/Makefile
index 88927e5df203..8507937d2e29 100644
--- a/www/py-django-reversion/Makefile
+++ b/www/py-django-reversion/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-reversion
PORTVERSION= 5.0.10
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,7 +12,7 @@ WWW= https://pypi.org/project/django-reversion/
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist concurrent distutils
diff --git a/www/py-django-rich/Makefile b/www/py-django-rich/Makefile
index 0bdaea7e05f1..fae657082e57 100644
--- a/www/py-django-rich/Makefile
+++ b/www/py-django-rich/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-rich
PORTVERSION= 1.8.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -14,7 +15,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${PY_SETUPTOOLS} \
${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}rich>=10.0.0:textproc/py-rich@${PY_FLAVOR}
USES= python
diff --git a/www/py-django-sekizai/Makefile b/www/py-django-sekizai/Makefile
index f60e22cdeeeb..37b9f6fb6f31 100644
--- a/www/py-django-sekizai/Makefile
+++ b/www/py-django-sekizai/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-sekizai
PORTVERSION= 4.1.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,7 +12,7 @@ WWW= https://github.com/ojii/django-sekizai
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-classy-tags>=3.0:www/py-django-classy-tags@${PY_FLAVOR}
USES= python
diff --git a/www/py-django-simple-captcha/Makefile b/www/py-django-simple-captcha/Makefile
index 3adf786a9c4a..02a0f7c3dcb6 100644
--- a/www/py-django-simple-captcha/Makefile
+++ b/www/py-django-simple-captcha/Makefile
@@ -3,6 +3,7 @@ PORTNAME= django-simple-captcha
# updating, it should be first checked whether its consumers, e.g. www/seahub,
# have been switched to Django 4.2.
PORTVERSION= 0.5.20
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -14,7 +15,7 @@ WWW= https://pypi.org/project/django-simple-captcha/
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-ranged-response>=0.2.0<0.2.0_99:www/py-django-ranged-response@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pillow>=6.2.0:graphics/py-pillow@${PY_FLAVOR}
diff --git a/www/py-django-simple-history/Makefile b/www/py-django-simple-history/Makefile
index 12147e225148..8978fd32c6f6 100644
--- a/www/py-django-simple-history/Makefile
+++ b/www/py-django-simple-history/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-simple-history
PORTVERSION= 3.5.0
+PORTREVISION= 2
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,12 +12,14 @@ WWW= https://github.com/jazzband/django-simple-history
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
-BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools-scm>=0:devel/py-setuptools-scm@${PY_FLAVOR}
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}setuptools-scm>=0:devel/py-setuptools-scm@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}asgiref>=3.6:www/py-asgiref@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}django32>=0:www/py-django32@${PY_FLAVOR}
+ ${PYTHON_PKGNAMEPREFIX}django42>=0:www/py-django42@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-django-smart-selects/Makefile b/www/py-django-smart-selects/Makefile
index 8532f565140e..52d21dde8920 100644
--- a/www/py-django-smart-selects/Makefile
+++ b/www/py-django-smart-selects/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-smart-selects
PORTVERSION= 1.6.0
+PORTREVISION= 1
CATEGORIES= www
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,7 +13,7 @@ LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools-scm>0:devel/py-setuptools-scm@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=2.2:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=2.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist distutils
diff --git a/www/py-django-solo/Makefile b/www/py-django-solo/Makefile
index f6bbeaa858ed..18b931f24da6 100644
--- a/www/py-django-solo/Makefile
+++ b/www/py-django-solo/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-solo
DISTVERSION= 2.2.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,7 +12,7 @@ WWW= https://github.com/lazybird/django-solo
LICENSE= CC-BY-3.0
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist distutils
diff --git a/www/py-django-sortedm2m/Makefile b/www/py-django-sortedm2m/Makefile
index 8fc11901c0c5..9716f05a7a4c 100644
--- a/www/py-django-sortedm2m/Makefile
+++ b/www/py-django-sortedm2m/Makefile
@@ -1,6 +1,6 @@
PORTNAME= django-sortedm2m
PORTVERSION= 3.1.1
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= www python
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
MASTER_SITES= PYPI
@@ -12,7 +12,7 @@ WWW= https://github.com/gregmuellegger/django-sortedm2m
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=2.2:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=2.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= distutils autoplist
diff --git a/www/py-django-star-ratings/Makefile b/www/py-django-star-ratings/Makefile
index 2d69b6bad98c..e8a4395bb6ba 100644
--- a/www/py-django-star-ratings/Makefile
+++ b/www/py-django-star-ratings/Makefile
@@ -1,6 +1,6 @@
PORTNAME= django-star-ratings
PORTVERSION= 0.9.2
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,7 +11,7 @@ WWW= https://github.com/wildfish/django-star-ratings
LICENSE= BSD3CLAUSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=0:www/py-django32@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=0:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-braces>=0:www/py-django-braces@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-model-utils>=0:www/py-django-model-utils@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}swapper>=0:www/py-swapper@${PY_FLAVOR}
diff --git a/www/py-django-statici18n/Makefile b/www/py-django-statici18n/Makefile
index b080e5007602..7e7e0e814b24 100644
--- a/www/py-django-statici18n/Makefile
+++ b/www/py-django-statici18n/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-statici18n
PORTVERSION= 2.4.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,7 +12,7 @@ WWW= https://github.com/zyegfryed/django-statici18n
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=2.2:www/py-django32@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=2.2:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-appconf>=1.0:www/py-django-appconf@${PY_FLAVOR}
USES= python
diff --git a/www/py-django-storages/Makefile b/www/py-django-storages/Makefile
index 1d4cd54915cc..95e544f1d534 100644
--- a/www/py-django-storages/Makefile
+++ b/www/py-django-storages/Makefile
@@ -1,38 +1,46 @@
PORTNAME= django-storages
-PORTVERSION= 1.14.2
+PORTVERSION= 1.14.3
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
MAINTAINER= python@FreeBSD.org
COMMENT= Generic storages for Django
-WWW= https://github.com/jschneier/django-storages
+WWW= https://django-storages.readthedocs.io/en/latest/ \
+ https://github.com/jschneier/django-storages
LICENSE= BSD3CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE
-BUILD_DEPENDS= ${PY_SETUPTOOLS} \
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=61.2:devel/py-setuptools@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
-# There is also an Azure backend (via AZURE option), but this requires a newer
-# version of py-azure-storage-blob.
-OPTIONS_DEFINE= DROPBOX GOOGLE LIBCLOUD S3 SFTP
-
+# AZURE option requires newer devel/py-azure-storage-blob (not yet in the ports tree).
+OPTIONS_DEFINE= DROPBOX GOOGLE LIBCLOUD S3 SFTP #AZURE
+#AZURE_DESC= Azure backend
DROPBOX_DESC= Dropbox backend
GOOGLE_DESC= Google Cloud Storage backend
LIBCLOUD_DESC= Apache Libcloud backend
S3_DESC= Amazon S3 backend
SFTP_DESC= SFTP backend
-DROPBOX_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}dropbox>=7.2.1:www/py-dropbox@${PY_FLAVOR}
+#AZURE_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}azure-core>=1.13:devel/py-azure-core@${PY_FLAVOR} \
+# ${PYTHON_PKGNAMEPREFIX}azure-storage-blob>=12:devel/py-azure-storage-blob@${PY_FLAVOR}
GOOGLE_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}google-cloud-storage>=1.27:www/py-google-cloud-storage@${PY_FLAVOR}
-LIBCLOUD_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}libcloud>0:net/py-libcloud@${PY_FLAVOR}
+LIBCLOUD_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}libcloud>=0:net/py-libcloud@${PY_FLAVOR}
S3_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}boto3>=1.4.4:www/py-boto3@${PY_FLAVOR}
SFTP_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}paramiko>=1.15:security/py-paramiko@${PY_FLAVOR}
-.include <bsd.port.mk>
+.include <bsd.port.pre.mk>
+
+.if ${PORT_OPTIONS:MDROPBOX} && ${PYTHON_REL} < 31200
+RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}dropbox>=7.2.1:www/py-dropbox@${PY_FLAVOR}
+.endif
+
+.include <bsd.port.post.mk>
diff --git a/www/py-django-storages/distinfo b/www/py-django-storages/distinfo
index 31d6fcfadf8a..4d91ebfa6562 100644
--- a/www/py-django-storages/distinfo
+++ b/www/py-django-storages/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1704627222
-SHA256 (django-storages-1.14.2.tar.gz) = 51b36af28cc5813b98d5f3dfe7459af638d84428c8df4a03990c7d74d1bea4e5
-SIZE (django-storages-1.14.2.tar.gz) = 111090
+TIMESTAMP = 1715843838
+SHA256 (django-storages-1.14.3.tar.gz) = 95a12836cd998d4c7a4512347322331c662d9114c4344f932f5e9c0fce000608
+SIZE (django-storages-1.14.3.tar.gz) = 115310
diff --git a/www/py-django-tables2/Makefile b/www/py-django-tables2/Makefile
index 9ee97198a0a5..8ce7a92eae65 100644
--- a/www/py-django-tables2/Makefile
+++ b/www/py-django-tables2/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-tables2
DISTVERSION= 2.7.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,7 +12,7 @@ WWW= https://github.com/jieter/django-tables2
LICENSE= BSD2CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= distutils autoplist
diff --git a/www/py-django-tagging/Makefile b/www/py-django-tagging/Makefile
index 9aec9a845d90..ef31b0ee8bf4 100644
--- a/www/py-django-tagging/Makefile
+++ b/www/py-django-tagging/Makefile
@@ -1,6 +1,6 @@
PORTNAME= django-tagging
PORTVERSION= 0.5.0
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -13,7 +13,7 @@ LICENSE= BSD3CLAUSE MIT
LICENSE_COMB= multi
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=0:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=0:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= distutils autoplist
diff --git a/www/py-django-taggit/Makefile b/www/py-django-taggit/Makefile
index 2acfef5a2e8a..23ceeb09d1c4 100644
--- a/www/py-django-taggit/Makefile
+++ b/www/py-django-taggit/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-taggit
PORTVERSION= 4.0.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,7 +12,7 @@ WWW= https://github.com/jazzband/django-taggit
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR}
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}djangorestframework>0:www/py-djangorestframework@${PY_FLAVOR}
USES= python
diff --git a/www/py-django-tastypie/Makefile b/www/py-django-tastypie/Makefile
index 03b3947b7f00..52fe2f362bb3 100644
--- a/www/py-django-tastypie/Makefile
+++ b/www/py-django-tastypie/Makefile
@@ -1,6 +1,5 @@
PORTNAME= django-tastypie
-PORTVERSION= 0.14.6
-PORTREVISION= 1
+PORTVERSION= 0.14.7
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,7 +11,7 @@ WWW= https://github.com/django-tastypie/django-tastypie
LICENSE= BSD3CLAUSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}python-dateutil>=2.1:devel/py-python-dateutil@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}django32>0:www/py-django32@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}django42>0:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}python-mimeparse>=0.1.4:devel/py-python-mimeparse@${PY_FLAVOR}
USES= python
diff --git a/www/py-django-tastypie/distinfo b/www/py-django-tastypie/distinfo
index 66784989b3ab..51cc5079f6bb 100644
--- a/www/py-django-tastypie/distinfo
+++ b/www/py-django-tastypie/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1694353782
-SHA256 (django-tastypie-0.14.6.tar.gz) = 7f16928ffa5b1b390edd81fa0c15a239cca7fc1134d440ecaa2040b5edc549b8
-SIZE (django-tastypie-0.14.6.tar.gz) = 154751
+TIMESTAMP = 1713932035
+SHA256 (django-tastypie-0.14.7.tar.gz) = 5769e997d66726babb0cbb7643ff278b994b8ca775c5a4c510dfa0f386567d50
+SIZE (django-tastypie-0.14.7.tar.gz) = 155126
diff --git a/www/py-django-templatetag-sugar/Makefile b/www/py-django-templatetag-sugar/Makefile
index 0e5fade1178f..dd6cd48f77e9 100644
--- a/www/py-django-templatetag-sugar/Makefile
+++ b/www/py-django-templatetag-sugar/Makefile
@@ -1,6 +1,6 @@
PORTNAME= templatetag-sugar
PORTVERSION= 1.0
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}django-
@@ -10,7 +10,7 @@ MAINTAINER= python@FreeBSD.org
COMMENT= Library to make writing templatetags in Django sweet
WWW= https://github.com/alex/django-templatetag-sugar
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=0:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=0:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= distutils autoplist
diff --git a/www/py-django-timezone-field/Makefile b/www/py-django-timezone-field/Makefile
index f11f5fbfa939..fc2b6be3cdcc 100644
--- a/www/py-django-timezone-field/Makefile
+++ b/www/py-django-timezone-field/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-timezone-field
DISTVERSION= 6.1.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -13,7 +14,7 @@ LICENSE= BSD2CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}poetry-core>=1.0.0:devel/py-poetry-core@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist pep517
diff --git a/www/py-django-tinymce/Makefile b/www/py-django-tinymce/Makefile
index 2aee2af31756..a29b2ea425c0 100644
--- a/www/py-django-tinymce/Makefile
+++ b/www/py-django-tinymce/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-tinymce
PORTVERSION= 4.0.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -13,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}django32>=3.2:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist concurrent pep517
diff --git a/www/py-django-treebeard/Makefile b/www/py-django-treebeard/Makefile
index f9dbc044783e..7e968013e54e 100644
--- a/www/py-django-treebeard/Makefile
+++ b/www/py-django-treebeard/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-treebeard
DISTVERSION= 4.7.1
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,7 +12,7 @@ WWW= https://github.com/django-treebeard/django-treebeard
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR}
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest-django>=4.0:devel/py-pytest-django@${PY_FLAVOR}
USES= python
@@ -23,7 +24,7 @@ NO_ARCH= yes
PORTDOCS= *
OPTIONS_DEFINE= DOCS
-DOCS_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=2.2:www/py-django32@${PY_FLAVOR} \
+DOCS_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=2.2:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}graphviz>0:graphics/py-graphviz@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}sphinx>=0,1:textproc/py-sphinx@${PY_FLAVOR}
DOCS_VARS= PYDISTUTILS_BUILD_TARGET+="build_sphinx -a -E"
diff --git a/www/py-django-unfold/Makefile b/www/py-django-unfold/Makefile
index ecc56f245c41..b576a596ba62 100644
--- a/www/py-django-unfold/Makefile
+++ b/www/py-django-unfold/Makefile
@@ -1,5 +1,5 @@
PORTNAME= django-unfold
-PORTVERSION= 0.22.0
+PORTVERSION= 0.23.0
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -14,7 +14,7 @@ LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE.md
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}poetry-core>=1.0.0:devel/py-poetry-core@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist concurrent pep517
diff --git a/www/py-django-unfold/distinfo b/www/py-django-unfold/distinfo
index 9996610e6546..8fae514522e1 100644
--- a/www/py-django-unfold/distinfo
+++ b/www/py-django-unfold/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1713528558
-SHA256 (django_unfold-0.22.0.tar.gz) = 622995f6ec222d7e16c4ea5bde1f87508d25942e6bcf925ae7ead9f70b77405b
-SIZE (django_unfold-0.22.0.tar.gz) = 802861
+TIMESTAMP = 1716142148
+SHA256 (django_unfold-0.23.0.tar.gz) = d757470c35be8b3ab717459ef7b287a2382c9f8bc4b4e4fdb39b400530cf2991
+SIZE (django_unfold-0.23.0.tar.gz) = 802916
diff --git a/www/py-django-webpack-loader/Makefile b/www/py-django-webpack-loader/Makefile
index 3a7fecca860b..eb9e3df3f8e0 100644
--- a/www/py-django-webpack-loader/Makefile
+++ b/www/py-django-webpack-loader/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-webpack-loader
PORTVERSION= 3.0.1
+PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= www python
MASTER_SITES= PYPI
@@ -12,7 +13,7 @@ WWW= https://pypi.org/project/django-webpack-loader
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=2.0:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=2.0:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= distutils autoplist concurrent
diff --git a/www/py-django-widget-tweaks/Makefile b/www/py-django-widget-tweaks/Makefile
index 777f89f4cf01..b9bb3b805c0b 100644
--- a/www/py-django-widget-tweaks/Makefile
+++ b/www/py-django-widget-tweaks/Makefile
@@ -1,5 +1,6 @@
PORTNAME= django-widget-tweaks
PORTVERSION= 1.5.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,7 +13,7 @@ LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools-scm>0:devel/py-setuptools-scm@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=2.2:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=2.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist distutils
diff --git a/www/py-django32/Makefile b/www/py-django32/Makefile
index d09c5c5f6f32..e017a5d022f1 100644
--- a/www/py-django32/Makefile
+++ b/www/py-django32/Makefile
@@ -59,7 +59,7 @@ MYSQL_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}mysqlclient>=1.3.13:databases/py-mysql
SQLITE_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR}
post-build-HTMLDOCS-on:
- cd ${WRKSRC}/docs && ${GMAKE} html SPHINXBUILD=sphinx-build-${PYTHON_VER}
+ cd ${WRKSRC}/docs && ${MAKE_CMD} html SPHINXBUILD=sphinx-build-${PYTHON_VER}
post-install:
${INSTALL_MAN} ${WRKSRC}/docs/man/* ${STAGEDIR}/${PREFIX}/share/man/man1
diff --git a/www/py-django42/Makefile b/www/py-django42/Makefile
index ac2b11be1d3b..63d5ec51b8b4 100644
--- a/www/py-django42/Makefile
+++ b/www/py-django42/Makefile
@@ -1,6 +1,5 @@
PORTNAME= django
-PORTVERSION= 4.2.11
-PORTREVISION= 1
+PORTVERSION= 4.2.13
CATEGORIES= www python
MASTER_SITES= PYPI \
https://media.djangoproject.com/releases/${PORTVERSION:R}/
@@ -54,7 +53,7 @@ MYSQL_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}mysqlclient>=1.3.13:databases/py-mysql
SQLITE_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR}
post-build-HTMLDOCS-on:
- cd ${WRKSRC}/docs && ${GMAKE} html SPHINXBUILD=sphinx-build-${PYTHON_VER}
+ cd ${WRKSRC}/docs && ${MAKE_CMD} html SPHINXBUILD=sphinx-build-${PYTHON_VER}
post-install:
${INSTALL_MAN} ${WRKSRC}/docs/man/* ${STAGEDIR}/${PREFIX}/share/man/man1
diff --git a/www/py-django42/distinfo b/www/py-django42/distinfo
index 623775d8e046..e407f37d4317 100644
--- a/www/py-django42/distinfo
+++ b/www/py-django42/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1709552698
-SHA256 (python/Django-4.2.11.tar.gz) = 6e6ff3db2d8dd0c986b4eec8554c8e4f919b5c1ff62a5b4390c17aff2ed6e5c4
-SIZE (python/Django-4.2.11.tar.gz) = 10426858
+TIMESTAMP = 1715127463
+SHA256 (python/Django-4.2.13.tar.gz) = 837e3cf1f6c31347a1396a3f6b65688f2b4bb4a11c580dcb628b5afe527b68a5
+SIZE (python/Django-4.2.13.tar.gz) = 10430886
diff --git a/www/py-django42/files/patch-setup.cfg b/www/py-django42/files/patch-setup.cfg
index c57e4e938370..d014f0b13d57 100644
--- a/www/py-django42/files/patch-setup.cfg
+++ b/www/py-django42/files/patch-setup.cfg
@@ -1,4 +1,4 @@
---- setup.cfg.orig 2024-03-04 07:44:07 UTC
+--- setup.cfg.orig 2024-05-08 00:21:05 UTC
+++ setup.cfg
@@ -1,5 +1,5 @@
[metadata]
diff --git a/www/py-django50/Makefile b/www/py-django50/Makefile
index cdcd578a7a46..352410c8aa81 100644
--- a/www/py-django50/Makefile
+++ b/www/py-django50/Makefile
@@ -1,6 +1,5 @@
PORTNAME= django
-PORTVERSION= 5.0.4
-PORTREVISION= 1
+PORTVERSION= 5.0.6
CATEGORIES= www python
MASTER_SITES= PYPI \
https://media.djangoproject.com/releases/${PORTVERSION:R}/
@@ -60,7 +59,7 @@ IGNORE= requires Python 3.10 or later
.endif
post-build-HTMLDOCS-on:
- cd ${WRKSRC}/docs && ${GMAKE} html SPHINXBUILD=sphinx-build-${PYTHON_VER}
+ cd ${WRKSRC}/docs && ${MAKE_CMD} html SPHINXBUILD=sphinx-build-${PYTHON_VER}
post-install:
${INSTALL_MAN} ${WRKSRC}/docs/man/* ${STAGEDIR}/${PREFIX}/share/man/man1
diff --git a/www/py-django50/distinfo b/www/py-django50/distinfo
index d89531d9b9e4..bcf169e9036e 100644
--- a/www/py-django50/distinfo
+++ b/www/py-django50/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1712325319
-SHA256 (python/Django-5.0.4.tar.gz) = 4bd01a8c830bb77a8a3b0e7d8b25b887e536ad17a81ba2dce5476135c73312bd
-SIZE (python/Django-5.0.4.tar.gz) = 10638006
+TIMESTAMP = 1715126852
+SHA256 (python/Django-5.0.6.tar.gz) = ff1b61005004e476e0aeea47c7f79b85864c70124030e95146315396f1e7951f
+SIZE (python/Django-5.0.6.tar.gz) = 10639679
diff --git a/www/py-django50/files/patch-setup.cfg b/www/py-django50/files/patch-setup.cfg
index b03c25e3e38d..a9b24986aaf2 100644
--- a/www/py-django50/files/patch-setup.cfg
+++ b/www/py-django50/files/patch-setup.cfg
@@ -1,4 +1,4 @@
---- setup.cfg.orig 2024-04-03 14:34:02 UTC
+--- setup.cfg.orig 2024-05-08 00:14:53 UTC
+++ setup.cfg
@@ -1,5 +1,5 @@
[metadata]
diff --git a/www/py-djangocms-admin-style/Makefile b/www/py-djangocms-admin-style/Makefile
index d5c8db278f8e..5127cd3b4e5d 100644
--- a/www/py-djangocms-admin-style/Makefile
+++ b/www/py-djangocms-admin-style/Makefile
@@ -1,5 +1,6 @@
PORTNAME= djangocms-admin-style
DISTVERSION= 3.3.1
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -10,7 +11,7 @@ WWW= https://www.django-cms.org/
LICENSE= BSD3CLAUSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=2.2:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=2.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= distutils autoplist
diff --git a/www/py-djangoql/Makefile b/www/py-djangoql/Makefile
index 2a34ac04bdc7..263129f10b92 100644
--- a/www/py-djangoql/Makefile
+++ b/www/py-djangoql/Makefile
@@ -1,5 +1,6 @@
PORTNAME= djangoql
PORTVERSION= 0.17.1
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,7 +12,7 @@ WWW= https://github.com/ivelum/djangoql
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>0:www/py-django32@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>0:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}ply>=3.8:devel/py-ply@${PY_FLAVOR}
USES= python
diff --git a/www/py-dj42-djangorestframework-guardian/Makefile b/www/py-djangorestframework-guardian/Makefile
index 9c4dcbc0b8d3..d09409d5958d 100644
--- a/www/py-dj42-djangorestframework-guardian/Makefile
+++ b/www/py-djangorestframework-guardian/Makefile
@@ -2,7 +2,7 @@ PORTNAME= djangorestframework-guardian
PORTVERSION= 0.3.0
CATEGORIES= www python
MASTER_SITES= PYPI
-PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj42-
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
MAINTAINER= grembo@FreeBSD.org
COMMENT= Django Guardian support for Django REST Framework
@@ -12,8 +12,8 @@ LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=2.2:www/py-django42@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}dj42-djangorestframework>=3.10.3:www/py-dj42-djangorestframework@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}dj42-django-guardian>=2.4.0:www/py-dj42-django-guardian@${PY_FLAVOR}
+ ${PYTHON_PKGNAMEPREFIX}djangorestframework>=3.10.3:www/py-djangorestframework@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}django-guardian>=2.4.0:www/py-django-guardian@${PY_FLAVOR}
USES= python
USE_PYTHON= distutils autoplist
diff --git a/www/py-dj42-djangorestframework-guardian/distinfo b/www/py-djangorestframework-guardian/distinfo
index eb5b72f6c861..eb5b72f6c861 100644
--- a/www/py-dj42-djangorestframework-guardian/distinfo
+++ b/www/py-djangorestframework-guardian/distinfo
diff --git a/www/py-dj42-djangorestframework-guardian/pkg-descr b/www/py-djangorestframework-guardian/pkg-descr
index 4fd5ed7e7602..4fd5ed7e7602 100644
--- a/www/py-dj42-djangorestframework-guardian/pkg-descr
+++ b/www/py-djangorestframework-guardian/pkg-descr
diff --git a/www/py-djangorestframework/Makefile b/www/py-djangorestframework/Makefile
index 1d365e391fa0..45a03937e72a 100644
--- a/www/py-djangorestframework/Makefile
+++ b/www/py-djangorestframework/Makefile
@@ -1,5 +1,6 @@
PORTNAME= djangorestframework
PORTVERSION= 3.14.0
+PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= www python
MASTER_SITES= PYPI
@@ -12,7 +13,7 @@ WWW= https://www.django-rest-framework.org/
LICENSE= BSD2CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE.md
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.0:www/py-django32@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.0:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pytz>=0:devel/py-pytz@${PY_FLAVOR}
USES= python
diff --git a/www/py-djangosaml2/Makefile b/www/py-djangosaml2/Makefile
index 8f6ad202b0d3..68d3c3342fb2 100644
--- a/www/py-djangosaml2/Makefile
+++ b/www/py-djangosaml2/Makefile
@@ -1,5 +1,6 @@
PORTNAME= djangosaml2
PORTVERSION= 1.9.2
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -10,7 +11,7 @@ WWW= https://github.com/IdentityPython/djangosaml2
LICENSE= APACHE20
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pysaml2>=6.5.1:security/py-pysaml2@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}defusedxml>=0.4.1:devel/py-defusedxml@${PY_FLAVOR}
diff --git a/www/py-draftjs-exporter/Makefile b/www/py-draftjs-exporter/Makefile
index 106018f56518..50806a8e71a8 100644
--- a/www/py-draftjs-exporter/Makefile
+++ b/www/py-draftjs-exporter/Makefile
@@ -1,5 +1,6 @@
PORTNAME= draftjs-exporter
PORTVERSION= 5.0.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,8 +13,11 @@ WWW= https://github.com/springload/draftjs_exporter
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-drf-spectacular-sidecar/Makefile b/www/py-drf-spectacular-sidecar/Makefile
index 795f93c3cd1c..661434a09e20 100644
--- a/www/py-drf-spectacular-sidecar/Makefile
+++ b/www/py-drf-spectacular-sidecar/Makefile
@@ -1,8 +1,9 @@
PORTNAME= drf-spectacular-sidecar
-DISTVERSION= 2024.4.1
+DISTVERSION= 2024.5.1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTNAME= drf_spectacular_sidecar-${DISTVERSION}
MAINTAINER= kai@FreeBSD.org
COMMENT= Serve self-contained Swagger UI/Redoc distribution builds with Django
@@ -11,7 +12,7 @@ WWW= https://github.com/tfranzel/drf-spectacular
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=2.2:www/py-django32@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=2.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist distutils
diff --git a/www/py-drf-spectacular-sidecar/distinfo b/www/py-drf-spectacular-sidecar/distinfo
index 8837bfa258b6..473947a24813 100644
--- a/www/py-drf-spectacular-sidecar/distinfo
+++ b/www/py-drf-spectacular-sidecar/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1712292833
-SHA256 (drf-spectacular-sidecar-2024.4.1.tar.gz) = 68532dd094714f79c1775c00848f22c10f004826abc856442ff30c3bc9c40bb4
-SIZE (drf-spectacular-sidecar-2024.4.1.tar.gz) = 2345981
+TIMESTAMP = 1714600240
+SHA256 (drf_spectacular_sidecar-2024.5.1.tar.gz) = 1ecfbe86174461e3cf78a9cd49f69aa8d9e0710cb5e8b35107d3f8cc0f380c21
+SIZE (drf_spectacular_sidecar-2024.5.1.tar.gz) = 2380912
diff --git a/www/py-drf-spectacular/Makefile b/www/py-drf-spectacular/Makefile
index 45d126fa9d41..ec1fe26820f0 100644
--- a/www/py-drf-spectacular/Makefile
+++ b/www/py-drf-spectacular/Makefile
@@ -1,5 +1,6 @@
PORTNAME= drf-spectacular
DISTVERSION= 0.27.2
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,7 +12,7 @@ WWW= https://github.com/tfranzel/drf-spectacular
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=2.2:www/py-django32@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=2.2:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}djangorestframework>=3.10.3:www/py-djangorestframework@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}inflection>=0.3.1:devel/py-inflection@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}jsonschema>=2.6.0:devel/py-jsonschema@${PY_FLAVOR} \
diff --git a/www/py-dj42-drf-writable-nested/Makefile b/www/py-drf-writable-nested/Makefile
index 0c57cfbeb42f..79986ad64489 100644
--- a/www/py-dj42-drf-writable-nested/Makefile
+++ b/www/py-drf-writable-nested/Makefile
@@ -2,7 +2,7 @@ PORTNAME= drf-writable-nested
PORTVERSION= 0.7.0
DISTVERSIONPREFIX= v
CATEGORIES= www python
-PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj42-
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
MAINTAINER= grembo@FreeBSD.org
COMMENT= Writable nested model serializer for Django REST framework
@@ -11,7 +11,7 @@ WWW= https://github.com/beda-software/drf-writable-nested
LICENSE= BSD2CLAUSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=2.2:www/py-django42@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}dj42-djangorestframework>0:www/py-dj42-djangorestframework@${PY_FLAVOR}
+ ${PYTHON_PKGNAMEPREFIX}djangorestframework>0:www/py-djangorestframework@${PY_FLAVOR}
USES= python
USE_GITHUB= yes
diff --git a/www/py-dj42-drf-writable-nested/distinfo b/www/py-drf-writable-nested/distinfo
index a7fdff392381..a7fdff392381 100644
--- a/www/py-dj42-drf-writable-nested/distinfo
+++ b/www/py-drf-writable-nested/distinfo
diff --git a/www/py-dj42-drf-writable-nested/pkg-descr b/www/py-drf-writable-nested/pkg-descr
index 36f9ed56df82..36f9ed56df82 100644
--- a/www/py-dj42-drf-writable-nested/pkg-descr
+++ b/www/py-drf-writable-nested/pkg-descr
diff --git a/www/py-drf-yasg/Makefile b/www/py-drf-yasg/Makefile
index b1aef32505ef..921e1149f5e9 100644
--- a/www/py-drf-yasg/Makefile
+++ b/www/py-drf-yasg/Makefile
@@ -1,5 +1,6 @@
PORTNAME= drf-yasg
DISTVERSION= 1.21.7
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,7 +13,7 @@ LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE.rst
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools-scm>=3.0.6:devel/py-setuptools-scm@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=2.2.16:www/py-django32@${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} \
${PYTHON_PKGNAMEPREFIX}inflection>=0.3.1:devel/py-inflection@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pytz>=2021.1:devel/py-pytz@${PY_FLAVOR} \
diff --git a/www/py-dropbox/Makefile b/www/py-dropbox/Makefile
index 3e8b4a2a870a..900bd80aecb2 100644
--- a/www/py-dropbox/Makefile
+++ b/www/py-dropbox/Makefile
@@ -1,5 +1,6 @@
PORTNAME= dropbox
PORTVERSION= 11.36.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,12 +13,14 @@ WWW= https://dropbox-sdk-python.readthedocs.io/en/latest/ \
LICENSE= MIT
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}requests>=0:www/py-requests@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}six>=0:devel/py-six@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}stone>=2.0:devel/py-stone@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-dropbox/files/patch-setup.py b/www/py-dropbox/files/patch-setup.py
index f7d8d3b578a1..1a9de4bdd722 100644
--- a/www/py-dropbox/files/patch-setup.py
+++ b/www/py-dropbox/files/patch-setup.py
@@ -1,6 +1,11 @@
---- setup.py.orig 2022-07-13 18:09:08 UTC
+--- setup.py.orig 2022-11-09 23:21:58 UTC
+++ setup.py
-@@ -31,9 +31,6 @@ install_reqs = [
+@@ -27,13 +27,10 @@ install_reqs = [
+ install_reqs = [
+ 'requests >= 2.16.2',
+ 'six >= 1.12.0',
+- 'stone >= 2.*',
++ 'stone >= 2.0',
]
setup_requires = [
diff --git a/www/py-enmerkar/Makefile b/www/py-enmerkar/Makefile
index c8864c7a4ee9..11652b2176bd 100644
--- a/www/py-enmerkar/Makefile
+++ b/www/py-enmerkar/Makefile
@@ -1,6 +1,6 @@
PORTNAME= enmerkar
PORTVERSION= 0.7.1
-PORTREVISION= 1
+PORTREVISION= 3
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,11 +12,13 @@ WWW= https://github.com/Zegocover/enmerkar
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/COPYING
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Babel>=1.3:devel/py-babel@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}django32>=2.2:www/py-django32@${PY_FLAVOR}
+ ${PYTHON_PKGNAMEPREFIX}django42>=2.2:www/py-django42@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-fastapi/Makefile b/www/py-fastapi/Makefile
index f9e49cfd46d7..ff40062566a9 100644
--- a/www/py-fastapi/Makefile
+++ b/www/py-fastapi/Makefile
@@ -1,5 +1,5 @@
PORTNAME= fastapi
-PORTVERSION= 0.110.1
+PORTVERSION= 0.111.0
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,7 +11,8 @@ WWW= https://github.com/tiangolo/fastapi
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
-BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}hatchling>=0:devel/py-hatchling@${PY_FLAVOR}
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}hatchling>=0:devel/py-hatchling@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pdm-backend>=0:devel/py-pdm-backend@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pydantic2>=1.7.4:devel/py-pydantic2@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}starlette>=0.26.1:www/py-starlette@${PY_FLAVOR}
diff --git a/www/py-fastapi/distinfo b/www/py-fastapi/distinfo
index 2fc62136d2f4..80049c9bf0bf 100644
--- a/www/py-fastapi/distinfo
+++ b/www/py-fastapi/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1712628689
-SHA256 (fastapi-0.110.1.tar.gz) = 6feac43ec359dfe4f45b2c18ec8c94edb8dc2dfc461d417d9e626590c071baad
-SIZE (fastapi-0.110.1.tar.gz) = 11977267
+TIMESTAMP = 1714736297
+SHA256 (fastapi-0.111.0.tar.gz) = b9db9dd147c91cb8b769f7183535773d8741dd46f9dc6676cd82eab510228cd7
+SIZE (fastapi-0.111.0.tar.gz) = 288414
diff --git a/www/py-flask-apscheduler/Makefile b/www/py-flask-apscheduler/Makefile
index 7ff73acafd01..f8ae7e8fae6f 100644
--- a/www/py-flask-apscheduler/Makefile
+++ b/www/py-flask-apscheduler/Makefile
@@ -1,6 +1,6 @@
PORTNAME= flask-apscheduler
PORTVERSION= 1.13.1
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= www python
MASTER_SITES= PYPI \
https://github.com/viniciuschiele/flask-apscheduler/releases/download/${PORTVERSION}/
@@ -14,12 +14,14 @@ WWW= https://github.com/viniciuschiele/flask-apscheduler
LICENSE= APACHE20
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}apscheduler>=3.2.0<4.0.0:devel/py-apscheduler@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}flask>=2.2.5<4.0.0:www/py-flask@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}python-dateutil>=2.4.2:devel/py-python-dateutil@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-flask-apscheduler/files/patch-setup.py b/www/py-flask-apscheduler/files/patch-setup.py
index 98badf70bdec..70d0779a80a2 100644
--- a/www/py-flask-apscheduler/files/patch-setup.py
+++ b/www/py-flask-apscheduler/files/patch-setup.py
@@ -1,5 +1,14 @@
--- setup.py.orig 2023-11-07 12:41:21 UTC
+++ setup.py
+@@ -4,7 +4,7 @@ setup(
+ long_description = fh.read()
+
+ setup(
+- name="Flask-APScheduler",
++ name="flask-apscheduler",
+ version="1.13.1",
+ packages=["flask_apscheduler"],
+ url="https://github.com/viniciuschiele/flask-apscheduler",
@@ -17,7 +17,6 @@ setup(
keywords=["apscheduler", "scheduler", "scheduling", "cron"],
python_requires=">=3.8",
diff --git a/www/py-flask-caching/Makefile b/www/py-flask-caching/Makefile
index 09ddf4bcb08a..0c090aa8e75f 100644
--- a/www/py-flask-caching/Makefile
+++ b/www/py-flask-caching/Makefile
@@ -1,9 +1,9 @@
PORTNAME= flask-caching
-PORTVERSION= 2.0.2
+PORTVERSION= 2.2.0
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
-DISTNAME= Flask-Caching-${PORTVERSION}
+DISTNAME= flask_caching-${PORTVERSION}
MAINTAINER= acm@FreeBSD.org
COMMENT= Flask-Caching is an extension to Flask
diff --git a/www/py-flask-caching/distinfo b/www/py-flask-caching/distinfo
index 38773bd1abd4..54e21446f3bb 100644
--- a/www/py-flask-caching/distinfo
+++ b/www/py-flask-caching/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1682910911
-SHA256 (Flask-Caching-2.0.2.tar.gz) = 24b60c552d59a9605cc1b6a42c56cdb39a82a28dab4532bbedb9222ae54ecb4e
-SIZE (Flask-Caching-2.0.2.tar.gz) = 66617
+TIMESTAMP = 1714242424
+SHA256 (flask_caching-2.2.0.tar.gz) = 9d2d30ee02250c47c3650fd6781b79e92d5964d91382a3697e5ebaf77ca0ea4f
+SIZE (flask_caching-2.2.0.tar.gz) = 67478
diff --git a/www/py-flask-json/Makefile b/www/py-flask-json/Makefile
index 917dfa7a7249..2436f1edf26d 100644
--- a/www/py-flask-json/Makefile
+++ b/www/py-flask-json/Makefile
@@ -1,5 +1,6 @@
PORTNAME= flask-json
PORTVERSION= 0.4.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,12 +13,14 @@ WWW= https://github.com/skozlovf/flask-json
LICENSE= BSD3CLAUSE
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>=2.2.0:www/py-flask@${PY_FLAVOR}
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest>=0:devel/py-pytest@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pytest-cov>=0:devel/py-pytest-cov@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-flask-json/files/patch-setup.py b/www/py-flask-json/files/patch-setup.py
new file mode 100644
index 000000000000..531fc63ce7bd
--- /dev/null
+++ b/www/py-flask-json/files/patch-setup.py
@@ -0,0 +1,11 @@
+--- setup.py.orig 2023-05-03 06:19:42 UTC
++++ setup.py
+@@ -17,7 +17,7 @@ setup(
+
+
+ setup(
+- name='Flask-JSON',
++ name='flask-json',
+ version=ext_version,
+ url='https://github.com/skozlovf/flask-json',
+ license='BSD',
diff --git a/www/py-flask-marshmallow/Makefile b/www/py-flask-marshmallow/Makefile
index b7bb3b23d201..6fec7382737b 100644
--- a/www/py-flask-marshmallow/Makefile
+++ b/www/py-flask-marshmallow/Makefile
@@ -1,5 +1,6 @@
PORTNAME= flask-marshmallow
PORTVERSION= 0.15.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,12 +12,14 @@ WWW= https://github.com/marshmallow-code/flask-marshmallow
LICENSE= MIT
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}marshmallow>=2.0.0:devel/py-marshmallow@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}six>=1.9.0:devel/py-six@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-flask-script/Makefile b/www/py-flask-script/Makefile
index f9bff93ebb46..f214866c886a 100644
--- a/www/py-flask-script/Makefile
+++ b/www/py-flask-script/Makefile
@@ -1,5 +1,6 @@
PORTNAME= flask-script
PORTVERSION= 2.0.6
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -13,10 +14,12 @@ WWW= https://flask-script.readthedocs.io/en/latest/ \
LICENSE= BSD3CLAUSE
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}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-flask-script/files/patch-setup.py b/www/py-flask-script/files/patch-setup.py
new file mode 100644
index 000000000000..a45e7ac395fc
--- /dev/null
+++ b/www/py-flask-script/files/patch-setup.py
@@ -0,0 +1,11 @@
+--- setup.py.orig 2017-09-06 11:10:04 UTC
++++ setup.py
+@@ -28,7 +28,7 @@ setup(
+ install_requires = ['Flask']
+
+ setup(
+- name='Flask-Script',
++ name='flask-script',
+ version=version,
+ url='http://github.com/smurfix/flask-script',
+ download_url = 'https://github.com/smurfix/flask-script/tarball/v'+version,
diff --git a/www/py-flask-smorest/Makefile b/www/py-flask-smorest/Makefile
index 6e731f415325..5bae1a849069 100644
--- a/www/py-flask-smorest/Makefile
+++ b/www/py-flask-smorest/Makefile
@@ -1,5 +1,5 @@
PORTNAME= flask-smorest
-DISTVERSION= 0.42.2
+DISTVERSION= 0.44.0
CATEGORIES= www devel python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-flask-smorest/distinfo b/www/py-flask-smorest/distinfo
index e61877ed5746..5e47b7421f7f 100644
--- a/www/py-flask-smorest/distinfo
+++ b/www/py-flask-smorest/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1700047928
-SHA256 (flask-smorest-0.42.2.tar.gz) = 85a6c71d3e83ea7b57a3b879f2a2efa1b0bbe3633a0374bf1527997fa950a59d
-SIZE (flask-smorest-0.42.2.tar.gz) = 77915
+TIMESTAMP = 1712582631
+SHA256 (flask-smorest-0.44.0.tar.gz) = 13f6e39d807c8847a56dc40656c2bbc0a2b2a430d8a4bb4a21836046757f7cef
+SIZE (flask-smorest-0.44.0.tar.gz) = 78610
diff --git a/www/py-forcediphttpsadapter/Makefile b/www/py-forcediphttpsadapter/Makefile
index c2839276b5f4..b57b814be355 100644
--- a/www/py-forcediphttpsadapter/Makefile
+++ b/www/py-forcediphttpsadapter/Makefile
@@ -1,5 +1,6 @@
PORTNAME= forcediphttpsadapter
PORTVERSION= 1.1.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,11 +12,13 @@ WWW= https://github.com/Roadmaster/forcediphttpsadapter
LICENSE= MIT
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}packaging>=0:devel/py-packaging@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests>=0:www/py-requests@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-freenit/Makefile b/www/py-freenit/Makefile
index 481c8c71072d..0e9ac86de410 100644
--- a/www/py-freenit/Makefile
+++ b/www/py-freenit/Makefile
@@ -1,11 +1,11 @@
PORTNAME= freenit
-DISTVERSION= 0.3.2
+DISTVERSION= 0.3.3
CATEGORIES= www devel python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
MAINTAINER= meka@tilda.center
-COMMENT= REST API framework based on Flask-Smorest
+COMMENT= REST API framework based on FastAPI
WWW= https://github.com/freenit-framework/backend
LICENSE= BSD2CLAUSE
diff --git a/www/py-freenit/distinfo b/www/py-freenit/distinfo
index 32254d4dc8de..a4485617285b 100644
--- a/www/py-freenit/distinfo
+++ b/www/py-freenit/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1713364639
-SHA256 (freenit-0.3.2.tar.gz) = a3fc8b0bf378ca19efb9096e1c698a0651ce4d077c790777fbeaa42f4d67d0ce
-SIZE (freenit-0.3.2.tar.gz) = 25470
+TIMESTAMP = 1715669629
+SHA256 (freenit-0.3.3.tar.gz) = bbcadbaa97a8d1bce65ecce062f17acbf6b37eb1bdbd70b32f1c8e87af6f983b
+SIZE (freenit-0.3.3.tar.gz) = 25508
diff --git a/www/py-ghp-import/Makefile b/www/py-ghp-import/Makefile
index 88c9349a4c81..b423735b82bb 100644
--- a/www/py-ghp-import/Makefile
+++ b/www/py-ghp-import/Makefile
@@ -1,6 +1,6 @@
PORTNAME= ghp-import
PORTVERSION= 2.1.0
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,10 +12,12 @@ WWW= https://github.com/c-w/ghp-import
LICENSE= APACHE20
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}python-dateutil>=2.8.1:devel/py-python-dateutil@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-google-api-core/Makefile b/www/py-google-api-core/Makefile
index 6d017cf948e6..780a0615b2bb 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.18.0
+PORTVERSION= 2.19.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 3f7eabe2df74..dee717a99a8a 100644
--- a/www/py-google-api-core/distinfo
+++ b/www/py-google-api-core/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1711466230
-SHA256 (google-api-core-2.18.0.tar.gz) = 62d97417bfc674d6cef251e5c4d639a9655e00c45528c4364fbfebb478ce72a9
-SIZE (google-api-core-2.18.0.tar.gz) = 148047
+TIMESTAMP = 1715842864
+SHA256 (google-api-core-2.19.0.tar.gz) = cf1b7c2694047886d2af1128a03ae99e391108a08804f87cfd35970e49c9cd10
+SIZE (google-api-core-2.19.0.tar.gz) = 148403
diff --git a/www/py-google-api-python-client/Makefile b/www/py-google-api-python-client/Makefile
index 2233f28820e1..ae5ee3efab49 100644
--- a/www/py-google-api-python-client/Makefile
+++ b/www/py-google-api-python-client/Makefile
@@ -1,5 +1,5 @@
PORTNAME= google-api-python-client
-DISTVERSION= 2.126.0
+DISTVERSION= 2.127.0
PORTREVISION= 0
CATEGORIES= www python
MASTER_SITES= PYPI
diff --git a/www/py-google-api-python-client/distinfo b/www/py-google-api-python-client/distinfo
index db5334930098..71f9d4d48068 100644
--- a/www/py-google-api-python-client/distinfo
+++ b/www/py-google-api-python-client/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1713358214
-SHA256 (google-api-python-client-2.126.0.tar.gz) = 97c0410630e2bebd194d99e91bd620dab5bc6b6ec0bf033f9a9109b700b83acb
-SIZE (google-api-python-client-2.126.0.tar.gz) = 12163106
+TIMESTAMP = 1713964173
+SHA256 (google-api-python-client-2.127.0.tar.gz) = bbb51b0fbccdf40e536c26341e372d7800f09afebb53103bbcc94e08f14b523b
+SIZE (google-api-python-client-2.127.0.tar.gz) = 12203690
diff --git a/www/py-google-cloud-aiplatform/Makefile b/www/py-google-cloud-aiplatform/Makefile
index 6331b2659577..e0f9306d3e24 100644
--- a/www/py-google-cloud-aiplatform/Makefile
+++ b/www/py-google-cloud-aiplatform/Makefile
@@ -1,5 +1,5 @@
PORTNAME= google-cloud-aiplatform
-DISTVERSION= 1.48.0
+DISTVERSION= 1.49.0
CATEGORIES= www # machine-learning
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-google-cloud-aiplatform/distinfo b/www/py-google-cloud-aiplatform/distinfo
index 63b0658b5d53..39c0f04b4efc 100644
--- a/www/py-google-cloud-aiplatform/distinfo
+++ b/www/py-google-cloud-aiplatform/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1713599669
-SHA256 (google-cloud-aiplatform-1.48.0.tar.gz) = 70fa242247693092412270e26109729e0d2ef3f3fe8caf0ce823208f8dc156c7
-SIZE (google-cloud-aiplatform-1.48.0.tar.gz) = 5658214
+TIMESTAMP = 1714451027
+SHA256 (google-cloud-aiplatform-1.49.0.tar.gz) = e6e6d01079bb5def49e4be4db4d12b13c624b5c661079c869c13c855e5807429
+SIZE (google-cloud-aiplatform-1.49.0.tar.gz) = 5766450
diff --git a/www/py-google-cloud-bigquery/Makefile b/www/py-google-cloud-bigquery/Makefile
index d52e2b28e9e7..e3fa6fb7310a 100644
--- a/www/py-google-cloud-bigquery/Makefile
+++ b/www/py-google-cloud-bigquery/Makefile
@@ -1,5 +1,5 @@
PORTNAME= google-cloud-bigquery
-DISTVERSION= 3.21.0
+DISTVERSION= 3.22.0
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -24,7 +24,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}google-api-core>=1.34.1:www/py-google-api-co
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}google-cloud-testutils>0:www/py-google-cloud-testutils@${PY_FLAVOR}
USES= python
-USE_PYTHON= distutils autoplist pytest # tests fail to run, see https://github.com/googleapis/python-bigquery/issues/1758
+USE_PYTHON= distutils autoplist pytest # 31 tests fail, tests require missing dependencies like db-tests, etc
NO_ARCH= yes
diff --git a/www/py-google-cloud-bigquery/distinfo b/www/py-google-cloud-bigquery/distinfo
index a4b3f295c5f3..c0882239142d 100644
--- a/www/py-google-cloud-bigquery/distinfo
+++ b/www/py-google-cloud-bigquery/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1713599501
-SHA256 (google-cloud-bigquery-3.21.0.tar.gz) = 6265c39f9d5bdf50f11cb81a9c2a0605d285df34ac139de0d2333b1250add0ff
-SIZE (google-cloud-bigquery-3.21.0.tar.gz) = 447294
+TIMESTAMP = 1715056213
+SHA256 (google-cloud-bigquery-3.22.0.tar.gz) = 957591e6f948d7cb4aa0f7a8e4e47b4617cd7f0269e28a71c37953c39b6e8a4c
+SIZE (google-cloud-bigquery-3.22.0.tar.gz) = 449747
diff --git a/www/py-google-cloud-dlp/Makefile b/www/py-google-cloud-dlp/Makefile
index 0f2a3cffd658..fba2064361f2 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.16.0
+PORTVERSION= 3.17.0
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-google-cloud-dlp/distinfo b/www/py-google-cloud-dlp/distinfo
index 85e0c72a4eb2..68985ba0e819 100644
--- a/www/py-google-cloud-dlp/distinfo
+++ b/www/py-google-cloud-dlp/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1710712552
-SHA256 (google-cloud-dlp-3.16.0.tar.gz) = 0d69a1f7a5ef88756c99e56b8af4c39eae40d2106883f0e2794c5cb3642696d5
-SIZE (google-cloud-dlp-3.16.0.tar.gz) = 201332
+TIMESTAMP = 1715842866
+SHA256 (google-cloud-dlp-3.17.0.tar.gz) = 60c504063f1cd79e0a03963f726d606f2a43c647d8e27702ab9c1bca6e6b4bdb
+SIZE (google-cloud-dlp-3.17.0.tar.gz) = 229825
diff --git a/www/py-gunicorn/Makefile b/www/py-gunicorn/Makefile
index bf9f7bf62a8d..55af03382da3 100644
--- a/www/py-gunicorn/Makefile
+++ b/www/py-gunicorn/Makefile
@@ -1,5 +1,6 @@
PORTNAME= gunicorn
DISTVERSION= 22.0.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-gunicorn/files/gunicorn.in b/www/py-gunicorn/files/gunicorn.in
index f0c995224af2..86d3e2d3cad2 100644
--- a/www/py-gunicorn/files/gunicorn.in
+++ b/www/py-gunicorn/files/gunicorn.in
@@ -20,7 +20,7 @@ rcvar=gunicorn_enable
load_rc_config $name
: ${gunicorn_enable:=NO}
-: ${gunicorn_config=%%PREFIX%%/gunicorn/gunicorn.conf.py}
+: ${gunicorn_config=%%PREFIX%%/etc/gunicorn/gunicorn.conf.py}
: ${gunicorn_user=%%USERS%%}
: ${gunicorn_group=%%GROUPS%%}
diff --git a/www/py-horizon/Makefile b/www/py-horizon/Makefile
index 1cfcd05e4218..55d86960df15 100644
--- a/www/py-horizon/Makefile
+++ b/www/py-horizon/Makefile
@@ -1,5 +1,6 @@
PORTNAME= horizon
PORTVERSION= 23.4.0
+PORTREVISION= 2
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,13 +13,15 @@ WWW= https://docs.openstack.org/horizon/latest/ \
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/LICENSE
-BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pbr>=2.0.0:devel/py-pbr@${PY_FLAVOR}
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pbr>=2.0.0:devel/py-pbr@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Babel>=2.6.0:devel/py-babel@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}debtcollector>=1.2.0:devel/py-debtcollector@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django_compressor>=2.4.1:www/py-django_compressor@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-debreach>=1.4.2:www/py-django-debreach@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-pyscss>=2.0.2:www/py-django-pyscss@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}django32>=3.2<4.3:www/py-django32@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}django42>=3.2<4.3:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}enmerkar>=0.7.1:www/py-enmerkar@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}futurist>=1.2.0:devel/py-futurist@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}iso8601>=0.1.11:devel/py-iso8601@${PY_FLAVOR} \
@@ -76,7 +79,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Babel>=2.6.0:devel/py-babel@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}xstatic-tv4>=1.2.7.0:devel/py-xstatic-tv4@${PY_FLAVOR}
USES= cpe python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-hstspreload/Makefile b/www/py-hstspreload/Makefile
index c63706aaf1d0..9ebfdec9276e 100644
--- a/www/py-hstspreload/Makefile
+++ b/www/py-hstspreload/Makefile
@@ -1,5 +1,5 @@
PORTNAME= hstspreload
-PORTVERSION= 2024.4.1
+PORTVERSION= 2024.5.1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-hstspreload/distinfo b/www/py-hstspreload/distinfo
index ef0b3f30e6d4..2108d7adf1dd 100644
--- a/www/py-hstspreload/distinfo
+++ b/www/py-hstspreload/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1712084540
-SHA256 (hstspreload-2024.4.1.tar.gz) = d379d0593f4b8819bd42e758c697f43a95a8202f8f5412bd8db820b37cdf96ac
-SIZE (hstspreload-2024.4.1.tar.gz) = 1132286
+TIMESTAMP = 1715842868
+SHA256 (hstspreload-2024.5.1.tar.gz) = b16c79acc0bd1dc345e4e70c975591ff1ad8ebda3da4356af571b86810c7e0dd
+SIZE (hstspreload-2024.5.1.tar.gz) = 1145337
diff --git a/www/py-httptools/Makefile b/www/py-httptools/Makefile
index 7d0bc9282450..947b9291922b 100644
--- a/www/py-httptools/Makefile
+++ b/www/py-httptools/Makefile
@@ -1,5 +1,6 @@
PORTNAME= httptools
PORTVERSION= 0.6.1
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,10 +12,12 @@ WWW= https://github.com/MagicStack/httptools
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
LIB_DEPENDS= libhttp_parser.so:www/http-parser
USES= localbase python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
post-patch:
@${RM} -r ${WRKSRC}/vendor/http-parser/
diff --git a/www/py-instabot/Makefile b/www/py-instabot/Makefile
index 0654caf478b3..148ba743c9f1 100644
--- a/www/py-instabot/Makefile
+++ b/www/py-instabot/Makefile
@@ -1,6 +1,6 @@
PORTNAME= instabot
PORTVERSION= 0.117.0
-PORTREVISION= 4
+PORTREVISION= 5
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,6 +11,8 @@ WWW= https://github.com/instagrambot/instabot
LICENSE= APACHE20
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}certifi>=2019.11.28:security/py-certifi@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}chardet>=3.0.4,1:textproc/py-chardet@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}future>=0.18.2:devel/py-future@${PY_FLAVOR} \
@@ -30,7 +32,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}certifi>=2019.11.28:security/py-certifi@${PY
${PYTHON_PKGNAMEPREFIX}urllib3>=1.25.7,1:net/py-urllib3@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-jsonfield/Makefile b/www/py-jsonfield/Makefile
index bbd9ad5e3942..a3d544bf1805 100644
--- a/www/py-jsonfield/Makefile
+++ b/www/py-jsonfield/Makefile
@@ -1,6 +1,6 @@
PORTNAME= jsonfield
PORTVERSION= 3.1.0
-PORTREVISION= 1
+PORTREVISION= 3
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,10 +12,12 @@ WWW= https://github.com/rpkilby/jsonfield
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=2.2:www/py-django32@${PY_FLAVOR}
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=2.2:www/py-django42@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-mechanicalsoup/Makefile b/www/py-mechanicalsoup/Makefile
index a6056416b70a..2aa0389e59e4 100644
--- a/www/py-mechanicalsoup/Makefile
+++ b/www/py-mechanicalsoup/Makefile
@@ -1,5 +1,6 @@
PORTNAME= mechanicalsoup
PORTVERSION= 1.3.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,6 +13,8 @@ WWW= https://github.com/MechanicalSoup/MechanicalSoup
LICENSE= MIT
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}beautifulsoup>=4.7:www/py-beautifulsoup@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}lxml>=0:devel/py-lxml@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests>=2.22.0:www/py-requests@${PY_FLAVOR}
@@ -21,7 +24,7 @@ TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest>=0:devel/py-pytest@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests-mock>=0:www/py-requests-mock@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-mechanicalsoup/files/patch-setup.py b/www/py-mechanicalsoup/files/patch-setup.py
new file mode 100644
index 000000000000..e21c791797e4
--- /dev/null
+++ b/www/py-mechanicalsoup/files/patch-setup.py
@@ -0,0 +1,11 @@
+--- setup.py.orig 2023-07-04 19:21:51 UTC
++++ setup.py
+@@ -42,7 +42,7 @@ setup(
+ pytest_runner = ['pytest-runner'] if needs_pytest else []
+
+ setup(
+- name=about['__title__'],
++ name='mechanicalsoup',
+
+ # useful: python setup.py sdist bdist_wheel upload
+ version=about['__version__'],
diff --git a/www/py-nh3/Makefile b/www/py-nh3/Makefile
index db5c3258a289..31c9ccb8d648 100644
--- a/www/py-nh3/Makefile
+++ b/www/py-nh3/Makefile
@@ -1,6 +1,7 @@
PORTNAME= nh3
DISTVERSIONPREFIX= v
DISTVERSION= 0.2.17
+PORTREVISION= 1
CATEGORIES= www python
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-notebook/Makefile b/www/py-notebook/Makefile
index 698c6e5e4620..342f8be9bd1a 100644
--- a/www/py-notebook/Makefile
+++ b/www/py-notebook/Makefile
@@ -1,5 +1,6 @@
PORTNAME= notebook
PORTVERSION= 6.4.13
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-paste/Makefile b/www/py-paste/Makefile
index 94ffb8a5f099..8a10cf5937d0 100644
--- a/www/py-paste/Makefile
+++ b/www/py-paste/Makefile
@@ -1,19 +1,21 @@
PORTNAME= Paste
-PORTVERSION= 3.9.0
+PORTVERSION= 3.10.1
PORTREVISION= 0
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTNAME= ${PORTNAME:tl}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}
MAINTAINER= nivit@FreeBSD.org
COMMENT= Tools for using a Web Server Gateway Interface stack
-WWW= https://github.com/cdent/paste
+WWW= https://github.com/pasteorg/paste
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/docs/license.txt
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}six>=1.4.0:devel/py-six@${PY_FLAVOR}
+# 175 passed, 1 skipped
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}six>=1.4.0:devel/py-six@${PY_FLAVOR}
USES= python
diff --git a/www/py-paste/distinfo b/www/py-paste/distinfo
index 77ff5244529e..a6fdd6f42f30 100644
--- a/www/py-paste/distinfo
+++ b/www/py-paste/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1712391275
-SHA256 (Paste-3.9.0.tar.gz) = 556e3c24208fcfae269684fc3b888f46783c80208516bcecc410c00c7f678fef
-SIZE (Paste-3.9.0.tar.gz) = 637286
+TIMESTAMP = 1714741211
+SHA256 (paste-3.10.1.tar.gz) = 1c3d12065a5e8a7a18c0c7be1653a97cf38cc3e9a5a0c8334a9dd992d3a05e4a
+SIZE (paste-3.10.1.tar.gz) = 652629
diff --git a/www/py-planet/Makefile b/www/py-planet/Makefile
index 702c4fe726d8..96202e8c96af 100644
--- a/www/py-planet/Makefile
+++ b/www/py-planet/Makefile
@@ -1,5 +1,6 @@
PORTNAME= planet
PORTVERSION= 2.1.1
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,6 +13,8 @@ WWW= https://planet-sdk-for-python-v2.readthedocs.io/en/latest/ \
LICENSE= APACHE20
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}click>=8.0:devel/py-click@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}geojson>=0:devel/py-geojson@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}httpx>=0.23.0:www/py-httpx@${PY_FLAVOR} \
@@ -21,7 +24,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}click>=8.0:devel/py-click@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}typing-extensions>=0:devel/py-typing-extensions@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-postorius/Makefile b/www/py-postorius/Makefile
index bde9f092d473..8b695efa44fd 100644
--- a/www/py-postorius/Makefile
+++ b/www/py-postorius/Makefile
@@ -1,5 +1,6 @@
PORTNAME= postorius
PORTVERSION= 1.3.10
+PORTREVISION= 2
CATEGORIES= www
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,8 +12,10 @@ WWW= https://gitlab.com/mailman/postorius
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/COPYING
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django-mailman3>=1.3.10:mail/py-django-mailman3@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}django32>=3.2<4.3:www/py-django32@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}django42>=3.2<4.3:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}mailmanclient>=3.3.3:mail/py-mailmanclient@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}readme-renderer>=0:devel/py-readme-renderer@${PY_FLAVOR}
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}beautifulsoup>=0:www/py-beautifulsoup@${PY_FLAVOR} \
@@ -21,7 +24,7 @@ TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}beautifulsoup>=0:www/py-beautifulsoup@${PY_
${PYTHON_PKGNAMEPREFIX}isort>=0:devel/py-isort@${PY_FLAVOR}
USES= cpe python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-priority/Makefile b/www/py-priority/Makefile
index e665f74ad266..c9f1be79267b 100644
--- a/www/py-priority/Makefile
+++ b/www/py-priority/Makefile
@@ -1,5 +1,6 @@
PORTNAME= priority
PORTVERSION= 2.0.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,8 +12,11 @@ WWW= https://github.com/python-hyper/priority
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-priority1/Makefile b/www/py-priority1/Makefile
index 8f094e375e26..87392d12c276 100644
--- a/www/py-priority1/Makefile
+++ b/www/py-priority1/Makefile
@@ -1,5 +1,6 @@
PORTNAME= priority
PORTVERSION= 1.3.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,8 +13,11 @@ WWW= https://github.com/python-hyper/priority
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-pygsheets/Makefile b/www/py-pygsheets/Makefile
index db75fa6dda03..e88c726f457a 100644
--- a/www/py-pygsheets/Makefile
+++ b/www/py-pygsheets/Makefile
@@ -1,5 +1,6 @@
PORTNAME= pygsheets
PORTVERSION= 2.0.6
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -10,11 +11,13 @@ WWW= https://github.com/nithinmurali/pygsheets
LICENSE= MIT
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}google-api-python-client>=2.50.0:www/py-google-api-python-client@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}google-auth-oauthlib>=0.7.1:security/py-google-auth-oauthlib@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-pyramid-mako/Makefile b/www/py-pyramid-mako/Makefile
index c526e7013976..18f6e1af5a0a 100644
--- a/www/py-pyramid-mako/Makefile
+++ b/www/py-pyramid-mako/Makefile
@@ -1,6 +1,6 @@
PORTNAME= pyramid-mako
PORTVERSION= 1.1.0
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -15,6 +15,8 @@ LICENSE_NAME= Repoze Public License
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
LICENSE_PERMS= auto-accept dist-mirror dist-sell pkg-mirror pkg-sell
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}mako>=1.1.0:textproc/py-mako@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pyramid>=0:www/py-pyramid@${PY_FLAVOR}
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}coverage>=0:devel/py-coverage@${PY_FLAVOR} \
@@ -22,7 +24,7 @@ TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}coverage>=0:devel/py-coverage@${PY_FLAVOR}
${PYTHON_PKGNAMEPREFIX}webtest>=1.3.1:www/py-webtest@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-pysmartdl/Makefile b/www/py-pysmartdl/Makefile
index 3cd6a6d33ac1..92fde3f822cb 100644
--- a/www/py-pysmartdl/Makefile
+++ b/www/py-pysmartdl/Makefile
@@ -1,6 +1,6 @@
PORTNAME= pysmartdl
PORTVERSION= 1.3.4
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -13,8 +13,11 @@ WWW= https://github.com/iTaybb/pySmartDL
LICENSE= UNLICENSE
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-pysmartdl/files/patch-setup.py b/www/py-pysmartdl/files/patch-setup.py
index b91914dc6703..907459b84fb8 100644
--- a/www/py-pysmartdl/files/patch-setup.py
+++ b/www/py-pysmartdl/files/patch-setup.py
@@ -1,6 +1,13 @@
--- setup.py.orig 2020-09-19 15:39:42 UTC
+++ setup.py
-@@ -11,7 +11,7 @@ setup(
+@@ -5,13 +5,13 @@ setup(
+ release_posttag = ""
+
+ setup(
+- name='pySmartDL',
++ name='pysmartdl',
+ version=pySmartDL.__version__ + release_posttag,
+ url='http://pypi.python.org/pypi/pySmartDL/',
author='Itay Brandes',
author_email='brandes.itay+pysmartdl@gmail.com',
license='Public Domain',
diff --git a/www/py-python-dotenv/Makefile b/www/py-python-dotenv/Makefile
index 897e6f88ca41..588f86b11214 100644
--- a/www/py-python-dotenv/Makefile
+++ b/www/py-python-dotenv/Makefile
@@ -1,5 +1,6 @@
PORTNAME= python-dotenv
PORTVERSION= 1.0.1
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,8 +12,11 @@ WWW= https://github.com/theskumar/python-dotenv
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
CONFLICTS_INSTALL= rubygem-dotenv # bin/dotenv
diff --git a/www/py-pywikibot/Makefile b/www/py-pywikibot/Makefile
index 7783a92748fd..02adfbbbd7c0 100644
--- a/www/py-pywikibot/Makefile
+++ b/www/py-pywikibot/Makefile
@@ -1,5 +1,5 @@
PORTNAME= pywikibot
-DISTVERSION= 9.0.0
+DISTVERSION= 9.1.2
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-pywikibot/distinfo b/www/py-pywikibot/distinfo
index 1c0cb20d20e8..d33e12ccc354 100644
--- a/www/py-pywikibot/distinfo
+++ b/www/py-pywikibot/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1709965245
-SHA256 (pywikibot-9.0.0.tar.gz) = 82120dd4dd275a48c0eaa2a459faad928211e7b43cf6efe4110ad95e805e7317
-SIZE (pywikibot-9.0.0.tar.gz) = 612776
+TIMESTAMP = 1714871872
+SHA256 (pywikibot-9.1.2.tar.gz) = 802eb5da597f17398b23816438578dee918cd31e10e4141d6d1067ad3b950b5d
+SIZE (pywikibot-9.1.2.tar.gz) = 610495
diff --git a/www/py-pywry/Makefile b/www/py-pywry/Makefile
index 4cb752485fe2..4441c38b452d 100644
--- a/www/py-pywry/Makefile
+++ b/www/py-pywry/Makefile
@@ -1,6 +1,6 @@
PORTNAME= pywry
DISTVERSION= 0.6.2
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-qt6-webengine/Makefile b/www/py-qt6-webengine/Makefile
index ba2317eff1da..8a6e942bdb93 100644
--- a/www/py-qt6-webengine/Makefile
+++ b/www/py-qt6-webengine/Makefile
@@ -12,7 +12,7 @@ COMMENT= Python bindings for the Qt6 toolkit, QtWebEngine module
WWW= https://riverbankcomputing.com/software/pyqt
USES= gl python pyqt:6 qt:6
-USE_GL= gl
+USE_GL= opengl
USE_PYQT= sip:build pyqt6
USE_PYTHON= concurrent flavors
USE_QT= base declarative positioning webchannel webengine
diff --git a/www/py-qt6-webengine/distinfo b/www/py-qt6-webengine/distinfo
index a47e084a2044..4e4a1ee59e1d 100644
--- a/www/py-qt6-webengine/distinfo
+++ b/www/py-qt6-webengine/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1698900348
-SHA256 (PyQt6_WebEngine-6.6.0.tar.gz) = d50b984c3f85e409e692b156132721522d4e8cf9b6c25e0cf927eea2dfb39487
-SIZE (PyQt6_WebEngine-6.6.0.tar.gz) = 31817
+TIMESTAMP = 1714272046
+SHA256 (PyQt6_WebEngine-6.7.0.tar.gz) = 68edc7adb6d9e275f5de956881e79cca0d71fad439abeaa10d823bff5ac55001
+SIZE (PyQt6_WebEngine-6.7.0.tar.gz) = 32593
diff --git a/www/py-qt6-webengine/pkg-plist b/www/py-qt6-webengine/pkg-plist
index c223a7b9147b..d569bcec7b29 100644
--- a/www/py-qt6-webengine/pkg-plist
+++ b/www/py-qt6-webengine/pkg-plist
@@ -7,6 +7,7 @@
%%PYQT_SIPDIR%%/QtWebEngineCore/qwebengineclientcertificatestore.sip
%%PYQT_SIPDIR%%/QtWebEngineCore/qwebenginecontextmenurequest.sip
%%PYQT_SIPDIR%%/QtWebEngineCore/qwebenginecookiestore.sip
+%%PYQT_SIPDIR%%/QtWebEngineCore/qwebenginedesktopmediarequest.sip
%%PYQT_SIPDIR%%/QtWebEngineCore/qwebenginedownloadrequest.sip
%%PYQT_SIPDIR%%/QtWebEngineCore/qwebenginefilesystemaccessrequest.sip
%%PYQT_SIPDIR%%/QtWebEngineCore/qwebenginefindtextresult.sip
@@ -30,6 +31,7 @@
%%PYQT_SIPDIR%%/QtWebEngineCore/qwebengineurlrequestjob.sip
%%PYQT_SIPDIR%%/QtWebEngineCore/qwebengineurlscheme.sip
%%PYQT_SIPDIR%%/QtWebEngineCore/qwebengineurlschemehandler.sip
+%%PYQT_SIPDIR%%/QtWebEngineCore/qwebenginewebauthuxrequest.sip
%%PYQT_SIPDIR%%/QtWebEngineQuick/QtWebEngineQuick.toml
%%PYQT_SIPDIR%%/QtWebEngineQuick/QtWebEngineQuickmod.sip
%%PYQT_SIPDIR%%/QtWebEngineQuick/qquickwebengineprofile.sip
diff --git a/www/py-quilt3/Makefile b/www/py-quilt3/Makefile
index 2ed8e4460717..6d1465e25d6c 100644
--- a/www/py-quilt3/Makefile
+++ b/www/py-quilt3/Makefile
@@ -1,5 +1,6 @@
PORTNAME= quilt3
PORTVERSION= 5.4.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,6 +12,8 @@ WWW= https://github.com/quiltdata/quilt
LICENSE= APACHE20
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}aws-requests-auth>=0.4.2:devel/py-aws-requests-auth@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}boto3>=1.10.0:www/py-boto3@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}jsonlines>=1.2.0:devel/py-jsonlines@${PY_FLAVOR} \
@@ -23,7 +26,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}aws-requests-auth>=0.4.2:devel/py-aws-reques
${PYTHON_PKGNAMEPREFIX}tqdm>=4.32:misc/py-tqdm@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-requests-aws4auth/Makefile b/www/py-requests-aws4auth/Makefile
index 1d8616b9e23a..2e396e7d1b4f 100644
--- a/www/py-requests-aws4auth/Makefile
+++ b/www/py-requests-aws4auth/Makefile
@@ -1,5 +1,6 @@
PORTNAME= requests-aws4auth
PORTVERSION= 1.2.3
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,11 +12,13 @@ WWW= https://github.com/sam-washington/requests-aws4auth
LICENSE= MIT
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}requests>=0:www/py-requests@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}six>=0:devel/py-six@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-requests-futures/Makefile b/www/py-requests-futures/Makefile
index 34fee72fb971..92f0b3775489 100644
--- a/www/py-requests-futures/Makefile
+++ b/www/py-requests-futures/Makefile
@@ -1,5 +1,6 @@
PORTNAME= requests-futures
PORTVERSION= 1.0.1
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -10,10 +11,12 @@ WWW= https://github.com/ross/requests-futures
LICENSE= APACHE20
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}requests>=1.2.0:www/py-requests@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-requests-toolbelt/Makefile b/www/py-requests-toolbelt/Makefile
index 5da9d3332cab..a6ef946f5206 100644
--- a/www/py-requests-toolbelt/Makefile
+++ b/www/py-requests-toolbelt/Makefile
@@ -1,5 +1,6 @@
PORTNAME= requests-toolbelt
PORTVERSION= 1.0.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,10 +13,12 @@ WWW= https://toolbelt.readthedocs.io/en/latest/ \
LICENSE= APACHE20
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}requests>=2.0.1<3.0.0:www/py-requests@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-requests-wsgi-adapter/Makefile b/www/py-requests-wsgi-adapter/Makefile
index 7de635f8b316..0af8c9a3f228 100644
--- a/www/py-requests-wsgi-adapter/Makefile
+++ b/www/py-requests-wsgi-adapter/Makefile
@@ -1,5 +1,6 @@
PORTNAME= requests-wsgi-adapter
PORTVERSION= 0.4.1
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -10,10 +11,12 @@ WWW= https://github.com/seanbrant/requests-wsgi-adapter
LICENSE= BSD3CLAUSE
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}requests>=1.0:www/py-requests@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-requests/Makefile b/www/py-requests/Makefile
index 18b00a66b9ba..5b1d9d56bd5b 100644
--- a/www/py-requests/Makefile
+++ b/www/py-requests/Makefile
@@ -1,5 +1,6 @@
PORTNAME= requests
PORTVERSION= 2.31.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,6 +13,8 @@ WWW= https://docs.python-requests.org/en/latest/ \
LICENSE= APACHE20
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}certifi>=2017.4.17:security/py-certifi@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}charset-normalizer>=2<4:textproc/py-charset-normalizer@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}idna>=2.5<4:dns/py-idna@${PY_FLAVOR} \
@@ -24,7 +27,7 @@ TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pysocks>=1.5.6:net/py-pysocks@${PY_FLAVOR}
${PYTHON_PKGNAMEPREFIX}trustme>=0:security/py-trustme@${PY_FLAVOR}
USES= cpe python
-USE_PYTHON= autoplist concurrent distutils pytest
+USE_PYTHON= autoplist concurrent pep517 pytest
NO_ARCH= yes
diff --git a/www/py-rfc3987/Makefile b/www/py-rfc3987/Makefile
index 1fa0b4f0fbe3..f80869a88ff0 100644
--- a/www/py-rfc3987/Makefile
+++ b/www/py-rfc3987/Makefile
@@ -1,5 +1,6 @@
PORTNAME= rfc3987
PORTVERSION= 1.3.8
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,8 +12,11 @@ WWW= https://github.com/dgerber/rfc3987
LICENSE= GPLv3+
LICENSE_FILE= ${WRKSRC}/COPYING.txt
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-sentinelhub/Makefile b/www/py-sentinelhub/Makefile
index dac8e9ee35ca..8d0714351367 100644
--- a/www/py-sentinelhub/Makefile
+++ b/www/py-sentinelhub/Makefile
@@ -1,6 +1,5 @@
PORTNAME= sentinelhub
-PORTVERSION= 3.10.1
-PORTREVISION= 1
+PORTVERSION= 3.10.2
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-sentinelhub/distinfo b/www/py-sentinelhub/distinfo
index 4ee931967963..1bae4064ac4a 100644
--- a/www/py-sentinelhub/distinfo
+++ b/www/py-sentinelhub/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1708449538
-SHA256 (sentinelhub-3.10.1.tar.gz) = d67e50d21da965d17c1dcc9538f6dc471d1d5a50e0d463d44c10d24ab5f931b3
-SIZE (sentinelhub-3.10.1.tar.gz) = 213160
+TIMESTAMP = 1715842870
+SHA256 (sentinelhub-3.10.2.tar.gz) = a94d23e7eb1af35c48348e9a9560f9ced109fcab456f8d2e2f020c91ee76e211
+SIZE (sentinelhub-3.10.2.tar.gz) = 213358
diff --git a/www/py-social-auth-app-django/Makefile b/www/py-social-auth-app-django/Makefile
index a81634cbc3d8..7b307e9771bb 100644
--- a/www/py-social-auth-app-django/Makefile
+++ b/www/py-social-auth-app-django/Makefile
@@ -1,5 +1,5 @@
PORTNAME= social-auth-app-django
-DISTVERSION= 5.4.0
+DISTVERSION= 5.4.1
CATEGORIES= www security python
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,7 +11,7 @@ LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}social-auth-core>=4.4.1:security/py-social-auth-core@${PY_FLAVOR}
-TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>0:www/py-django32@${PY_FLAVOR} \
+TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>0:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}mock>0:devel/py-mock@${PY_FLAVOR}
USES= python
diff --git a/www/py-social-auth-app-django/distinfo b/www/py-social-auth-app-django/distinfo
index 8e6883eca6a8..ff612778b0af 100644
--- a/www/py-social-auth-app-django/distinfo
+++ b/www/py-social-auth-app-django/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1698405606
-SHA256 (python-social-auth-social-app-django-5.4.0_GH0.tar.gz) = 4dd5cbdb7b9261d6c2836f96fc6f8024a749abd7737e91011716978395394dbc
-SIZE (python-social-auth-social-app-django-5.4.0_GH0.tar.gz) = 28886
+TIMESTAMP = 1714151791
+SHA256 (python-social-auth-social-app-django-5.4.1_GH0.tar.gz) = bfcceba117a90c13f090d57224df3760f77e957c756eb0de5a3472e9a69a7d8e
+SIZE (python-social-auth-social-app-django-5.4.1_GH0.tar.gz) = 28189
diff --git a/www/py-spyne/Makefile b/www/py-spyne/Makefile
index 4b540117866a..2ec47709d49a 100644
--- a/www/py-spyne/Makefile
+++ b/www/py-spyne/Makefile
@@ -1,6 +1,6 @@
PORTNAME= spyne
PORTVERSION= 2.14.0
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= www devel python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -13,10 +13,12 @@ WWW= http://spyne.io/ \
LICENSE= LGPL21
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}pytz>=0,1:devel/py-pytz@${PY_FLAVOR}
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}colorama>=0:devel/py-colorama@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}coverage>=0:devel/py-coverage@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}django32>=0:www/py-django32@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}django42>=0:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}lxml>=3.6:devel/py-lxml@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}msgpack>=1:devel/py-msgpack@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pandas>=0,1:math/py-pandas@${PY_FLAVOR} \
@@ -36,7 +38,7 @@ TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}colorama>=0:devel/py-colorama@${PY_FLAVOR}
${PYTHON_PKGNAMEPREFIX}zeep>=0:net/py-zeep@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils pytest
+USE_PYTHON= autoplist concurrent pep517 pytest
NO_ARCH= yes
TEST_ENV= DJANGO_SETTINGS_MODULE=rpctest.settings PYTHONPATH=examples/django
diff --git a/www/py-strawberry-graphql-django/Makefile b/www/py-strawberry-graphql-django/Makefile
index 428a83537adc..80092556f6a4 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.37.0
+DISTVERSION= 0.39.2
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -14,8 +14,9 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${PY_SETUPTOOLS} \
${PYTHON_PKGNAMEPREFIX}poetry-core>=1.0.0:devel/py-poetry-core@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=3.2:www/py-django32@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}strawberry-graphql>=0.212.0:devel/py-strawberry-graphql@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}asgiref>=3.8:www/py-asgiref@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}strawberry-graphql>=0.227.1:devel/py-strawberry-graphql@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist pep517
diff --git a/www/py-strawberry-graphql-django/distinfo b/www/py-strawberry-graphql-django/distinfo
index 309d50c34065..63d67b34b8dc 100644
--- a/www/py-strawberry-graphql-django/distinfo
+++ b/www/py-strawberry-graphql-django/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1712323533
-SHA256 (strawberry_graphql_django-0.37.0.tar.gz) = c9d33c2212b23c8ff40a9e8d92225e651736dd83746f8826b07d8a1dead5e167
-SIZE (strawberry_graphql_django-0.37.0.tar.gz) = 69040
+TIMESTAMP = 1714243824
+SHA256 (strawberry_graphql_django-0.39.2.tar.gz) = 673025c261e547787b2e452e757867df81a8ac163ed82160c5e4b7e79e1b6435
+SIZE (strawberry_graphql_django-0.39.2.tar.gz) = 68979
diff --git a/www/py-swapper/Makefile b/www/py-swapper/Makefile
index d810922d959f..20090ab2e891 100644
--- a/www/py-swapper/Makefile
+++ b/www/py-swapper/Makefile
@@ -1,6 +1,6 @@
PORTNAME= swapper
PORTVERSION= 1.3.0
-PORTREVISION= 1
+PORTREVISION= 3
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,11 +12,13 @@ WWW= https://github.com/openwisp/django-swappable-models
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
-BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools-scm>=0:devel/py-setuptools-scm@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=2.0:www/py-django32@${PY_FLAVOR}
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}setuptools-scm>=0:devel/py-setuptools-scm@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=2.0:www/py-django42@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-ticketutil/Makefile b/www/py-ticketutil/Makefile
index c2c2f95d8a6b..a0e5dc5fbafe 100644
--- a/www/py-ticketutil/Makefile
+++ b/www/py-ticketutil/Makefile
@@ -1,5 +1,6 @@
PORTNAME= ticketutil
PORTVERSION= 1.8.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -10,12 +11,14 @@ WWW= https://github.com/dmranck/ticketutil
LICENSE= GPLv3
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}gssapi>=1.2.0:security/py-gssapi@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests>=2.6.0:www/py-requests@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests-kerberos>=0.8.0:security/py-requests-kerberos@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-ticketutil/files/patch-setup.py b/www/py-ticketutil/files/patch-setup.py
index 68d43e12c257..8443c367fc1e 100644
--- a/www/py-ticketutil/files/patch-setup.py
+++ b/www/py-ticketutil/files/patch-setup.py
@@ -5,5 +5,5 @@
keywords=['jira', 'bugzilla', 'rt', 'redmine', 'servicenow', 'ticket', 'rest'],
install_requires=['gssapi>=1.2.0', 'requests>=2.6.0', 'requests-kerberos>=0.8.0'],
- data_files=[('.', ['HISTORY.rst'])]
-+ data_files=[('', ['HISTORY.rst'])]
++ package_data={'': ['HISTORY.rst']}
)
diff --git a/www/py-tornado4/Makefile b/www/py-tornado4/Makefile
index f48e85e195f3..a44dc6d39e09 100644
--- a/www/py-tornado4/Makefile
+++ b/www/py-tornado4/Makefile
@@ -1,5 +1,6 @@
PORTNAME= tornado
PORTVERSION= 4.5.3
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -10,9 +11,13 @@ COMMENT= Python Web Server from FriendFeed
WWW= https://www.tornadoweb.org/
LICENSE= APACHE20
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
USES= cpe python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}tornado \
${PYTHON_PKGNAMEPREFIX}tornado5 \
diff --git a/www/py-tornado5/Makefile b/www/py-tornado5/Makefile
index b1c9733cd557..146dbbc8f27b 100644
--- a/www/py-tornado5/Makefile
+++ b/www/py-tornado5/Makefile
@@ -1,5 +1,6 @@
PORTNAME= tornado
PORTVERSION= 5.1.1
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -10,9 +11,13 @@ COMMENT= Python Web Server from FriendFeed
WWW= https://www.tornadoweb.org/
LICENSE= APACHE20
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
USES= cpe python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}tornado \
${PYTHON_PKGNAMEPREFIX}tornado4 \
diff --git a/www/py-wagtail-2fa/Makefile b/www/py-wagtail-2fa/Makefile
index 539fb901c591..80df48f2d472 100644
--- a/www/py-wagtail-2fa/Makefile
+++ b/www/py-wagtail-2fa/Makefile
@@ -1,6 +1,6 @@
PORTNAME= wagtail-2fa
PORTVERSION= 1.6.9
-PORTREVISION= 1
+PORTREVISION= 3
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,14 +12,16 @@ WWW= https://github.com/labd/wagtail-2fa
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}dj42-django-otp>=0.8.1:www/py-dj42-django-otp@${PY_FLAVOR} \
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django-otp>=0.8.1:www/py-django-otp@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}qrcode>=6.1:textproc/py-qrcode@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}six>=1.14.0:devel/py-six@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}wagtail>=4.1:www/py-wagtail@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-wagtail-airtable/Makefile b/www/py-wagtail-airtable/Makefile
index c09c20d1a4d4..68fee6b53efb 100644
--- a/www/py-wagtail-airtable/Makefile
+++ b/www/py-wagtail-airtable/Makefile
@@ -1,6 +1,6 @@
PORTNAME= wagtail-airtable
PORTVERSION= 0.7.0
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -16,7 +16,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}flit-core>=3.2<4:devel/py-flit-core@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}airtable-python-wrapper>=0.13.0:devel/py-airtable-python-wrapper@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}dj42-djangorestframework>=3.11.0:www/py-dj42-djangorestframework@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}djangorestframework>=3.11.0,1:www/py-djangorestframework@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}wagtail>=5.2:www/py-wagtail@${PY_FLAVOR}
USES= python
diff --git a/www/py-wagtail-bakery/Makefile b/www/py-wagtail-bakery/Makefile
index 13e3fd9c2498..26950905e72b 100644
--- a/www/py-wagtail-bakery/Makefile
+++ b/www/py-wagtail-bakery/Makefile
@@ -1,5 +1,6 @@
PORTNAME= wagtail-bakery
PORTVERSION= 0.8.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,11 +12,13 @@ WWW= https://github.com/wagtail/wagtail-bakery
LICENSE= MIT
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}django-bakery>=0.12.7<0.14:www/py-django-bakery@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}wagtail>=4.1:www/py-wagtail@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-wagtail-factories/Makefile b/www/py-wagtail-factories/Makefile
index b67b1073f46a..0cf4a6aa65e4 100644
--- a/www/py-wagtail-factories/Makefile
+++ b/www/py-wagtail-factories/Makefile
@@ -1,5 +1,6 @@
PORTNAME= wagtail-factories
PORTVERSION= 4.1.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,11 +12,13 @@ WWW= https://github.com/wagtail/wagtail-factories
LICENSE= MIT
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}factory-boy>=3.2:devel/py-factory-boy@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}wagtail>=4.1:www/py-wagtail@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-wagtail/Makefile b/www/py-wagtail/Makefile
index 1e9d18fc9b99..21235be8a311 100644
--- a/www/py-wagtail/Makefile
+++ b/www/py-wagtail/Makefile
@@ -1,5 +1,5 @@
PORTNAME= wagtail
-PORTVERSION= 6.0.2
+PORTVERSION= 6.1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -17,21 +17,20 @@ BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLA
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}anyascii>=0.1.5:textproc/py-anyascii@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}beautifulsoup>=4.8<4.13:www/py-beautifulsoup@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django42>=4.2<6.0:www/py-django42@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}dj42-django-filter>=23.3<24:www/py-dj42-django-filter@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}dj42-django-modelcluster>=6.2.1<7.0:www/py-dj42-django-modelcluster@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}dj42-django-permissionedforms>=0.1<1.0:www/py-dj42-django-permissionedforms@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}dj42-django-taggit>=4.0<5.1:www/py-dj42-django-taggit@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}dj42-django-treebeard>=4.5.1<5.0:www/py-dj42-django-treebeard@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}dj42-djangorestframework>=3.11.1<4.0:www/py-dj42-djangorestframework@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}django-filter>=23.3<25:www/py-django-filter@${PY_FLAVOR} \
+ ${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>=4.0<5.1:www/py-django-taggit@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}django-treebeard>=4.5.1<5.0:www/py-django-treebeard@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}djangorestframework>=3.14.0,1<4.0,1:www/py-djangorestframework@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}draftjs-exporter>=2.1.5<6.0:www/py-draftjs-exporter@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}html5lib>=0.999<2:www/py-html5lib@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}l18n>=2018.5:devel/py-l18n@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}laces>=0.1<0.2:www/py-laces@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}openpyxl>=3.0.10<4.0:textproc/py-openpyxl@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pillow>=9.1.0<11.0.0:graphics/py-pillow@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests>=2.11.1<3.0:www/py-requests@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}telepath>=0.3.1<1:devel/py-telepath@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}willow>=1.6.2<2:graphics/py-willow@${PY_FLAVOR}
+ ${PYTHON_PKGNAMEPREFIX}willow>=1.8.0<2:graphics/py-willow@${PY_FLAVOR}
USES= cpe python shebangfix
USE_PYTHON= autoplist concurrent pep517
diff --git a/www/py-wagtail/distinfo b/www/py-wagtail/distinfo
index e11e47a26c14..933c3c4b8699 100644
--- a/www/py-wagtail/distinfo
+++ b/www/py-wagtail/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1712330631
-SHA256 (wagtail-6.0.2.tar.gz) = e7cfc3c0f53fb302f1798f0e02a7ac6078ab02eb0e8703c0f71ccbd3f18e386f
-SIZE (wagtail-6.0.2.tar.gz) = 6261615
+TIMESTAMP = 1716142150
+SHA256 (wagtail-6.1.tar.gz) = ad33ed1ccad1f9f1b4faba216c6cc92ba1a2dfefdbfd97c23ffbf7db99dd93c5
+SIZE (wagtail-6.1.tar.gz) = 6274765
diff --git a/www/py-wagtail/files/patch-setup.py b/www/py-wagtail/files/patch-setup.py
new file mode 100644
index 000000000000..f79e29b7994e
--- /dev/null
+++ b/www/py-wagtail/files/patch-setup.py
@@ -0,0 +1,11 @@
+--- setup.py.orig 2024-05-01 12:57:48 UTC
++++ setup.py
+@@ -24,7 +24,7 @@ install_requires = [
+ "django-permissionedforms>=0.1,<1.0",
+ "django-taggit>=4.0,<5.1",
+ "django-treebeard>=4.5.1,<5.0",
+- "djangorestframework>=3.15.1,<4.0",
++ "djangorestframework>=3.14.0,<4.0",
+ "django-filter>=23.3,<25",
+ "draftjs_exporter>=2.1.5,<6.0",
+ "Pillow>=9.1.0,<11.0.0",
diff --git a/www/py-webargs/Makefile b/www/py-webargs/Makefile
index 91af6e874ec8..8acd4d16c920 100644
--- a/www/py-webargs/Makefile
+++ b/www/py-webargs/Makefile
@@ -1,5 +1,5 @@
PORTNAME= webargs
-DISTVERSION= 8.3.0
+DISTVERSION= 8.4.0
CATEGORIES= www devel python
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -10,9 +10,10 @@ WWW= https://github.com/marshmallow-code/webargs
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}marshmallow>2.15.2:devel/py-marshmallow@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}marshmallow>2.15.2:devel/py-marshmallow@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}packaging>=0:devel/py-packaging@${PY_FLAVOR}
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}bottle>0:www/py-bottle@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}django*>=1.11.16:www/py-django32@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}django*>=1.11.16:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}falcon>=2.0:www/py-falcon@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}flask>=0.12.2:www/py-flask@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}mock>0:devel/py-mock@${PY_FLAVOR} \
@@ -25,15 +26,12 @@ CPE_VENDOR= ${PORTNAME}_project
USE_GITHUB= yes # tests not packaged with PyPI sdist
GH_ACCOUNT= marshmallow-code
USE_PYTHON= autoplist concurrent distutils pytest
+TEST_ARGS= --ignore-glob='*test_bottleparser*' \
+ --ignore-glob='*test_aiohttpparser*' \
+ --ignore-glob='*test_tornadoparser*'
TEST_ENV= PYTHONPATH=${WRKSRC}/src
NO_ARCH= yes
-do-test:
- cd ${WRKSRC} && ${SETENV} ${TEST_ENV} ${PYTHON_CMD} -m pytest -v -rs -o addopts= \
- --ignore-glob='*test_bottleparser*' \
- --ignore-glob='*test_aiohttpparser*' \
- --ignore-glob="*test_tornadoparser*"
-
.include <bsd.port.mk>
diff --git a/www/py-webargs/distinfo b/www/py-webargs/distinfo
index 8beb9491ccdf..7a8741583e2a 100644
--- a/www/py-webargs/distinfo
+++ b/www/py-webargs/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1692136038
-SHA256 (marshmallow-code-webargs-8.3.0_GH0.tar.gz) = 2bbdd9b546d4e66e7d74e41b34d0b8c630c8e6bb3dca34407b06438a4e3c5561
-SIZE (marshmallow-code-webargs-8.3.0_GH0.tar.gz) = 98608
+TIMESTAMP = 1712450867
+SHA256 (marshmallow-code-webargs-8.4.0_GH0.tar.gz) = c4cfdf7ec564ff5f6b37234d60fbd49e4e49f673d2cfeec5bed4909c84f1f46f
+SIZE (marshmallow-code-webargs-8.4.0_GH0.tar.gz) = 100217
diff --git a/www/py-webtest/Makefile b/www/py-webtest/Makefile
index c5d398a80484..351b97469708 100644
--- a/www/py-webtest/Makefile
+++ b/www/py-webtest/Makefile
@@ -1,5 +1,6 @@
PORTNAME= webtest
PORTVERSION= 3.0.0
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -13,12 +14,14 @@ WWW= https://docs.pylonsproject.org/projects/webtest/en/latest/ \
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/license.rst
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}beautifulsoup>=0:www/py-beautifulsoup@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}waitress>=0.8.5:www/py-waitress@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}webob>=1.2:www/py-webob@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils
+USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-webtest/files/patch-setup.py b/www/py-webtest/files/patch-setup.py
new file mode 100644
index 000000000000..582bfc48b8a7
--- /dev/null
+++ b/www/py-webtest/files/patch-setup.py
@@ -0,0 +1,11 @@
+--- setup.py.orig 2021-08-19 12:39:58 UTC
++++ setup.py
+@@ -26,7 +26,7 @@ docs_extras = [
+ 'Sphinx >= 1.8.1',
+ ]
+
+-setup(name='WebTest',
++setup(name='webtest',
+ version=version,
+ description="Helper to test WSGI applications",
+ long_description=open('README.rst').read(),
diff --git a/www/py-werkzeug/Makefile b/www/py-werkzeug/Makefile
index 18de5509a4a5..946e9b3e6b79 100644
--- a/www/py-werkzeug/Makefile
+++ b/www/py-werkzeug/Makefile
@@ -1,5 +1,5 @@
PORTNAME= werkzeug
-PORTVERSION= 3.0.2
+PORTVERSION= 3.0.3
CATEGORIES= www python
MASTER_SITES= PYPI \
https://github.com/pallets/werkzeug/releases/download/${PORTVERSION}/
@@ -11,7 +11,7 @@ WWW= https://palletsprojects.com/p/werkzeug/ \
https://github.com/pallets/werkzeug
LICENSE= BSD3CLAUSE
-LICENSE_FILE= ${WRKSRC}/LICENSE.rst
+LICENSE_FILE= ${WRKSRC}/LICENSE.txt
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}flit-core>=0<4:devel/py-flit-core@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}markupsafe>=2.1.1:textproc/py-markupsafe@${PY_FLAVOR}
diff --git a/www/py-werkzeug/distinfo b/www/py-werkzeug/distinfo
index ac8db71892ab..c6eb9745639f 100644
--- a/www/py-werkzeug/distinfo
+++ b/www/py-werkzeug/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1712084544
-SHA256 (werkzeug-3.0.2.tar.gz) = e39b645a6ac92822588e7b39a692e7828724ceae0b0d702ef96701f90e70128d
-SIZE (werkzeug-3.0.2.tar.gz) = 802172
+TIMESTAMP = 1715842874
+SHA256 (werkzeug-3.0.3.tar.gz) = 097e5bfda9f0aba8da6b8545146def481d06aa7d3266e7448e2cccf67dd8bd18
+SIZE (werkzeug-3.0.3.tar.gz) = 803342
diff --git a/www/py-werkzeug/files/patch-pyproject.toml b/www/py-werkzeug/files/patch-pyproject.toml
index 2dc9ddef82b5..5c287c3e4d31 100644
--- a/www/py-werkzeug/files/patch-pyproject.toml
+++ b/www/py-werkzeug/files/patch-pyproject.toml
@@ -1,9 +1,9 @@
---- pyproject.toml.orig 2024-04-01 18:51:40 UTC
+--- pyproject.toml.orig 2024-05-05 23:02:12 UTC
+++ pyproject.toml
@@ -1,5 +1,5 @@
[project]
-name = "Werkzeug"
+name = "werkzeug"
- version = "3.0.2"
+ version = "3.0.3"
description = "The comprehensive WSGI web application library."
- readme = "README.rst"
+ readme = "README.md"
diff --git a/www/py-woob/Makefile b/www/py-woob/Makefile
index 2ae7c2497ce1..02fbbd8445e4 100644
--- a/www/py-woob/Makefile
+++ b/www/py-woob/Makefile
@@ -49,7 +49,7 @@ USE_PYTHON= autoplist pep517
NO_ARCH= yes
-OPTIONS_DEFINE= CLICOLOR NSS RTMPDUMP
+OPTIONS_DEFINE= CLICOLOR NSS
OPTIONS_DEFAULT= CLICOLOR NSS
CLICOLOR_DESC= Color command line interface
@@ -58,8 +58,6 @@ CLICOLOR_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}termcolor>0:devel/py-termcolor@${PY
NSS_RUN_DEPENDS= ${LOCALBASE}/share/certs/ca-root-nss.crt:security/ca_root_nss \
${PYTHON_PKGNAMEPREFIX}python-nss>0:security/py-python-nss@${PY_FLAVOR}
-RTMPDUMP_RUN_DEPENDS= rtmpdump:multimedia/rtmpdump
-
post-patch:
@${REINPLACE_CMD} -e 's|/etc/ssl/certs|${LOCALBASE}/etc/ssl|g' ${WRKSRC}/woob/browser/nss.py
diff --git a/www/pydio-cells/Makefile b/www/pydio-cells/Makefile
index 8e743fe59677..5fba2eb79d7d 100644
--- a/www/pydio-cells/Makefile
+++ b/www/pydio-cells/Makefile
@@ -1,7 +1,6 @@
PORTNAME= cells
DISTVERSIONPREFIX= v
-DISTVERSION= 4.4.0
-PORTREVISION= 1
+DISTVERSION= 4.4.1
CATEGORIES= www
PKGNAMEPREFIX= pydio-
diff --git a/www/pydio-cells/distinfo b/www/pydio-cells/distinfo
index a09c58523b64..7c7f1ed17b10 100644
--- a/www/pydio-cells/distinfo
+++ b/www/pydio-cells/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1712349943
-SHA256 (go/www_pydio-cells/cells-v4.4.0/v4.4.0.mod) = 2e2a66b897a4799e446cd27952491a7ebd10240201b8a0c7ee74c84c0bb19728
-SIZE (go/www_pydio-cells/cells-v4.4.0/v4.4.0.mod) = 26396
-SHA256 (go/www_pydio-cells/cells-v4.4.0/v4.4.0.zip) = 266b623c4a2de207e30c14d7be7e40e306ee219f564eb4166d94abb07f7cf48a
-SIZE (go/www_pydio-cells/cells-v4.4.0/v4.4.0.zip) = 58525866
+TIMESTAMP = 1716154668
+SHA256 (go/www_pydio-cells/cells-v4.4.1/v4.4.1.mod) = 55b09485e99b877d05200c8f9607d377f2b51197d255386c127a62200309c517
+SIZE (go/www_pydio-cells/cells-v4.4.1/v4.4.1.mod) = 26396
+SHA256 (go/www_pydio-cells/cells-v4.4.1/v4.4.1.zip) = 4b4615173af20242f8e17620a7c53f87e1ca83ecdfc3d6c9f4de2c781f9d382a
+SIZE (go/www_pydio-cells/cells-v4.4.1/v4.4.1.zip) = 58627491
diff --git a/www/qt5-webengine/Makefile b/www/qt5-webengine/Makefile
index 261a0f2559f3..0f6a5f3dca02 100644
--- a/www/qt5-webengine/Makefile
+++ b/www/qt5-webengine/Makefile
@@ -19,6 +19,7 @@
PORTNAME= webengine
DISTVERSION= ${QT5_VERSION}${QT5_KDE_PATCH}
+PORTREVISION= 2
CATEGORIES= www
PKGNAMEPREFIX= qt5-
diff --git a/www/qt5-webengine/files/patch-security-rollup b/www/qt5-webengine/files/patch-security-rollup
new file mode 100644
index 000000000000..e0554d3d7c61
--- /dev/null
+++ b/www/qt5-webengine/files/patch-security-rollup
@@ -0,0 +1,273 @@
+Add security patches to this file.
+
+Addresses the following security issues:
+
+- Security bug 329674887
+- CVE-2024-3157
+- CVE-2024-3516
+
+From a3580d0a0fc78016093fd96d72f1449589642292 Mon Sep 17 00:00:00 2001
+From: Marco Paniconi <marpan@google.com>
+Date: Wed, 13 Mar 2024 10:58:17 -0700
+Subject: [PATCH] [Backport] Security bug 329674887 (1/2)
+
+Cherry-pick of patch orignally reviewed on
+https://chromium-review.googlesource.com/c/webm/libvpx/+/5370376:
+Fix to buffer alloc for vp9_bitstream_worker_data
+
+The code was using the bitstream_worker_data when it
+wasn't allocated for big enough size. This is because
+the existing condition was to only re-alloc the
+bitstream_worker_data when current dest_size was larger
+than the current frame_size. But under resolution change
+where frame_size is increased, beyond the current dest_size,
+we need to allow re-alloc to the new size.
+
+The existing condition to re-alloc when dest_size is
+larger than frame_size (which is not required) is kept
+for now.
+
+Also increase the dest_size to account for image format.
+
+Added tests, for both ROW_MT=0 and 1, that reproduce
+the failures in the bugs below.
+
+Note: this issue only affects the REALTIME encoding path.
+
+Bug: b/329088759, b/329674887, b/329179808
+
+Change-Id: Icd65dbc5317120304d803f648d4bd9405710db6f
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/554667
+Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
+---
+ .../source/libvpx/vp9/encoder/vp9_bitstream.c | 14 +++++++++++---
+ 1 file changed, 11 insertions(+), 3 deletions(-)
+
+diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c
+index 3eff4ce830d1..22db39714922 100644
+--- src/3rdparty/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c
++++ src/3rdparty/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c
+@@ -963,6 +963,14 @@ void vp9_bitstream_encode_tiles_buffer_dealloc(VP9_COMP *const cpi) {
+ }
+ }
+
++static int encode_tiles_buffer_alloc_size(VP9_COMP *const cpi) {
++ VP9_COMMON *const cm = &cpi->common;
++ const int image_bps =
++ (8 + 2 * (8 >> (cm->subsampling_x + cm->subsampling_y))) *
++ (1 + (cm->bit_depth > 8));
++ return cpi->oxcf.width * cpi->oxcf.height * image_bps / 8;
++}
++
+ static int encode_tiles_buffer_alloc(VP9_COMP *const cpi) {
+ int i;
+ const size_t worker_data_size =
+@@ -972,7 +980,7 @@ static int encode_tiles_buffer_alloc(VP9_COMP *const cpi) {
+ if (!cpi->vp9_bitstream_worker_data) return 1;
+ for (i = 1; i < cpi->num_workers; ++i) {
+ cpi->vp9_bitstream_worker_data[i].dest_size =
+- cpi->oxcf.width * cpi->oxcf.height;
++ encode_tiles_buffer_alloc_size(cpi);
+ cpi->vp9_bitstream_worker_data[i].dest =
+ vpx_malloc(cpi->vp9_bitstream_worker_data[i].dest_size);
+ if (!cpi->vp9_bitstream_worker_data[i].dest) return 1;
+@@ -989,8 +997,8 @@ static size_t encode_tiles_mt(VP9_COMP *cpi, uint8_t *data_ptr) {
+ int tile_col = 0;
+
+ if (!cpi->vp9_bitstream_worker_data ||
+- cpi->vp9_bitstream_worker_data[1].dest_size >
+- (cpi->oxcf.width * cpi->oxcf.height)) {
++ cpi->vp9_bitstream_worker_data[1].dest_size !=
++ encode_tiles_buffer_alloc_size(cpi)) {
+ vp9_bitstream_encode_tiles_buffer_dealloc(cpi);
+ if (encode_tiles_buffer_alloc(cpi)) return 0;
+ }
+From 7c81b9390d837ffbaccb1846db64960b4a79626f Mon Sep 17 00:00:00 2001
+From: Marco Paniconi <marpan@google.com>
+Date: Sat, 16 Mar 2024 10:39:28 -0700
+Subject: [PATCH] [Backport] Security bug 329674887 (2/2)
+
+Cherry-pick of patch originally reviewed on
+https://chromium-review.googlesource.com/c/webm/libvpx/+/5375794:
+vp9: fix to integer overflow test
+
+failure for the 16k test: issue introduced
+in: c29e637283
+
+Bug: b/329088759, b/329674887, b/329179808
+
+Change-Id: I88e8a36b7f13223997c3006c84aec9cfa48c0bcf
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/554668
+Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
+---
+ .../libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c
+index 22db3971492..645ba6ebb3a 100644
+--- src/3rdparty/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c
++++ src/3rdparty/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c
+@@ -968,7 +968,9 @@ static int encode_tiles_buffer_alloc_size(VP9_COMP *const cpi) {
+ const int image_bps =
+ (8 + 2 * (8 >> (cm->subsampling_x + cm->subsampling_y))) *
+ (1 + (cm->bit_depth > 8));
+- return cpi->oxcf.width * cpi->oxcf.height * image_bps / 8;
++ const int64_t size =
++ (int64_t)cpi->oxcf.width * cpi->oxcf.height * image_bps / 8;
++ return (int)size;
+ }
+
+ static int encode_tiles_buffer_alloc(VP9_COMP *const cpi) {
+From 11ecd608320b14500f912e827b5b0eab285b8142 Mon Sep 17 00:00:00 2001
+From: kylechar <kylechar@chromium.org>
+Date: Tue, 9 Apr 2024 17:14:26 +0000
+Subject: [PATCH] [Backport] CVE-2024-3157: Out of bounds write in Compositing
+
+Cherry-pick of patch originally reviewed on
+https://chromium-review.googlesource.com/c/chromium/src/+/5420432:
+Validate buffer length
+
+The BitmapInSharedMemory mojo traits were only validating row length and
+not total buffer length.
+
+(cherry picked from commit 1a19ff70bd54847d818566bd7a1e7c384c419746)
+
+(cherry picked from commit f15315f1cb7897e208947a40d538aac693283d7f)
+
+Bug: 331237485
+Change-Id: Ia2318899c44e9e7ac72fc7183954e6ce2c702179
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5396796
+Commit-Queue: Kyle Charbonneau <kylechar@chromium.org>
+Cr-Original-Original-Commit-Position: refs/heads/main@{#1278417}
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5420432
+Commit-Queue: danakj <danakj@chromium.org>
+Cr-Original-Commit-Position: refs/branch-heads/6312@{#786}
+Cr-Original-Branched-From: 6711dcdae48edaf98cbc6964f90fac85b7d9986e-refs/heads/main@{#1262506}
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5433678
+Reviewed-by: danakj <danakj@chromium.org>
+Reviewed-by: Kyle Charbonneau <kylechar@chromium.org>
+Cr-Commit-Position: refs/branch-heads/6099@{#2003}
+Cr-Branched-From: e6ee4500f7d6549a9ac1354f8d056da49ef406be-refs/heads/main@{#1217362}
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/554669
+Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
+---
+ .../cpp/compositing/bitmap_in_shared_memory_mojom_traits.cc | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/chromium/services/viz/public/cpp/compositing/bitmap_in_shared_memory_mojom_traits.cc b/chromium/services/viz/public/cpp/compositing/bitmap_in_shared_memory_mojom_traits.cc
+index f602fa100477..c6d84002b3e4 100644
+--- src/3rdparty/chromium/services/viz/public/cpp/compositing/bitmap_in_shared_memory_mojom_traits.cc
++++ src/3rdparty/chromium/services/viz/public/cpp/compositing/bitmap_in_shared_memory_mojom_traits.cc
+@@ -69,6 +69,10 @@ bool StructTraits<viz::mojom::BitmapInSharedMemoryDataView, SkBitmap>::Read(
+ if (!mapping_ptr->IsValid())
+ return false;
+
++ if (mapping_ptr->size() < image_info.computeByteSize(data.row_bytes())) {
++ return false;
++ }
++
+ if (!sk_bitmap->installPixels(image_info, mapping_ptr->memory(),
+ data.row_bytes(), &DeleteSharedMemoryMapping,
+ mapping_ptr.get())) {
+From 060d3aa868d6f4403a9416fe34b48ffbfcfe19cb Mon Sep 17 00:00:00 2001
+From: Shahbaz Youssefi <syoussefi@chromium.org>
+Date: Mon, 25 Mar 2024 14:46:56 -0400
+Subject: [PATCH] [Backport] CVE-2024-3516: Heap buffer overflow in ANGLE
+
+Cherry-pick of patch originally reviewed on
+https://chromium-review.googlesource.com/c/angle/angle/+/5391986:
+Translator: Disallow samplers in structs in interface blocks
+
+As disallowed by the spec:
+
+> Types and declarators are the same as for other uniform variable
+> declarations outside blocks, with these exceptions:
+>
+> * opaque types are not allowed
+
+Bug: chromium:328859176
+Change-Id: Ib94977860102329e520e635c3757827c93ca2163
+Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5391986
+Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
+Reviewed-by: Geoff Lang <geofflang@chromium.org>
+Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/554670
+Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
+---
+ .../src/compiler/translator/ParseContext.cpp | 33 ++++++++++++-------
+ 1 file changed, 21 insertions(+), 12 deletions(-)
+
+diff --git a/chromium/third_party/angle/src/compiler/translator/ParseContext.cpp b/chromium/third_party/angle/src/compiler/translator/ParseContext.cpp
+index 84a0c8fd9e0d..3e8a4a71ff67 100644
+--- src/3rdparty/chromium/third_party/angle/src/compiler/translator/ParseContext.cpp
++++ src/3rdparty/chromium/third_party/angle/src/compiler/translator/ParseContext.cpp
+@@ -34,27 +34,39 @@ namespace
+
+ const int kWebGLMaxStructNesting = 4;
+
+-bool ContainsSampler(const TStructure *structType);
++struct IsSamplerFunc
++{
++ bool operator()(TBasicType type) { return IsSampler(type); }
++};
++struct IsOpaqueFunc
++{
++ bool operator()(TBasicType type) { return IsOpaqueType(type); }
++};
++
++template <typename OpaqueFunc>
++bool ContainsOpaque(const TStructure *structType);
+
+-bool ContainsSampler(const TType &type)
++template <typename OpaqueFunc>
++bool ContainsOpaque(const TType &type)
+ {
+- if (IsSampler(type.getBasicType()))
++ if (OpaqueFunc{}(type.getBasicType()))
+ {
+ return true;
+ }
+ if (type.getBasicType() == EbtStruct)
+ {
+- return ContainsSampler(type.getStruct());
++ return ContainsOpaque<OpaqueFunc>(type.getStruct());
+ }
+
+ return false;
+ }
+
+-bool ContainsSampler(const TStructure *structType)
++template <typename OpaqueFunc>
++bool ContainsOpaque(const TStructure *structType)
+ {
+ for (const auto &field : structType->fields())
+ {
+- if (ContainsSampler(*field->type()))
++ if (ContainsOpaque<OpaqueFunc>(*field->type()))
+ return true;
+ }
+ return false;
+@@ -915,7 +927,7 @@ bool TParseContext::checkIsNotOpaqueType(const TSourceLoc &line,
+ {
+ if (pType.type == EbtStruct)
+ {
+- if (ContainsSampler(pType.userDef))
++ if (ContainsOpaque<IsSamplerFunc>(pType.userDef))
+ {
+ std::stringstream reasonStream = sh::InitializeStream<std::stringstream>();
+ reasonStream << reason << " (structure contains a sampler)";
+@@ -3900,12 +3912,9 @@ TIntermDeclaration *TParseContext::addInterfaceBlock(
+ {
+ TField *field = (*fieldList)[memberIndex];
+ TType *fieldType = field->type();
+- if (IsOpaqueType(fieldType->getBasicType()))
++ if (ContainsOpaque<IsOpaqueFunc>(*fieldType))
+ {
+- std::string reason("unsupported type - ");
+- reason += fieldType->getBasicString();
+- reason += " types are not allowed in interface blocks";
+- error(field->line(), reason.c_str(), fieldType->getBasicString());
++ error(field->line(), "Opaque types are not allowed in interface blocks", blockName);
+ }
+
+ const TQualifier qualifier = fieldType->getQualifier();
diff --git a/www/qt5-webengine/files/patch-src_3rdparty_chromium_content_browser_BUILD.gn b/www/qt5-webengine/files/patch-src_3rdparty_chromium_content_browser_BUILD.gn
index f30e7619d0fe..f46db9015e19 100644
--- a/www/qt5-webengine/files/patch-src_3rdparty_chromium_content_browser_BUILD.gn
+++ b/www/qt5-webengine/files/patch-src_3rdparty_chromium_content_browser_BUILD.gn
@@ -1,9 +1,27 @@
---- src/3rdparty/chromium/content/browser/BUILD.gn.orig 2021-12-15 16:12:54 UTC
+--- src/3rdparty/chromium/content/browser/BUILD.gn.orig 2024-03-26 14:47:34 UTC
+++ src/3rdparty/chromium/content/browser/BUILD.gn
-@@ -2090,6 +2090,15 @@ jumbo_static_library("browser") {
+@@ -9,6 +9,7 @@ import("//chromeos/assistant/assistant.gni")
+ import("//build/config/linux/pangocairo/pangocairo.gni")
+ import("//build/config/ui.gni")
+ import("//chromeos/assistant/assistant.gni")
++import("//components/spellcheck/spellcheck_build_features.gni")
+ import("//components/ui_devtools/devtools.gni")
+ import("//content/common/features.gni")
+ import("//content/public/common/zygote/features.gni")
+@@ -166,6 +167,7 @@ jumbo_static_library("browser") {
+ "//components/services/storage/dom_storage:local_storage_proto",
+ "//components/services/storage/public/cpp",
+ "//components/services/storage/public/mojom",
++ "//components/spellcheck:buildflags",
+ "//components/system_media_controls",
+ "//components/tracing:startup_tracing",
+ "//components/ui_devtools",
+@@ -2088,6 +2090,15 @@ jumbo_static_library("browser") {
+ if (is_desktop_linux && enable_web_speech) {
+ sources += [ "speech/tts_linux.cc" ]
deps += [ "//third_party/speech-dispatcher" ]
- }
-
++ }
++
+ if (is_bsd) {
+ sources -= [
+ "sandbox_host_linux.cc",
@@ -11,8 +29,6 @@
+ "sandbox_ipc_linux.cc",
+ "sandbox_ipc_linux.h",
+ ]
-+ }
-+
+ }
+
# ChromeOS also defines linux but their memory-monitors conflict.
- if (is_chromeos) {
- sources += [
diff --git a/www/qt6-httpserver/distinfo b/www/qt6-httpserver/distinfo
index f14fe9dc69fc..3034098790ec 100644
--- a/www/qt6-httpserver/distinfo
+++ b/www/qt6-httpserver/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1711663494
-SHA256 (KDE/Qt/6.6.3/qthttpserver-everywhere-src-6.6.3.tar.xz) = 41ac78d745d00eef1c3866dda5119d3649a64fa08d44d72d89b83aeecde87835
-SIZE (KDE/Qt/6.6.3/qthttpserver-everywhere-src-6.6.3.tar.xz) = 162228
+TIMESTAMP = 1712114591
+SHA256 (KDE/Qt/6.7.0/qthttpserver-everywhere-src-6.7.0.tar.xz) = c2e2e38b2b21537eeef20d097bb5f216081462c44b78d63045e60d6fd9f89bfa
+SIZE (KDE/Qt/6.7.0/qthttpserver-everywhere-src-6.7.0.tar.xz) = 163044
diff --git a/www/qt6-webchannel/distinfo b/www/qt6-webchannel/distinfo
index f0fb96133280..efd443f28aec 100644
--- a/www/qt6-webchannel/distinfo
+++ b/www/qt6-webchannel/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1711663498
-SHA256 (KDE/Qt/6.6.3/qtwebchannel-everywhere-src-6.6.3.tar.xz) = 7c7b2ae5d1b496f76a7ece3ac5728a8d209af4ac7853207dbc01a4982f718c33
-SIZE (KDE/Qt/6.6.3/qtwebchannel-everywhere-src-6.6.3.tar.xz) = 206396
+TIMESTAMP = 1712114594
+SHA256 (KDE/Qt/6.7.0/qtwebchannel-everywhere-src-6.7.0.tar.xz) = 26bfbd404e0c82bfbeeaef81796eb7a7cf931c5c1a5e942a315ca7126322efff
+SIZE (KDE/Qt/6.7.0/qtwebchannel-everywhere-src-6.7.0.tar.xz) = 206600
diff --git a/www/qt6-webengine/Makefile b/www/qt6-webengine/Makefile
index e78bd490a6a5..b6f2d157f127 100644
--- a/www/qt6-webengine/Makefile
+++ b/www/qt6-webengine/Makefile
@@ -101,10 +101,11 @@ DO_MAKE_BUILD= ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_FLAGS} ${MAKEFILE} -j1 $
BINARY_ALIAS= python3=${PYTHON_CMD}
.if !defined(BUILD_QTPDF)
-OPTIONS_DEFINE= CUPS
-OPTIONS_DEFAULT= ALSA CUPS
+OPTIONS_DEFINE= CUPS DRIVER
+OPTIONS_DEFAULT= ALSA CUPS DRIVER
OPTIONS_SINGLE= AUDIO
OPTIONS_SINGLE_AUDIO= ALSA PULSEAUDIO SNDIO
+OPTIONS_SUB= yes
AUDIO_DESC= Audio backend
@@ -122,6 +123,10 @@ CUPS_LIB_DEPENDS= libcups.so:print/cups \
CUPS_CMAKE_ON= -DQT_FEATURE_webengine_printing_and_pdf:BOOL=ON
CUPS_CMAKE_OFF= -DQT_FEATURE_webengine_printing_and_pdf:BOOL=OFF
+DRIVER_DESC= Install WebEngineDriver
+DRIVER_CMAKE_ON= -DQT_FEATURE_webenginedriver:BOOL=ON
+DRIVER_CMAKE_OFF= -DQT_FEATURE_webenginedriver:BOOL=OFF
+
PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
PULSEAUDIO_CMAKE_ON= -DQT_FEATURE_webengine_system_pulseaudio:BOOL=ON
PULSEAUDIO_CMAKE_OFF= -DQT_FEATURE_webengine_system_pulseaudio:BOOL=OFF
@@ -165,4 +170,15 @@ pre-configure:
./build/linux/unbundle/replace_gn_files.py --system-libraries \
${SYS_LIBS} || ${FALSE}
+.if !defined(BUILD_QTPDF)
+post-install:
+# Fix for deskutils/calibre, perhaps others, where this empty directory
+# is created during build causing a fs-violation.
+ ${MKDIR} ${STAGEDIR}${QT_DATADIR}/resources/locales
+
+post-install-DRIVER-on:
+ ${STRIP_CMD} ${STAGEDIR}${QT_TOOLDIR}/webenginedriver
+
+.endif
+
.include <bsd.port.post.mk>
diff --git a/www/qt6-webengine/distinfo b/www/qt6-webengine/distinfo
index f963466e7f5c..a6a5a71622f1 100644
--- a/www/qt6-webengine/distinfo
+++ b/www/qt6-webengine/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1711664649
-SHA256 (KDE/Qt/6.6.3/qtwebengine-everywhere-src-6.6.3.tar.xz) = 7c2bdc83b21b82a179a7bf098df47ebf66ba7693d67ebda55a4a28d9eadad804
-SIZE (KDE/Qt/6.6.3/qtwebengine-everywhere-src-6.6.3.tar.xz) = 421076320
+TIMESTAMP = 1712115499
+SHA256 (KDE/Qt/6.7.0/qtwebengine-everywhere-src-6.7.0.tar.xz) = 1a5ba443635dc1f439ab802ac6d761b8def5ebb24e5219bb7289288e72c147de
+SIZE (KDE/Qt/6.7.0/qtwebengine-everywhere-src-6.7.0.tar.xz) = 550907592
diff --git a/www/qt6-webengine/files/patch-cmake_Functions.cmake b/www/qt6-webengine/files/patch-cmake_Functions.cmake
index 7dcc0eee40f7..e4c938996ef3 100644
--- a/www/qt6-webengine/files/patch-cmake_Functions.cmake
+++ b/www/qt6-webengine/files/patch-cmake_Functions.cmake
@@ -1,4 +1,4 @@
---- cmake/Functions.cmake.orig 2024-02-10 00:23:21 UTC
+--- cmake/Functions.cmake.orig 2024-02-10 00:27:53 UTC
+++ cmake/Functions.cmake
@@ -416,7 +416,7 @@ function(add_linker_options target buildDir completeSt
set(libs_rsp "${buildDir}/${ninjaTarget}_libs.rsp")
@@ -9,7 +9,7 @@
get_gn_arch(cpu ${TEST_architecture_arch})
if(CMAKE_CROSSCOMPILING AND cpu STREQUAL "arm" AND ${config} STREQUAL "Debug")
target_link_options(${cmakeTarget} PRIVATE "LINKER:--long-plt")
-@@ -673,6 +673,8 @@ function(get_gn_os result)
+@@ -675,6 +675,8 @@ function(get_gn_os result)
set(${result} "mac" PARENT_SCOPE)
elseif(IOS)
set(${result} "ios" PARENT_SCOPE)
@@ -18,7 +18,7 @@
else()
message(DEBUG "Unrecognized OS")
endif()
-@@ -865,7 +867,7 @@ macro(append_build_type_setup)
+@@ -878,7 +880,7 @@ macro(append_build_type_setup)
extend_gn_list(gnArgArg
ARGS enable_precompiled_headers
@@ -27,7 +27,7 @@
)
extend_gn_list(gnArgArg
ARGS dcheck_always_on
-@@ -917,7 +919,7 @@ macro(append_compiler_linker_sdk_setup)
+@@ -932,7 +934,7 @@ macro(append_compiler_linker_sdk_setup)
use_libcxx=true
)
endif()
@@ -36,7 +36,7 @@
extend_gn_list(gnArgArg ARGS use_libcxx
CONDITION QT_FEATURE_stdlib_libcpp
)
-@@ -955,7 +957,7 @@ macro(append_compiler_linker_sdk_setup)
+@@ -970,7 +972,7 @@ macro(append_compiler_linker_sdk_setup)
)
endif()
get_gn_arch(cpu ${TEST_architecture_arch})
@@ -45,7 +45,7 @@
extend_gn_list_cflag(gnArgArg
ARG arm_tune
-@@ -1040,7 +1042,7 @@ macro(append_toolchain_setup)
+@@ -1060,7 +1062,7 @@ macro(append_toolchain_setup)
host_cpu="${cpu}"
)
endif()
@@ -54,16 +54,7 @@
get_gn_arch(cpu ${TEST_architecture_arch})
list(APPEND gnArgArg
custom_toolchain="${buildDir}/target_toolchain:target"
-@@ -1073,7 +1075,7 @@ macro(append_pkg_config_setup)
-
-
- macro(append_pkg_config_setup)
-- if(LINUX)
-+ if(LINUX OR FREEBSD)
- list(APPEND gnArgArg
- pkg_config="${PKG_CONFIG_EXECUTABLE}"
- host_pkg_config="${PKG_CONFIG_HOST_EXECUTABLE}"
-@@ -1166,6 +1168,20 @@ function(add_gn_build_artifacts_to_target)
+@@ -1198,6 +1200,20 @@ function(add_gn_build_artifacts_to_target)
set_target_properties(${arg_CMAKE_TARGET} PROPERTIES
LINK_DEPENDS ${arg_BUILDDIR}/${config}/${arch}/${arg_NINJA_STAMP}
)
@@ -84,7 +75,7 @@
if(QT_IS_MACOS_UNIVERSAL)
add_intermediate_archive(${target} ${arg_BUILDDIR}/${config}/${arch} ${arg_COMPLETE_STATIC})
elseif(IOS)
-@@ -1283,7 +1299,7 @@ function(check_for_ulimit)
+@@ -1313,7 +1329,7 @@ function(check_for_ulimit)
function(check_for_ulimit)
message("-- Checking 'ulimit -n'")
@@ -93,7 +84,7 @@
OUTPUT_VARIABLE ulimitOutput
)
string(REGEX MATCHALL "[0-9]+" limit "${ulimitOutput}")
-@@ -1292,7 +1308,7 @@ function(check_for_ulimit)
+@@ -1322,7 +1338,7 @@ function(check_for_ulimit)
if(NOT ${CMAKE_VERSION} VERSION_LESS "3.21.0")
message(" -- Creating linker launcher")
file(GENERATE OUTPUT ${PROJECT_BINARY_DIR}/linker_ulimit.sh
diff --git a/www/qt6-webengine/files/patch-configure.cmake b/www/qt6-webengine/files/patch-configure.cmake
index ff2e426fbc47..7fdd8b60d800 100644
--- a/www/qt6-webengine/files/patch-configure.cmake
+++ b/www/qt6-webengine/files/patch-configure.cmake
@@ -1,6 +1,6 @@
---- configure.cmake.orig 2024-02-10 00:23:21 UTC
+--- configure.cmake.orig 2023-12-12 22:08:45 UTC
+++ configure.cmake
-@@ -67,7 +67,7 @@ endif()
+@@ -68,7 +68,7 @@ endif()
endif()
#### Tests
@@ -9,7 +9,7 @@
check_for_ulimit()
endif()
-@@ -427,7 +427,7 @@ qt_feature("webengine-ozone-x11" PRIVATE
+@@ -428,7 +428,7 @@ qt_feature("webengine-ozone-x11" PRIVATE
qt_feature("webengine-ozone-x11" PRIVATE
LABEL "Support GLX on qpa-xcb"
@@ -18,7 +18,7 @@
AND TARGET Qt::Gui
AND QT_FEATURE_xcb
AND X11_FOUND
-@@ -464,12 +464,12 @@ add_check_for_support(
+@@ -465,12 +465,12 @@ add_check_for_support(
)
add_check_for_support(
MODULES QtWebEngine
@@ -28,9 +28,9 @@
)
add_check_for_support(
MODULES QtPdf
-- CONDITION LINUX OR (WIN32 AND NOT WIN_ARM_64) OR MACOS OR IOS OR (ANDROID AND NOT CMAKE_HOST_WIN32)
-+ CONDITION LINUX OR (WIN32 AND NOT WIN_ARM_64) OR MACOS OR IOS OR (ANDROID AND NOT CMAKE_HOST_WIN32) OR FREEBSD
- MESSAGE "Build can be done only on Linux, Windows, macO, iOS and Android(on non-Windows hosts only)."
+- CONDITION LINUX OR (WIN32 AND NOT WIN_ARM_64) OR MACOS OR IOS OR ANDROID
++ CONDITION LINUX OR (WIN32 AND NOT WIN_ARM_64) OR MACOS OR IOS OR ANDROID OR FREEBSD
+ MESSAGE "Build can be done only on Linux, Windows, macO, iOS and Android."
)
if(LINUX AND CMAKE_CROSSCOMPILING)
@@ -492,13 +492,6 @@ add_check_for_support(
diff --git a/www/qt6-webengine/files/patch-security-rollup b/www/qt6-webengine/files/patch-security-rollup
index cc5eefd44e79..a3d1a6bc69d2 100644
--- a/www/qt6-webengine/files/patch-security-rollup
+++ b/www/qt6-webengine/files/patch-security-rollup
@@ -3,6 +3,34 @@ Add security patches to this file.
Addresses the following security issues:
- CVE-2023-7104
+- CVE-2024-2625
+- CVE-2024-2626
+- Security bug 40066823
+- Security bug 41495984
+- CVE-2024-2885
+- CVE-2024-2887
+- Security bug 329674887
+- Security bug 327183408
+- CVE-2024-3159
+- Security bug 326349405
+- CVE-2024-3157
+- CVE-2024-3516
+- Security bug 326521449
+- CVE-2024-3839
+- CVE-2024-3837
+- Security bug 327698060
+- Security bug 40940917
+- CVE-2024-3914
+- Security bug 326498393
+- CVE-2024-3840
+- Security bug 323898565
+- CVE-2024-4058
+- CVE-2024-4060
+- Security bug 332724843
+- CVE-2024-4331
+- CVE-2024-4368
+- CVE-2024-4671
+- Security bug 339458194
From b8c9622b71d032a48412e342cff91fc0f3f5e3d9 Mon Sep 17 00:00:00 2001
From: Michal Klocek <michal.klocek@qt.io>
@@ -56,3 +84,6008 @@ index b353aa88348..a0feb5d200c 100644
}
}
}
+From a907a6cbc18a04d791b0c97918a558d49f696cd4 Mon Sep 17 00:00:00 2001
+From: Shu-yu Guo <syg@chromium.org>
+Date: Thu, 7 Mar 2024 14:55:28 -0800
+Subject: [PATCH] [Backport] CVE-2024-2625: Object lifecycle issue in V8
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Manual cherry-pick of patch originally reviewed on
+https://chromium-review.googlesource.com/c/v8/v8/+/5350482:
+Fix home object proxy to work off-thread
+
+Because the home object has special scope lookup rules due to class
+heritage position, VariableProxies of the home object are currently
+directly created on the correct scope during parsing. However, during
+off-thread parsing the main thread is parked, and the correct scope
+may try to dereference a main-thread Handle.
+
+This CL moves the logic into ResolveVariable instead, which happens
+during postprocessing, with the main thread unparked.
+
+Fixed: chromium:327740539
+Change-Id: I3a123d5e37b6764067e58255dd5a67c07e648d02
+Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5350482
+Reviewed-by: Marja H旦ltt辰 <marja@chromium.org>
+Commit-Queue: Marja H旦ltt辰 <marja@chromium.org>
+Auto-Submit: Shu-yu Guo <syg@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#92722}
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/551089
+Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
+---
+ chromium/v8/src/ast/ast.h | 10 +++-
+ chromium/v8/src/ast/scopes.cc | 78 ++++++++++++---------------
+ chromium/v8/src/ast/scopes.h | 7 +--
+ chromium/v8/src/parsing/parser-base.h | 4 +-
+ chromium/v8/src/parsing/parser.cc | 11 ++--
+ chromium/v8/src/parsing/parser.h | 2 +-
+ chromium/v8/src/parsing/preparser.h | 3 +-
+ 7 files changed, 52 insertions(+), 63 deletions(-)
+
+diff --git a/chromium/v8/src/ast/ast.h b/chromium/v8/src/ast/ast.h
+index cf9d52eeed6..7bb30723607 100644
+--- src/3rdparty/chromium/v8/src/ast/ast.h
++++ src/3rdparty/chromium/v8/src/ast/ast.h
+@@ -1534,6 +1534,12 @@ class VariableProxy final : public Expression {
+ bit_field_ = IsRemovedFromUnresolvedField::update(bit_field_, true);
+ }
+
++ bool is_home_object() const { return IsHomeObjectField::decode(bit_field_); }
++
++ void set_is_home_object() {
++ bit_field_ = IsHomeObjectField::update(bit_field_, true);
++ }
++
+ // Provides filtered access to the unresolved variable proxy threaded list.
+ struct UnresolvedNext {
+ static VariableProxy** filter(VariableProxy** t) {
+@@ -1565,6 +1571,7 @@ class VariableProxy final : public Expression {
+ bit_field_ |= IsAssignedField::encode(false) |
+ IsResolvedField::encode(false) |
+ IsRemovedFromUnresolvedField::encode(false) |
++ IsHomeObjectField::encode(false) |
+ HoleCheckModeField::encode(HoleCheckMode::kElided);
+ }
+
+@@ -1574,7 +1581,8 @@ class VariableProxy final : public Expression {
+ using IsResolvedField = IsAssignedField::Next<bool, 1>;
+ using IsRemovedFromUnresolvedField = IsResolvedField::Next<bool, 1>;
+ using IsNewTargetField = IsRemovedFromUnresolvedField::Next<bool, 1>;
+- using HoleCheckModeField = IsNewTargetField::Next<HoleCheckMode, 1>;
++ using IsHomeObjectField = IsNewTargetField::Next<bool, 1>;
++ using HoleCheckModeField = IsHomeObjectField::Next<HoleCheckMode, 1>;
+
+ union {
+ const AstRawString* raw_name_; // if !is_resolved_
+diff --git a/chromium/v8/src/ast/scopes.cc b/chromium/v8/src/ast/scopes.cc
+index 003bd0f2736..34415941556 100644
+--- src/3rdparty/chromium/v8/src/ast/scopes.cc
++++ src/3rdparty/chromium/v8/src/ast/scopes.cc
+@@ -491,7 +491,6 @@ Scope* Scope::DeserializeScopeChain(IsolateT* isolate, Zone* zone,
+ if (cache_scope_found) {
+ outer_scope->set_deserialized_scope_uses_external_cache();
+ } else {
+- DCHECK(!cache_scope_found);
+ cache_scope_found =
+ outer_scope->is_declaration_scope() && !outer_scope->is_eval_scope();
+ }
+@@ -970,9 +969,14 @@ Variable* Scope::LookupInScopeInfo(const AstRawString* name, Scope* cache) {
+ DCHECK(!cache->deserialized_scope_uses_external_cache());
+ // The case where where the cache can be another scope is when the cache scope
+ // is the last scope that doesn't use an external cache.
++ //
++ // The one exception to this is when looking up the home object, which may
++ // skip multiple scopes that don't use an external cache (e.g., several arrow
++ // functions).
+ DCHECK_IMPLIES(
+ cache != this,
+- cache->outer_scope()->deserialized_scope_uses_external_cache());
++ cache->outer_scope()->deserialized_scope_uses_external_cache() ||
++ cache->GetHomeObjectScope() == this);
+ DCHECK_NULL(cache->variables_.Lookup(name));
+ DisallowGarbageCollection no_gc;
+
+@@ -2282,7 +2286,33 @@ Variable* Scope::LookupSloppyEval(VariableProxy* proxy, Scope* scope,
+
+ void Scope::ResolveVariable(VariableProxy* proxy) {
+ DCHECK(!proxy->is_resolved());
+- Variable* var = Lookup<kParsedScope>(proxy, this, nullptr);
++ Variable* var;
++ if (V8_UNLIKELY(proxy->is_home_object())) {
++ // VariableProxies of the home object cannot be resolved like a normal
++ // variable. Consider the case of a super.property usage in heritage
++ // position:
++ //
++ // class C extends super.foo { m() { super.bar(); } }
++ //
++ // The super.foo property access is logically nested under C's class scope,
++ // which also has a home object due to its own method m's usage of
++ // super.bar(). However, super.foo must resolve super in C's outer scope.
++ //
++ // Because of the above, start resolving home objects directly at the home
++ // object scope instead of the current scope.
++ Scope* scope = GetDeclarationScope()->GetHomeObjectScope();
++ DCHECK_NOT_NULL(scope);
++ if (scope->scope_info_.is_null()) {
++ var = Lookup<kParsedScope>(proxy, scope, nullptr);
++ } else {
++ Scope* entry_cache = scope->deserialized_scope_uses_external_cache()
++ ? GetNonEvalDeclarationScope()
++ : scope;
++ var = Lookup<kDeserializedScope>(proxy, scope, nullptr, entry_cache);
++ }
++ } else {
++ var = Lookup<kParsedScope>(proxy, this, nullptr);
++ }
+ DCHECK_NOT_NULL(var);
+ ResolveTo(proxy, var);
+ }
+@@ -2752,48 +2782,6 @@ int Scope::ContextLocalCount() const {
+ (is_function_var_in_context ? 1 : 0);
+ }
+
+-VariableProxy* Scope::NewHomeObjectVariableProxy(AstNodeFactory* factory,
+- const AstRawString* name,
+- int start_pos) {
+- // VariableProxies of the home object cannot be resolved like a normal
+- // variable. Consider the case of a super.property usage in heritage position:
+- //
+- // class C extends super.foo { m() { super.bar(); } }
+- //
+- // The super.foo property access is logically nested under C's class scope,
+- // which also has a home object due to its own method m's usage of
+- // super.bar(). However, super.foo must resolve super in C's outer scope.
+- //
+- // Because of the above, home object VariableProxies are always made directly
+- // on the Scope that needs the home object instead of the innermost scope.
+- DCHECK(needs_home_object());
+- if (!scope_info_.is_null()) {
+- // This is a lazy compile, so the home object's context slot is already
+- // known.
+- Variable* home_object = variables_.Lookup(name);
+- if (home_object == nullptr) {
+- VariableLookupResult lookup_result;
+- int index = scope_info_->ContextSlotIndex(name->string(), &lookup_result);
+- DCHECK_GE(index, 0);
+- bool was_added;
+- home_object = variables_.Declare(zone(), this, name, lookup_result.mode,
+- NORMAL_VARIABLE, lookup_result.init_flag,
+- lookup_result.maybe_assigned_flag,
+- IsStaticFlag::kNotStatic, &was_added);
+- DCHECK(was_added);
+- home_object->AllocateTo(VariableLocation::CONTEXT, index);
+- }
+- return factory->NewVariableProxy(home_object, start_pos);
+- }
+- // This is not a lazy compile. Add the unresolved home object VariableProxy to
+- // the unresolved list of the home object scope, which is not necessarily the
+- // innermost scope.
+- VariableProxy* proxy =
+- factory->NewVariableProxy(name, NORMAL_VARIABLE, start_pos);
+- AddUnresolved(proxy);
+- return proxy;
+-}
+-
+ bool IsComplementaryAccessorPair(VariableMode a, VariableMode b) {
+ switch (a) {
+ case VariableMode::kPrivateGetterOnly:
+diff --git a/chromium/v8/src/ast/scopes.h b/chromium/v8/src/ast/scopes.h
+index b4c2e8b2136..751aaee3d11 100644
+--- src/3rdparty/chromium/v8/src/ast/scopes.h
++++ src/3rdparty/chromium/v8/src/ast/scopes.h
+@@ -603,10 +603,6 @@ class V8_EXPORT_PRIVATE Scope : public NON_EXPORTED_BASE(ZoneObject) {
+ needs_home_object_ = true;
+ }
+
+- VariableProxy* NewHomeObjectVariableProxy(AstNodeFactory* factory,
+- const AstRawString* name,
+- int start_pos);
+-
+ bool RemoveInnerScope(Scope* inner_scope) {
+ DCHECK_NOT_NULL(inner_scope);
+ if (inner_scope == inner_scope_) {
+@@ -865,7 +861,7 @@ class V8_EXPORT_PRIVATE DeclarationScope : public Scope {
+ FunctionKind function_kind() const { return function_kind_; }
+
+ // Inform the scope that the corresponding code uses "super".
+- Scope* RecordSuperPropertyUsage() {
++ void RecordSuperPropertyUsage() {
+ DCHECK(IsConciseMethod(function_kind()) ||
+ IsAccessorFunction(function_kind()) ||
+ IsClassConstructor(function_kind()));
+@@ -873,7 +869,6 @@ class V8_EXPORT_PRIVATE DeclarationScope : public Scope {
+ Scope* home_object_scope = GetHomeObjectScope();
+ DCHECK_NOT_NULL(home_object_scope);
+ home_object_scope->set_needs_home_object();
+- return home_object_scope;
+ }
+
+ bool uses_super_property() const { return uses_super_property_; }
+diff --git a/chromium/v8/src/parsing/parser-base.h b/chromium/v8/src/parsing/parser-base.h
+index 66e531dfe78..714406f6aa5 100644
+--- src/3rdparty/chromium/v8/src/parsing/parser-base.h
++++ src/3rdparty/chromium/v8/src/parsing/parser-base.h
+@@ -3800,9 +3800,9 @@ ParserBase<Impl>::ParseSuperExpression() {
+ impl()->ReportMessage(MessageTemplate::kOptionalChainingNoSuper);
+ return impl()->FailureExpression();
+ }
+- Scope* home_object_scope = scope->RecordSuperPropertyUsage();
++ scope->RecordSuperPropertyUsage();
+ UseThis();
+- return impl()->NewSuperPropertyReference(home_object_scope, pos);
++ return impl()->NewSuperPropertyReference(pos);
+ }
+ // super() is only allowed in derived constructor. new super() is never
+ // allowed; it's reported as an error by
+diff --git a/chromium/v8/src/parsing/parser.cc b/chromium/v8/src/parsing/parser.cc
+index da16f85234d..5e4b2d0461a 100644
+--- src/3rdparty/chromium/v8/src/parsing/parser.cc
++++ src/3rdparty/chromium/v8/src/parsing/parser.cc
+@@ -300,18 +300,17 @@ Expression* Parser::NewThrowError(Runtime::FunctionId id,
+ return factory()->NewThrow(call_constructor, pos);
+ }
+
+-Expression* Parser::NewSuperPropertyReference(Scope* home_object_scope,
+- int pos) {
++Expression* Parser::NewSuperPropertyReference(int pos) {
+ const AstRawString* home_object_name;
+ if (IsStatic(scope()->GetReceiverScope()->function_kind())) {
+ home_object_name = ast_value_factory_->dot_static_home_object_string();
+ } else {
+ home_object_name = ast_value_factory_->dot_home_object_string();
+ }
+- return factory()->NewSuperPropertyReference(
+- home_object_scope->NewHomeObjectVariableProxy(factory(), home_object_name,
+- pos),
+- pos);
++
++ VariableProxy* proxy = NewUnresolved(home_object_name, pos);
++ proxy->set_is_home_object();
++ return factory()->NewSuperPropertyReference(proxy, pos);
+ }
+
+ Expression* Parser::NewSuperCallReference(int pos) {
+diff --git a/chromium/v8/src/parsing/parser.h b/chromium/v8/src/parsing/parser.h
+index 8aede5d6a2c..0e92f0350b5 100644
+--- src/3rdparty/chromium/v8/src/parsing/parser.h
++++ src/3rdparty/chromium/v8/src/parsing/parser.h
+@@ -798,7 +798,7 @@ class V8_EXPORT_PRIVATE Parser : public NON_EXPORTED_BASE(ParserBase<Parser>) {
+ return factory()->NewThisExpression(pos);
+ }
+
+- Expression* NewSuperPropertyReference(Scope* home_object_scope, int pos);
++ Expression* NewSuperPropertyReference(int pos);
+ Expression* NewSuperCallReference(int pos);
+ Expression* NewTargetExpression(int pos);
+ Expression* ImportMetaExpression(int pos);
+diff --git a/chromium/v8/src/parsing/preparser.h b/chromium/v8/src/parsing/preparser.h
+index 6c4996bd06b..2ca6b9ac407 100644
+--- src/3rdparty/chromium/v8/src/parsing/preparser.h
++++ src/3rdparty/chromium/v8/src/parsing/preparser.h
+@@ -1536,8 +1536,7 @@ class PreParser : public ParserBase<PreParser> {
+ return PreParserExpression::This();
+ }
+
+- V8_INLINE PreParserExpression
+- NewSuperPropertyReference(Scope* home_object_scope, int pos) {
++ V8_INLINE PreParserExpression NewSuperPropertyReference(int pos) {
+ return PreParserExpression::Default();
+ }
+
+From c4661dc646e45d06961cda71d00814ce878dbd97 Mon Sep 17 00:00:00 2001
+From: Shahbaz Youssefi <syoussefi@google.com>
+Date: Fri, 19 Jan 2024 15:36:25 -0500
+Subject: [PATCH] [Backport] CVE-2024-2626: Out of bounds read in Swiftshader
+ (1/2)
+
+Cherry-pick of patch originally reviewed on
+https://swiftshader-review.googlesource.com/c/SwiftShader/+/72948:
+Clamp LOD during image Fetch for robustness
+
+Bug: chromium:1504556
+Change-Id: Ie110fe4e1b065a815c09986ab91b1336ef4761ad
+Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/72948
+Presubmit-Ready: Shahbaz Youssefi <syoussefi@google.com>
+Kokoro-Result: kokoro <noreply+kokoro@google.com>
+Reviewed-by: Ben Clayton <bclayton@google.com>
+Commit-Queue: Ben Clayton <bclayton@google.com>
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/551090
+Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
+---
+ .../third_party/swiftshader/src/Pipeline/SamplerCore.cpp | 1 +
+ .../swiftshader/src/Pipeline/SpirvShaderSampling.cpp | 5 +++++
+ chromium/third_party/swiftshader/src/Vulkan/VkImageView.cpp | 6 ++++--
+ chromium/third_party/swiftshader/src/Vulkan/VkImageView.hpp | 3 +++
+ 4 files changed, 13 insertions(+), 2 deletions(-)
+
+diff --git a/chromium/third_party/swiftshader/src/Pipeline/SamplerCore.cpp b/chromium/third_party/swiftshader/src/Pipeline/SamplerCore.cpp
+index 403ed3bdd560..d62936273fa3 100644
+--- src/3rdparty/chromium/third_party/swiftshader/src/Pipeline/SamplerCore.cpp
++++ src/3rdparty/chromium/third_party/swiftshader/src/Pipeline/SamplerCore.cpp
+@@ -133,6 +133,7 @@ Vector4f SamplerCore::sampleTexture128(Pointer<Byte> &texture, Float4 uvwa[4], c
+ {
+ // TODO: Eliminate int-float-int conversion.
+ lod = Float(As<Int>(lodOrBias));
++ lod = Min(lod, state.maxLod);
+ }
+ else if(function == Base || function == Gather)
+ {
+diff --git a/chromium/third_party/swiftshader/src/Pipeline/SpirvShaderSampling.cpp b/chromium/third_party/swiftshader/src/Pipeline/SpirvShaderSampling.cpp
+index 5225a79f3ba6..777f73e43786 100644
+--- src/3rdparty/chromium/third_party/swiftshader/src/Pipeline/SpirvShaderSampling.cpp
++++ src/3rdparty/chromium/third_party/swiftshader/src/Pipeline/SpirvShaderSampling.cpp
+@@ -108,6 +108,11 @@ SpirvEmitter::ImageSampler *SpirvEmitter::getImageSampler(const vk::Device *devi
+ samplerState.minLod = 0.0f;
+ samplerState.maxLod = 0.0f;
+ }
++ // Otherwise make sure LOD is clamped for robustness
++ else
++ {
++ samplerState.maxLod = imageViewState.maxLod;
++ }
+ }
+ else if(samplerMethod == Write)
+ {
+diff --git a/chromium/third_party/swiftshader/src/Vulkan/VkImageView.cpp b/chromium/third_party/swiftshader/src/Vulkan/VkImageView.cpp
+index 511c02cbbed9..26b69aef79b3 100644
+--- src/3rdparty/chromium/third_party/swiftshader/src/Vulkan/VkImageView.cpp
++++ src/3rdparty/chromium/third_party/swiftshader/src/Vulkan/VkImageView.cpp
+@@ -89,13 +89,13 @@ Identifier::Identifier(const VkImageViewCreateInfo *pCreateInfo)
+ const Image *sampledImage = image->getSampledImage(viewFormat);
+
+ vk::Format samplingFormat = (image == sampledImage) ? viewFormat : sampledImage->getFormat().getAspectFormat(subresource.aspectMask);
+- pack({ pCreateInfo->viewType, samplingFormat, ResolveComponentMapping(pCreateInfo->components, viewFormat), subresource.levelCount <= 1u });
++ pack({ pCreateInfo->viewType, samplingFormat, ResolveComponentMapping(pCreateInfo->components, viewFormat), static_cast<uint8_t>(subresource.baseMipLevel + subresource.levelCount), subresource.levelCount <= 1u });
+ }
+
+ Identifier::Identifier(VkFormat bufferFormat)
+ {
+ constexpr VkComponentMapping identityMapping = { VK_COMPONENT_SWIZZLE_R, VK_COMPONENT_SWIZZLE_G, VK_COMPONENT_SWIZZLE_B, VK_COMPONENT_SWIZZLE_A };
+- pack({ VK_IMAGE_VIEW_TYPE_1D, bufferFormat, ResolveComponentMapping(identityMapping, bufferFormat), true });
++ pack({ VK_IMAGE_VIEW_TYPE_1D, bufferFormat, ResolveComponentMapping(identityMapping, bufferFormat), 1, true });
+ }
+
+ void Identifier::pack(const State &state)
+@@ -106,6 +106,7 @@ void Identifier::pack(const State &state)
+ g = static_cast<uint32_t>(state.mapping.g);
+ b = static_cast<uint32_t>(state.mapping.b);
+ a = static_cast<uint32_t>(state.mapping.a);
++ maxLod = state.maxLod;
+ singleMipLevel = state.singleMipLevel;
+ }
+
+@@ -117,6 +118,7 @@ Identifier::State Identifier::getState() const
+ static_cast<VkComponentSwizzle>(g),
+ static_cast<VkComponentSwizzle>(b),
+ static_cast<VkComponentSwizzle>(a) },
++ static_cast<uint8_t>(maxLod),
+ static_cast<bool>(singleMipLevel) };
+ }
+
+diff --git a/chromium/third_party/swiftshader/src/Vulkan/VkImageView.hpp b/chromium/third_party/swiftshader/src/Vulkan/VkImageView.hpp
+index bf4d666a425d..5acb89639c12 100644
+--- src/3rdparty/chromium/third_party/swiftshader/src/Vulkan/VkImageView.hpp
++++ src/3rdparty/chromium/third_party/swiftshader/src/Vulkan/VkImageView.hpp
+@@ -53,6 +53,7 @@ union Identifier
+ VkImageViewType imageViewType;
+ VkFormat format;
+ VkComponentMapping mapping;
++ uint8_t maxLod;
+ bool singleMipLevel;
+ };
+ State getState() const;
+@@ -61,6 +62,7 @@ union Identifier
+ void pack(const State &data);
+
+ // Identifier is a union of this struct and the integer below.
++ static_assert(sw::MIPMAP_LEVELS <= 15);
+ struct
+ {
+ uint32_t imageViewType : 3;
+@@ -69,6 +71,7 @@ union Identifier
+ uint32_t g : 3;
+ uint32_t b : 3;
+ uint32_t a : 3;
++ uint32_t maxLod : 4;
+ uint32_t singleMipLevel : 1;
+ };
+
+From a58826b55d30045bed8793dbcd20dc32a73716e2 Mon Sep 17 00:00:00 2001
+From: Shahbaz Youssefi <syoussefi@google.com>
+Date: Mon, 22 Jan 2024 09:49:16 -0500
+Subject: [PATCH] [Backport] CVE-2024-2626: Out of bounds read in Swiftshader
+ (2/2)
+
+Cherry-pick of patch originally reviewed on
+https://swiftshader-review.googlesource.com/c/SwiftShader/+/72968:
+Clamp min LOD during image Fetch for robustness
+
+The previous change clamped max LOD only, but min LOD also needs
+clamping because texelFetch takes an `int` as LOD instead of `uint`.
+
+Bug: chromium:1504556
+Change-Id: Ibae8250a877b3e04b71fac45a40b77c78756d6c8
+Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/72968
+Kokoro-Result: kokoro <noreply+kokoro@google.com>
+Reviewed-by: Ben Clayton <bclayton@google.com>
+Commit-Queue: Shahbaz Youssefi <syoussefi@google.com>
+Presubmit-Ready: Shahbaz Youssefi <syoussefi@google.com>
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/551091
+Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
+---
+ .../third_party/swiftshader/src/Pipeline/SamplerCore.cpp | 1 +
+ .../swiftshader/src/Pipeline/SpirvShaderSampling.cpp | 1 +
+ .../third_party/swiftshader/src/Vulkan/VkImageView.cpp | 8 ++++++--
+ .../third_party/swiftshader/src/Vulkan/VkImageView.hpp | 2 ++
+ 4 files changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/chromium/third_party/swiftshader/src/Pipeline/SamplerCore.cpp b/chromium/third_party/swiftshader/src/Pipeline/SamplerCore.cpp
+index d62936273fa..ab55c036a3f 100644
+--- src/3rdparty/chromium/third_party/swiftshader/src/Pipeline/SamplerCore.cpp
++++ src/3rdparty/chromium/third_party/swiftshader/src/Pipeline/SamplerCore.cpp
+@@ -133,6 +133,7 @@ Vector4f SamplerCore::sampleTexture128(Pointer<Byte> &texture, Float4 uvwa[4], c
+ {
+ // TODO: Eliminate int-float-int conversion.
+ lod = Float(As<Int>(lodOrBias));
++ lod = Max(lod, state.minLod);
+ lod = Min(lod, state.maxLod);
+ }
+ else if(function == Base || function == Gather)
+diff --git a/chromium/third_party/swiftshader/src/Pipeline/SpirvShaderSampling.cpp b/chromium/third_party/swiftshader/src/Pipeline/SpirvShaderSampling.cpp
+index 777f73e4378..fa88a192ab5 100644
+--- src/3rdparty/chromium/third_party/swiftshader/src/Pipeline/SpirvShaderSampling.cpp
++++ src/3rdparty/chromium/third_party/swiftshader/src/Pipeline/SpirvShaderSampling.cpp
+@@ -111,6 +111,7 @@ SpirvEmitter::ImageSampler *SpirvEmitter::getImageSampler(const vk::Device *devi
+ // Otherwise make sure LOD is clamped for robustness
+ else
+ {
++ samplerState.minLod = imageViewState.minLod;
+ samplerState.maxLod = imageViewState.maxLod;
+ }
+ }
+diff --git a/chromium/third_party/swiftshader/src/Vulkan/VkImageView.cpp b/chromium/third_party/swiftshader/src/Vulkan/VkImageView.cpp
+index 26b69aef79b..1b25544a57b 100644
+--- src/3rdparty/chromium/third_party/swiftshader/src/Vulkan/VkImageView.cpp
++++ src/3rdparty/chromium/third_party/swiftshader/src/Vulkan/VkImageView.cpp
+@@ -89,13 +89,15 @@ Identifier::Identifier(const VkImageViewCreateInfo *pCreateInfo)
+ const Image *sampledImage = image->getSampledImage(viewFormat);
+
+ vk::Format samplingFormat = (image == sampledImage) ? viewFormat : sampledImage->getFormat().getAspectFormat(subresource.aspectMask);
+- pack({ pCreateInfo->viewType, samplingFormat, ResolveComponentMapping(pCreateInfo->components, viewFormat), static_cast<uint8_t>(subresource.baseMipLevel + subresource.levelCount), subresource.levelCount <= 1u });
++ pack({ pCreateInfo->viewType, samplingFormat, ResolveComponentMapping(pCreateInfo->components, viewFormat),
++ static_cast<uint8_t>(subresource.baseMipLevel),
++ static_cast<uint8_t>(subresource.baseMipLevel + subresource.levelCount), subresource.levelCount <= 1u });
+ }
+
+ Identifier::Identifier(VkFormat bufferFormat)
+ {
+ constexpr VkComponentMapping identityMapping = { VK_COMPONENT_SWIZZLE_R, VK_COMPONENT_SWIZZLE_G, VK_COMPONENT_SWIZZLE_B, VK_COMPONENT_SWIZZLE_A };
+- pack({ VK_IMAGE_VIEW_TYPE_1D, bufferFormat, ResolveComponentMapping(identityMapping, bufferFormat), 1, true });
++ pack({ VK_IMAGE_VIEW_TYPE_1D, bufferFormat, ResolveComponentMapping(identityMapping, bufferFormat), 0, 1, true });
+ }
+
+ void Identifier::pack(const State &state)
+@@ -106,6 +108,7 @@ void Identifier::pack(const State &state)
+ g = static_cast<uint32_t>(state.mapping.g);
+ b = static_cast<uint32_t>(state.mapping.b);
+ a = static_cast<uint32_t>(state.mapping.a);
++ minLod = state.minLod;
+ maxLod = state.maxLod;
+ singleMipLevel = state.singleMipLevel;
+ }
+@@ -118,6 +121,7 @@ Identifier::State Identifier::getState() const
+ static_cast<VkComponentSwizzle>(g),
+ static_cast<VkComponentSwizzle>(b),
+ static_cast<VkComponentSwizzle>(a) },
++ static_cast<uint8_t>(minLod),
+ static_cast<uint8_t>(maxLod),
+ static_cast<bool>(singleMipLevel) };
+ }
+diff --git a/chromium/third_party/swiftshader/src/Vulkan/VkImageView.hpp b/chromium/third_party/swiftshader/src/Vulkan/VkImageView.hpp
+index 5acb89639c1..25feebc9e7e 100644
+--- src/3rdparty/chromium/third_party/swiftshader/src/Vulkan/VkImageView.hpp
++++ src/3rdparty/chromium/third_party/swiftshader/src/Vulkan/VkImageView.hpp
+@@ -53,6 +53,7 @@ union Identifier
+ VkImageViewType imageViewType;
+ VkFormat format;
+ VkComponentMapping mapping;
++ uint8_t minLod;
+ uint8_t maxLod;
+ bool singleMipLevel;
+ };
+@@ -71,6 +72,7 @@ union Identifier
+ uint32_t g : 3;
+ uint32_t b : 3;
+ uint32_t a : 3;
++ uint32_t minLod : 4;
+ uint32_t maxLod : 4;
+ uint32_t singleMipLevel : 1;
+ };
+From 336b5c4a31f9f976434adb2ecf1697c764f097cf Mon Sep 17 00:00:00 2001
+From: rajendrant <rajendrant@chromium.org>
+Date: Fri, 9 Feb 2024 17:29:51 +0000
+Subject: [PATCH] [Backport] Security bug 40066823
+
+Manual partial backport of patch originally reviewed on
+https://chromium-review.googlesource.com/c/chromium/src/+/5279279:
+Remove holding local_state in model store
+
+Avoids holding on to local_state in model store, by getting the local state when needed from chrome/. This delinks model store lifetime with local state lifetime.
+
+Change-Id: Ifb036b43b8394202683d4ae1131ff1eae780fc17
+Fixed: 40066823
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5279279
+Reviewed-by: Sophie Chang <sophiechang@chromium.org>
+Commit-Queue: Raj T <rajendrant@chromium.org>
+Reviewed-by: Trevor Perrier <perrier@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#1258580}
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/551092
+Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
+---
+ .../core/prediction_model_store.cc | 61 ++++++-------------
+ .../core/prediction_model_store.h | 28 +++------
+ 2 files changed, 28 insertions(+), 61 deletions(-)
+
+diff --git a/chromium/components/optimization_guide/core/prediction_model_store.cc b/chromium/components/optimization_guide/core/prediction_model_store.cc
+index d2252ea5cc4..a399ac06d7f 100644
+--- src/3rdparty/chromium/components/optimization_guide/core/prediction_model_store.cc
++++ src/3rdparty/chromium/components/optimization_guide/core/prediction_model_store.cc
+@@ -155,12 +155,6 @@ void RecordModelStorageMetrics(const base::FilePath& base_store_dir) {
+
+ } // namespace
+
+-// static
+-PredictionModelStore* PredictionModelStore::GetInstance() {
+- static base::NoDestructor<PredictionModelStore> model_store;
+- return model_store.get();
+-}
+-
+ PredictionModelStore::PredictionModelStore()
+ : background_task_runner_(base::ThreadPool::CreateSequencedTaskRunner(
+ {base::MayBlock(), base::TaskPriority::BEST_EFFORT})) {
+@@ -169,19 +163,14 @@ PredictionModelStore::PredictionModelStore()
+
+ PredictionModelStore::~PredictionModelStore() = default;
+
+-void PredictionModelStore::Initialize(PrefService* local_state,
+- const base::FilePath& base_store_dir) {
++void PredictionModelStore::Initialize(const base::FilePath& base_store_dir) {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+- DCHECK(local_state);
+ DCHECK(!base_store_dir.empty());
+
+ // Should not be initialized already.
+- DCHECK(!local_state_);
+ DCHECK(base_store_dir_.empty());
+
+- local_state_ = local_state;
+ base_store_dir_ = base_store_dir;
+-
+ PurgeInactiveModels();
+
+ // Clean up any model files that were slated for deletion in previous
+@@ -189,29 +178,19 @@ void PredictionModelStore::Initialize(PrefService* local_state,
+ CleanUpOldModelFiles();
+
+ background_task_runner_->PostTask(
+- FROM_HERE,
+- base::BindOnce(&RemoveInvalidModelDirs, base_store_dir_,
+- ModelStoreMetadataEntry::GetValidModelDirs(local_state_)));
++ FROM_HERE, base::BindOnce(&RemoveInvalidModelDirs, base_store_dir_,
++ ModelStoreMetadataEntry::GetValidModelDirs(
++ GetLocalState())));
+ background_task_runner_->PostTask(
+ FROM_HERE, base::BindOnce(&RecordModelStorageMetrics, base_store_dir_));
+ }
+
+-// static
+-std::unique_ptr<PredictionModelStore>
+-PredictionModelStore::CreatePredictionModelStoreForTesting(
+- PrefService* local_state,
+- const base::FilePath& base_store_dir) {
+- auto store = base::WrapUnique(new PredictionModelStore());
+- store->Initialize(local_state, base_store_dir);
+- return store;
+-}
+-
+ bool PredictionModelStore::HasModel(
+ proto::OptimizationTarget optimization_target,
+ const proto::ModelCacheKey& model_cache_key) const {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ auto metadata = ModelStoreMetadataEntry::GetModelMetadataEntryIfExists(
+- local_state_, optimization_target, model_cache_key);
++ GetLocalState(), optimization_target, model_cache_key);
+ if (!metadata) {
+ return false;
+ }
+@@ -226,7 +205,7 @@ bool PredictionModelStore::HasModelWithVersion(
+ int64_t version) {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ auto metadata = ModelStoreMetadataEntry::GetModelMetadataEntryIfExists(
+- local_state_, optimization_target, model_cache_key);
++ GetLocalState(), optimization_target, model_cache_key);
+ if (!metadata) {
+ return false;
+ }
+@@ -251,7 +230,7 @@ void PredictionModelStore::LoadModel(
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+
+ auto metadata = ModelStoreMetadataEntry::GetModelMetadataEntryIfExists(
+- local_state_, optimization_target, model_cache_key);
++ GetLocalState(), optimization_target, model_cache_key);
+ if (!metadata) {
+ std::move(callback).Run(nullptr);
+ return;
+@@ -334,7 +313,7 @@ void PredictionModelStore::UpdateMetadataForExistingModel(
+ if (!HasModel(optimization_target, model_cache_key))
+ return;
+
+- ModelStoreMetadataEntryUpdater metadata(local_state_, optimization_target,
++ ModelStoreMetadataEntryUpdater metadata(GetLocalState(), optimization_target,
+ model_cache_key);
+ DCHECK(!metadata.GetModelBaseDir()->IsAbsolute());
+ metadata.SetVersion(model_info.version());
+@@ -357,7 +336,7 @@ void PredictionModelStore::UpdateModel(
+ DCHECK_EQ(optimization_target, model_info.optimization_target());
+ DCHECK(base_store_dir_.IsParent(base_model_dir));
+
+- ModelStoreMetadataEntryUpdater metadata(local_state_, optimization_target,
++ ModelStoreMetadataEntryUpdater metadata(GetLocalState(), optimization_target,
+ model_cache_key);
+ metadata.SetVersion(model_info.version());
+ metadata.SetExpiryTime(
+@@ -420,7 +399,7 @@ void PredictionModelStore::UpdateModelCacheKeyMapping(
+ const proto::ModelCacheKey& server_model_cache_key) {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ ModelStoreMetadataEntryUpdater::UpdateModelCacheKeyMapping(
+- local_state_, optimization_target, client_model_cache_key,
++ GetLocalState(), optimization_target, client_model_cache_key,
+ server_model_cache_key);
+ }
+
+@@ -429,13 +408,13 @@ void PredictionModelStore::RemoveModel(
+ const proto::ModelCacheKey& model_cache_key,
+ PredictionModelStoreModelRemovalReason model_remove_reason) {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+- if (!local_state_) {
++ if (!GetLocalState()) {
+ return;
+ }
+
+ RecordPredictionModelStoreModelRemovalVersionHistogram(optimization_target,
+ model_remove_reason);
+- ModelStoreMetadataEntryUpdater metadata(local_state_, optimization_target,
++ ModelStoreMetadataEntryUpdater metadata(GetLocalState(), optimization_target,
+ model_cache_key);
+ auto base_model_dir = metadata.GetModelBaseDir();
+ if (base_model_dir) {
+@@ -458,16 +437,17 @@ void PredictionModelStore::ScheduleModelDirRemoval(
+ base_model_dir.IsAbsolute()
+ ? ConvertToRelativePath(base_store_dir_, base_model_dir)
+ : base_model_dir;
+- ScopedDictPrefUpdate pref_update(local_state_,
++ ScopedDictPrefUpdate pref_update(GetLocalState(),
+ prefs::localstate::kStoreFilePathsToDelete);
+ pref_update->Set(FilePathToString(relative_model_dir), true);
+ }
+
+ void PredictionModelStore::PurgeInactiveModels() {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+- DCHECK(local_state_);
++ DCHECK(GetLocalState());
+ for (const auto& expired_model_dir :
+- ModelStoreMetadataEntryUpdater::PurgeAllInactiveMetadata(local_state_)) {
++ ModelStoreMetadataEntryUpdater::PurgeAllInactiveMetadata(
++ GetLocalState())) {
+ // Backward compatibility: Model dirs were absolute in the earlier versions,
+ // and it was only in experiment. The latest versions use relative paths.
+ DCHECK(!expired_model_dir.IsAbsolute() ||
+@@ -485,9 +465,9 @@ void PredictionModelStore::PurgeInactiveModels() {
+
+ void PredictionModelStore::CleanUpOldModelFiles() {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+- DCHECK(local_state_);
++ DCHECK(GetLocalState());
+ for (const auto entry :
+- local_state_->GetDict(prefs::localstate::kStoreFilePathsToDelete)) {
++ GetLocalState()->GetDict(prefs::localstate::kStoreFilePathsToDelete)) {
+ // Backward compatibility: Model dirs were absolute in the earlier versions.
+ // The latest versions use relative paths.
+ auto path_to_delete = StringToFilePath(entry.first);
+@@ -508,13 +488,13 @@ void PredictionModelStore::CleanUpOldModelFiles() {
+ void PredictionModelStore::OnFilePathDeleted(const std::string& path_to_delete,
+ bool success) {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+- DCHECK(local_state_);
++ DCHECK(GetLocalState());
+ if (!success) {
+ // Try to delete again later.
+ return;
+ }
+
+- ScopedDictPrefUpdate pref_update(local_state_,
++ ScopedDictPrefUpdate pref_update(GetLocalState(),
+ prefs::localstate::kStoreFilePathsToDelete);
+ pref_update->Remove(path_to_delete);
+ }
+@@ -527,7 +507,6 @@ base::FilePath PredictionModelStore::GetBaseStoreDirForTesting() const {
+ void PredictionModelStore::ResetForTesting() {
+ DETACH_FROM_SEQUENCE(sequence_checker_);
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+- local_state_ = nullptr;
+ base_store_dir_ = base::FilePath();
+ background_task_runner_ = base::ThreadPool::CreateSequencedTaskRunner(
+ {base::MayBlock(), base::TaskPriority::BEST_EFFORT});
+diff --git a/chromium/components/optimization_guide/core/prediction_model_store.h b/chromium/components/optimization_guide/core/prediction_model_store.h
+index eb39780fd37..720e50dc128 100644
+--- src/3rdparty/chromium/components/optimization_guide/core/prediction_model_store.h
++++ src/3rdparty/chromium/components/optimization_guide/core/prediction_model_store.h
+@@ -8,7 +8,6 @@
+ #include "base/files/file_path.h"
+ #include "base/memory/scoped_refptr.h"
+ #include "base/memory/weak_ptr.h"
+-#include "base/no_destructor.h"
+ #include "base/sequence_checker.h"
+ #include "base/task/sequenced_task_runner.h"
+ #include "base/values.h"
+@@ -34,21 +33,15 @@ class PredictionModelStore {
+ using PredictionModelLoadedCallback =
+ base::OnceCallback<void(std::unique_ptr<proto::PredictionModel>)>;
+
+- // Returns the singleton model store.
+- static PredictionModelStore* GetInstance();
+-
+- static std::unique_ptr<PredictionModelStore>
+- CreatePredictionModelStoreForTesting(PrefService* local_state,
+- const base::FilePath& base_store_dir);
++ PredictionModelStore();
+
+- // Initializes the model store with |local_state| and the |base_store_dir|.
+- // Model store will be usable only after it is initialized.
+- void Initialize(PrefService* local_state,
+- const base::FilePath& base_store_dir);
++ // Initializes the model store with |base_store_dir|. Model store will be
++ // usable only after it is initialized.
++ void Initialize(const base::FilePath& base_store_dir);
+
+ PredictionModelStore(const PredictionModelStore&) = delete;
+ PredictionModelStore& operator=(const PredictionModelStore&) = delete;
+- ~PredictionModelStore();
++ virtual ~PredictionModelStore();
+
+ // Initializes the model store with |local_state| and the |base_store_dir|, if
+ // initialization hasn't happened already. Model store will be usable only
+@@ -111,6 +104,9 @@ class PredictionModelStore {
+ const proto::ModelCacheKey& model_cache_key,
+ PredictionModelStoreModelRemovalReason model_removal_reason);
+
++ // Returns the local state that stores the prefs across all profiles.
++ virtual PrefService* GetLocalState() const = 0;
++
+ base::FilePath GetBaseStoreDirForTesting() const;
+
+ // Allows tests to reset the store for subsequent tests since the store is a
+@@ -118,11 +114,8 @@ class PredictionModelStore {
+ void ResetForTesting();
+
+ private:
+- friend base::NoDestructor<PredictionModelStore>;
+ friend class PredictionModelStoreBrowserTestBase;
+
+- PredictionModelStore();
+-
+ // Loads the model and verifies if the model files exist and returns the
+ // model. Otherwise nullptr is returned on any failures.
+ static std::unique_ptr<proto::PredictionModel>
+@@ -159,11 +152,6 @@ class PredictionModelStore {
+ // Invoked when model files gets deleted.
+ void OnFilePathDeleted(const std::string& path_to_delete, bool success);
+
+- // Local state that stores the prefs across all profiles. Not owned and
+- // outlives |this|.
+- raw_ptr<PrefService, LeakedDanglingUntriaged> local_state_
+- GUARDED_BY_CONTEXT(sequence_checker_) = nullptr;
+-
+ // The base dir where the prediction model dirs are saved.
+ base::FilePath base_store_dir_ GUARDED_BY_CONTEXT(sequence_checker_);
+
+From ce8633a185cd8c2e819898d3a6cba63d1e8089c4 Mon Sep 17 00:00:00 2001
+From: John Stiles <johnstiles@google.com>
+Date: Wed, 31 Jan 2024 14:28:47 +0000
+Subject: [PATCH] [Backport] Security bug 41495984
+
+Cherry-pick of patch originally reviewed on:
+https://chromium-review.googlesource.com/c/chromium/src/+/5249171
+Improve handling of malformed BMP palettes.
+
+Add CHECKs to guarantee that clr_used is reasonably sized when
+ProcessColorTable() is called. Out-of-bounds values are capped
+by ProcessInfoHeader() already, but since this happens at a
+distance, it's better to be sure.
+
+Additionally, we would previously add padding elements to a
+palette if it was shorter than expected. We already had bounds
+checks at the places where the palette was accessed, so we now
+rely on those checks instead.
+
+Bug: 1523030
+Change-Id: I579c67d1029e1effba2036e9ec0c871418b140e2
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5249171
+Commit-Queue: John Stiles <johnstiles@google.com>
+Reviewed-by: Peter Kasting <pkasting@chromium.org>
+Auto-Submit: John Stiles <johnstiles@google.com>
+Cr-Commit-Position: refs/heads/main@{#1254490}
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/551093
+Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
+---
+ .../image-decoders/bmp/bmp_image_reader.cc | 25 ++++++++++---------
+ 1 file changed, 13 insertions(+), 12 deletions(-)
+
+diff --git a/chromium/third_party/blink/renderer/platform/image-decoders/bmp/bmp_image_reader.cc b/chromium/third_party/blink/renderer/platform/image-decoders/bmp/bmp_image_reader.cc
+index b7bbbf51a1b..9c319b4be01 100644
+--- src/3rdparty/chromium/third_party/blink/renderer/platform/image-decoders/bmp/bmp_image_reader.cc
++++ src/3rdparty/chromium/third_party/blink/renderer/platform/image-decoders/bmp/bmp_image_reader.cc
+@@ -774,24 +774,31 @@ bool BMPImageReader::ProcessColorTable() {
+
+ const wtf_size_t header_end = header_offset_ + info_header_.size;
+ wtf_size_t colors_in_palette = info_header_.clr_used;
++ CHECK_LE(colors_in_palette, 256u); // Enforced by ProcessInfoHeader().
+ wtf_size_t table_size_in_bytes = colors_in_palette * bytes_per_color;
+ const wtf_size_t table_end = header_end + table_size_in_bytes;
+ if (table_end < header_end) {
+ return parent_->SetFailed();
+ }
+
+- // Some BMPs don't contain a complete palette. Avoid reading off the end.
++ // Some BMPs don't contain a complete palette. Truncate it instead of reading
++ // off the end of the palette.
+ if (img_data_offset_ && (img_data_offset_ < table_end)) {
+- colors_in_palette = (img_data_offset_ - header_end) / bytes_per_color;
++ wtf_size_t colors_in_truncated_palette =
++ (img_data_offset_ - header_end) / bytes_per_color;
++ CHECK_LE(colors_in_truncated_palette, colors_in_palette);
++ colors_in_palette = colors_in_truncated_palette;
+ table_size_in_bytes = colors_in_palette * bytes_per_color;
+ }
+
+- // Read color table.
++ // If we don't have enough data to read in the whole palette yet, stop here.
+ if ((decoded_offset_ > data_->size()) ||
+ ((data_->size() - decoded_offset_) < table_size_in_bytes)) {
+ return false;
+ }
+- color_table_.resize(info_header_.clr_used);
++
++ // Read the color table.
++ color_table_.resize(colors_in_palette);
+
+ for (wtf_size_t i = 0; i < colors_in_palette; ++i) {
+ color_table_[i].rgb_blue = ReadUint8(0);
+@@ -799,12 +806,6 @@ bool BMPImageReader::ProcessColorTable() {
+ color_table_[i].rgb_red = ReadUint8(2);
+ decoded_offset_ += bytes_per_color;
+ }
+- // Explicitly zero any colors past the end of a truncated palette.
+- for (wtf_size_t i = colors_in_palette; i < info_header_.clr_used; ++i) {
+- color_table_[i].rgb_blue = 0;
+- color_table_[i].rgb_green = 0;
+- color_table_[i].rgb_red = 0;
+- }
+
+ // We've now decoded all the non-image data we care about. Skip anything
+ // else before the actual raster data.
+@@ -992,7 +993,7 @@ BMPImageReader::ProcessingResult BMPImageReader::ProcessRLEData() {
+ for (wtf_size_t which = 0; coord_.x() < end_x;) {
+ // Some images specify color values past the end of the
+ // color table; set these pixels to black.
+- if (color_indexes[which] < info_header_.clr_used) {
++ if (color_indexes[which] < color_table_.size()) {
+ SetI(color_indexes[which]);
+ } else {
+ SetRGBA(0, 0, 0, 255);
+@@ -1071,7 +1072,7 @@ BMPImageReader::ProcessingResult BMPImageReader::ProcessNonRLEData(
+ }
+ } else {
+ // See comments near the end of ProcessRLEData().
+- if (color_index < info_header_.clr_used) {
++ if (color_index < color_table_.size()) {
+ SetI(color_index);
+ } else {
+ SetRGBA(0, 0, 0, 255);
+From 4349868d9af8ef7175125f53e441b12df5a22927 Mon Sep 17 00:00:00 2001
+From: Antonio Maiorano <amaiorano@google.com>
+Date: Wed, 20 Mar 2024 17:15:40 -0400
+Subject: [PATCH] [Backport] CVE-2024-2885: Use after free in Dawn
+
+Manual cherry-pick of patch originally reviewed on
+https://chromium-review.googlesource.com/c/external/github.com/microsoft/DirectXShaderCompiler/+/5383595:
+Fix HLMatrixLowerPass leaving call to dangling FunctionVal
+
+When lowering an hl.cast, when the operand was an undef matrix, the pass would insert a call to a mat2vec stub, but since the undef value is not
+an alloca, it never gets handled, and the call to the temporary stub
+remains. Since the stub FunctionVal gets deleted, when the instruction
+is accessed in a future pass, it reads a dangling pointer.
+
+The fix is to handle undef similarly to how constant 0 is handled, and
+to return an undef vector from lowerHLCast.
+
+Bug: chromium:328958020
+Change-Id: Id31e3aa326d9cb9f03ea97139f14dc5292cd6f7b
+Reviewed-on: https://chromium-review.googlesource.com/c/external/github.com/microsoft/DirectXShaderCompiler/+/5383595
+Reviewed-by: Ben Clayton <bclayton@chromium.org>
+Reviewed-by: David Neto <dneto@google.com>
+Reviewed-by: Kenneth Russell <kbr@chromium.org>
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/553291
+Reviewed-by: Michal Klocek <michal.klocek@qt.io>
+---
+ .../dawn/third_party/dxc/lib/HLSL/HLMatrixLowerPass.cpp | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/chromium/third_party/dawn/third_party/dxc/lib/HLSL/HLMatrixLowerPass.cpp b/chromium/third_party/dawn/third_party/dxc/lib/HLSL/HLMatrixLowerPass.cpp
+index e35ff832ecf..c3a7254ef2b 100644
+--- src/3rdparty/chromium/third_party/dawn/third_party/dxc/lib/HLSL/HLMatrixLowerPass.cpp
++++ src/3rdparty/chromium/third_party/dawn/third_party/dxc/lib/HLSL/HLMatrixLowerPass.cpp
+@@ -381,6 +381,11 @@ Value* HLMatrixLowerPass::getLoweredByValOperand(Value *Val, IRBuilder<> &Builde
+ if (isa<ConstantAggregateZero>(Val))
+ return ConstantAggregateZero::get(LoweredTy);
+
++ // Lower undef mat as undef vec
++ if (isa<UndefValue>(Val)) {
++ return UndefValue::get(LoweredTy);
++ }
++
+ // Return a mat-to-vec translation stub
+ FunctionType *TranslationStubTy = FunctionType::get(LoweredTy, { Ty }, /* isVarArg */ false);
+ Function *TranslationStub = m_matToVecStubs->get(TranslationStubTy);
+From 0c7f8cd69b6065fbc9a2af8927182ffe529e052e Mon Sep 17 00:00:00 2001
+From: Manos Koukoutos <manoskouk@chromium.org>
+Date: Thu, 21 Mar 2024 11:38:08 +0100
+Subject: [PATCH] [Backport] CVE-2024-2887: Type Confusion in WebAssembly
+
+Cherry-pick of patch originally reviewed on
+https://chromium-review.googlesource.com/c/v8/v8/+/5380190:
+Merged: [wasm] Check for type-definition count limit
+
+(cherry picked from commit b852ad701db21d6db5b34e66f4ec1cdccd2ec4d4)
+
+Bug: chromium:330575498
+Change-Id: I395f0ed6d823b7d1e139da6551486e3627d65724
+Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5378419
+Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
+Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
+Auto-Submit: Manos Koukoutos <manoskouk@chromium.org>
+Cr-Original-Commit-Position: refs/heads/main@{#92941}
+Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5380190
+Reviewed-by: Francis McCabe <fgm@chromium.org>
+Commit-Queue: Adam Klein <adamk@chromium.org>
+Reviewed-by: Adam Klein <adamk@chromium.org>
+Cr-Commit-Position: refs/branch-heads/12.2@{#50}
+Cr-Branched-From: 6eb5a9616aa6f8c705217aeb7c7ab8c037a2f676-refs/heads/12.2.281@{#1}
+Cr-Branched-From: 44cf56d850167c6988522f8981730462abc04bcc-refs/heads/main@{#91934}
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/553292
+Reviewed-by: Michal Klocek <michal.klocek@qt.io>
+---
+ chromium/v8/src/wasm/module-decoder-impl.h | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/chromium/v8/src/wasm/module-decoder-impl.h b/chromium/v8/src/wasm/module-decoder-impl.h
+index 97554288b55..75ca3a630a2 100644
+--- src/3rdparty/chromium/v8/src/wasm/module-decoder-impl.h
++++ src/3rdparty/chromium/v8/src/wasm/module-decoder-impl.h
+@@ -687,6 +687,11 @@ class ModuleDecoderImpl : public Decoder {
+ }
+ } else {
+ if (tracer_) tracer_->TypeOffset(pc_offset());
++ if (initial_size + 1 > kV8MaxWasmTypes) {
++ errorf(pc(), "Type definition count exceeds maximum %zu",
++ kV8MaxWasmTypes);
++ return;
++ }
+ // Similarly to above, we need to resize types for a group of size 1.
+ module_->types.resize(initial_size + 1);
+ module_->isorecursive_canonical_type_ids.resize(initial_size + 1);
+From d414fd5b22455b7fcbddfdee22cf2b1f446ce3c4 Mon Sep 17 00:00:00 2001
+From: Marco Paniconi <marpan@google.com>
+Date: Wed, 13 Mar 2024 10:58:17 -0700
+Subject: [PATCH] [Backport] Security bug 329674887 (1/2)
+
+Cherry-pick of patch orignally reviewed on
+https://chromium-review.googlesource.com/c/webm/libvpx/+/5370376:
+Fix to buffer alloc for vp9_bitstream_worker_data
+
+The code was using the bitstream_worker_data when it
+wasn't allocated for big enough size. This is because
+the existing condition was to only re-alloc the
+bitstream_worker_data when current dest_size was larger
+than the current frame_size. But under resolution change
+where frame_size is increased, beyond the current dest_size,
+we need to allow re-alloc to the new size.
+
+The existing condition to re-alloc when dest_size is
+larger than frame_size (which is not required) is kept
+for now.
+
+Also increase the dest_size to account for image format.
+
+Added tests, for both ROW_MT=0 and 1, that reproduce
+the failures in the bugs below.
+
+Note: this issue only affects the REALTIME encoding path.
+
+Bug: b/329088759, b/329674887, b/329179808
+
+Change-Id: Icd65dbc5317120304d803f648d4bd9405710db6f
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/553293
+Reviewed-by: Michal Klocek <michal.klocek@qt.io>
+---
+ .../source/libvpx/vp9/encoder/vp9_bitstream.c | 14 +++++++++++---
+ 1 file changed, 11 insertions(+), 3 deletions(-)
+
+diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c
+index ca56d14aa1e..88a031e5fc1 100644
+--- src/3rdparty/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c
++++ src/3rdparty/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c
+@@ -962,6 +962,14 @@ void vp9_bitstream_encode_tiles_buffer_dealloc(VP9_COMP *const cpi) {
+ }
+ }
+
++static int encode_tiles_buffer_alloc_size(VP9_COMP *const cpi) {
++ VP9_COMMON *const cm = &cpi->common;
++ const int image_bps =
++ (8 + 2 * (8 >> (cm->subsampling_x + cm->subsampling_y))) *
++ (1 + (cm->bit_depth > 8));
++ return cpi->oxcf.width * cpi->oxcf.height * image_bps / 8;
++}
++
+ static void encode_tiles_buffer_alloc(VP9_COMP *const cpi) {
+ VP9_COMMON *const cm = &cpi->common;
+ int i;
+@@ -972,7 +980,7 @@ static void encode_tiles_buffer_alloc(VP9_COMP *const cpi) {
+ memset(cpi->vp9_bitstream_worker_data, 0, worker_data_size);
+ for (i = 1; i < cpi->num_workers; ++i) {
+ cpi->vp9_bitstream_worker_data[i].dest_size =
+- cpi->oxcf.width * cpi->oxcf.height;
++ encode_tiles_buffer_alloc_size(cpi);
+ CHECK_MEM_ERROR(&cm->error, cpi->vp9_bitstream_worker_data[i].dest,
+ vpx_malloc(cpi->vp9_bitstream_worker_data[i].dest_size));
+ }
+@@ -987,8 +995,8 @@ static size_t encode_tiles_mt(VP9_COMP *cpi, uint8_t *data_ptr) {
+ int tile_col = 0;
+
+ if (!cpi->vp9_bitstream_worker_data ||
+- cpi->vp9_bitstream_worker_data[1].dest_size >
+- (cpi->oxcf.width * cpi->oxcf.height)) {
++ cpi->vp9_bitstream_worker_data[1].dest_size !=
++ encode_tiles_buffer_alloc_size(cpi)) {
+ vp9_bitstream_encode_tiles_buffer_dealloc(cpi);
+ encode_tiles_buffer_alloc(cpi);
+ }
+From 4f90911c049d0278e900b94947fd0055b26d646e Mon Sep 17 00:00:00 2001
+From: Marco Paniconi <marpan@google.com>
+Date: Sat, 16 Mar 2024 10:39:28 -0700
+Subject: [PATCH] [Backport] Security bug 329674887 (2/2)
+
+Cherry-pick of patch originally reviewed on
+https://chromium-review.googlesource.com/c/webm/libvpx/+/5375794:vp9: fix to integer overflow test
+
+failure for the 16k test: issue introduced
+in: c29e637283
+
+Bug: b/329088759, b/329674887, b/329179808
+
+Change-Id: I88e8a36b7f13223997c3006c84aec9cfa48c0bcf
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/553294
+Reviewed-by: Michal Klocek <michal.klocek@qt.io>
+---
+ .../libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c
+index 88a031e5fc1..d3c029da4ba 100644
+--- src/3rdparty/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c
++++ src/3rdparty/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c
+@@ -967,7 +967,9 @@ static int encode_tiles_buffer_alloc_size(VP9_COMP *const cpi) {
+ const int image_bps =
+ (8 + 2 * (8 >> (cm->subsampling_x + cm->subsampling_y))) *
+ (1 + (cm->bit_depth > 8));
+- return cpi->oxcf.width * cpi->oxcf.height * image_bps / 8;
++ const int64_t size =
++ (int64_t)cpi->oxcf.width * cpi->oxcf.height * image_bps / 8;
++ return (int)size;
+ }
+
+ static void encode_tiles_buffer_alloc(VP9_COMP *const cpi) {
+From 5af5e96fba0c40d3ddef2720de9117b6a4d6c267 Mon Sep 17 00:00:00 2001
+From: Peng Huang <penghuang@chromium.org>
+Date: Wed, 20 Mar 2024 16:22:16 +0000
+Subject: [PATCH] [Backport] Security bug 327183408
+
+Cherry-pick of patch originally reviewed on
+https://chromium-review.googlesource.com/c/chromium/src/+/5382202:
+Fix PaintImage deserialization arbitrary-read issue
+
+(cherry picked from commit 47e8386c97ac7a84a96866fbd35422b99a01de5a)
+
+Bug: 327183408
+Change-Id: I09927fbae60b666aaa370e3aba01607cdb977a25
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5370455
+Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org>
+Commit-Queue: Peng Huang <penghuang@chromium.org>
+Cr-Original-Commit-Position: refs/heads/main@{#1272930}
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5382202
+Auto-Submit: Peng Huang <penghuang@chromium.org>
+Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
+Cr-Commit-Position: refs/branch-heads/6261@{#1106}
+Cr-Branched-From: 9755d9d81e4a8cb5b4f76b23b761457479dbb06b-refs/heads/main@{#1250580}
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/553295
+Reviewed-by: Michal Klocek <michal.klocek@qt.io>
+---
+ chromium/cc/paint/paint_op_reader.cc | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/chromium/cc/paint/paint_op_reader.cc b/chromium/cc/paint/paint_op_reader.cc
+index 935dbb05a50..6d920c33562 100644
+--- src/3rdparty/chromium/cc/paint/paint_op_reader.cc
++++ src/3rdparty/chromium/cc/paint/paint_op_reader.cc
+@@ -1532,9 +1532,10 @@ inline void PaintOpReader::DidRead(size_t bytes_read) {
+ // All data are aligned with PaintOpWriter::kDefaultAlignment at least.
+ size_t aligned_bytes =
+ base::bits::AlignUp(bytes_read, PaintOpWriter::kDefaultAlignment);
+- memory_ += aligned_bytes;
+ DCHECK_LE(aligned_bytes, remaining_bytes_);
+- remaining_bytes_ -= aligned_bytes;
++ bytes_read = std::min(aligned_bytes, remaining_bytes_);
++ memory_ += bytes_read;
++ remaining_bytes_ -= bytes_read;
+ }
+
+ } // namespace cc
+From 0a17b9024c84404e4693718bbbd056517a2874a3 Mon Sep 17 00:00:00 2001
+From: Darius Mercadier <dmercadier@chromium.org>
+Date: Fri, 22 Mar 2024 17:55:04 +0100
+Subject: [PATCH] [Backport] CVE-2024-3159: Out of bounds memory access in V8
+
+Cherry-pick of patch originally reviewed on
+https://chromium-review.googlesource.com/c/v8/v8/+/5401859:
+Merged: [runtime] Recreate enum cache on map update if any previous map had one
+
+If any previous map in the transition tree had an enum cache, then we
+recreate one when updating the map.
+
+Bug: 330760873
+(cherry picked from commit 807cf7d0b7d96212c98ed2119e07f9b2c6a23f61)
+
+Change-Id: Ia9ea4cf17fef60166a0c037318eb539866aac37a
+Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5401859
+Reviewed-by: Igor Sheludko <ishell@chromium.org>
+Commit-Queue: Igor Sheludko <ishell@chromium.org>
+Auto-Submit: Darius Mercadier <dmercadier@chromium.org>
+Cr-Commit-Position: refs/branch-heads/12.2@{#52}
+Cr-Branched-From: 6eb5a9616aa6f8c705217aeb7c7ab8c037a2f676-refs/heads/12.2.281@{#1}
+Cr-Branched-From: 44cf56d850167c6988522f8981730462abc04bcc-refs/heads/main@{#91934}
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/553296
+Reviewed-by: Michal Klocek <michal.klocek@qt.io>
+---
+ chromium/v8/src/objects/map-updater.cc | 13 ++++++++++---
+ 1 file changed, 10 insertions(+), 3 deletions(-)
+
+diff --git a/chromium/v8/src/objects/map-updater.cc b/chromium/v8/src/objects/map-updater.cc
+index 613a4921637..1d649373274 100644
+--- src/3rdparty/chromium/v8/src/objects/map-updater.cc
++++ src/3rdparty/chromium/v8/src/objects/map-updater.cc
+@@ -1038,14 +1038,21 @@ MapUpdater::State MapUpdater::ConstructNewMap() {
+ Handle<Map> new_map =
+ Map::AddMissingTransitions(isolate_, split_map, new_descriptors);
+
++ bool had_any_enum_cache =
++ split_map->instance_descriptors(isolate_)
++ ->enum_cache()
++ ->keys()
++ ->length() > 0 ||
++ old_descriptors_->enum_cache()->keys()->length() > 0;
++
+ // Deprecated part of the transition tree is no longer reachable, so replace
+ // current instance descriptors in the "survived" part of the tree with
+ // the new descriptors to maintain descriptors sharing invariant.
+ split_map->ReplaceDescriptors(isolate_, *new_descriptors);
+
+- // If the old descriptors had an enum cache, make sure the new ones do too.
+- if (old_descriptors_->enum_cache()->keys()->length() > 0 &&
+- new_map->NumberOfEnumerableProperties() > 0) {
++ // If the old descriptors had an enum cache (or if {split_map}'s descriptors
++ // had one), make sure the new ones do too.
++ if (had_any_enum_cache && new_map->NumberOfEnumerableProperties() > 0) {
+ FastKeyAccumulator::InitializeFastPropertyEnumCache(
+ isolate_, new_map, new_map->NumberOfEnumerableProperties());
+ }
+From e76cac29493b1cb4b055f8944ea1e4e1284a12e6 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo Da Costa <raphael.kubo.da.costa@intel.com>
+Date: Thu, 21 Mar 2024 16:50:44 +0000
+Subject: [PATCH] [Backport] Security bug 326349405
+
+Cherry-pick of patch originally reviewed on
+https://chromium-review.googlesource.com/c/chromium/src/+/5383440:
+Reland "sensors WinRT: Call OnReadingChangedCallback() via PostTask()"
+
+This reverts commit 745ca2de005c052f58097ef9cb7aa2deff095cf4.
+
+Reason for revert: Reapproved by pgrace@ in the bug.
+
+Original change's description:
+> Revert "sensors WinRT: Call OnReadingChangedCallback() via PostTask()"
+>
+> This reverts commit 7e93b6a926ab65cc7ff1293bdcf0099c6e6e4e4e.
+>
+> Reason for revert: Requested in the bug by pgrace@
+>
+> Original change's description:
+> > sensors WinRT: Call OnReadingChangedCallback() via PostTask()
+> >
+> > While here, also add checks to make sure each method is running on the
+> > right sequence and make |minimum_report_interval_| guarded by |lock_|
+> > since it is accessed by the main task runner just like |client_|.
+> >
+> > There is a significant amount of changes in the unit tests for two
+> > reasons:
+> > 1. We now use multiple task runners and create Reader objects in a COM
+> > STA task runner to better simulate what happens in production.
+> > 2. Doing so has uncovered bugs in the exist tests that had to be fixed.
+> > Namely:
+> > - One of the biggest offenders was the use of EXPECT_CALL() with
+> > WillRepeatedly() for expecting calls to OnReadingUpdated(). Using
+> > only WillRepeatedly() meant the control over the cardinality of the
+> > expectations was not very strict, and sometimes callbacks were
+> > simply not being run.
+> > Now that TriggerFakeSensorReading() is asynchronous and we need to
+> > use a base::RunLoop to ensure, we are also using WillOnce() a lot
+> > more than WillRepeatedly() so that we set one expectation, call
+> > TriggerFakeSensorReading() and consume it immediately.
+> > - The *Thresholding tests were affected by the problem above, and
+> > fixing them showed that several callbacks were not being invoked.
+> > Many checks where values were increased by the exact threshold
+> > amount were broken because the manipulated values are floats and
+> > doubles, and the math operations on them in the
+> > OnReadingChangedCallback() implementations caused the comparisons
+> > with exact values to fail. In this case, it was simpler to just
+> > remove those specific tests, as the "values bigger than the
+> > threshold" case are already covered by other checks.
+> > - Also as a consequence of the above, *Thresholding tests with
+> > multi-axis values were also broken when they went from testing that
+> > values did not pass the threshold checks to the first test that
+> > verifies that an axis passes the threshold check. This caused all
+> > previous |last_sent_*| variables to be stored in the Reader, and
+> > other calls to threshold_helper(true) would fail. The fix here was
+> > to reorder the calls so that each axis is tested entirely before
+> > the next.
+> >
+> > (cherry picked from commit 2aafa000795519b5153125673f87c734f7b8ae9f)
+> >
+> > Bug: 326349405
+> > Change-Id: Ief67720e8c449af1ce4f450002103a20ca1830ee
+> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5340216
+> > Auto-Submit: Raphael Kubo Da Costa <raphael.kubo.da.costa@intel.com>
+> > Commit-Queue: Raphael Kubo Da Costa <raphael.kubo.da.costa@intel.com>
+> > Reviewed-by: Reilly Grant <reillyg@chromium.org>
+> > Cr-Original-Commit-Position: refs/heads/main@{#1268797}
+> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5372846
+> > Reviewed-by: Colin Blundell <blundell@chromium.org>
+> > Cr-Commit-Position: refs/branch-heads/6261@{#1079}
+> > Cr-Branched-From: 9755d9d81e4a8cb5b4f76b23b761457479dbb06b-refs/heads/main@{#1250580}
+>
+> Bug: 326349405
+> Change-Id: I49d61cf7bdf2a00004aa565a5439ad813b1c379e
+> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5378404
+> Commit-Queue: Raphael Kubo Da Costa <raphael.kubo.da.costa@intel.com>
+> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+> Cr-Commit-Position: refs/branch-heads/6261@{#1090}
+> Cr-Branched-From: 9755d9d81e4a8cb5b4f76b23b761457479dbb06b-refs/heads/main@{#1250580}
+
+Bug: 326349405
+Change-Id: I3bcba8840a3a10cd4660ec287fa24623bcf87657
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5383440
+Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Commit-Queue: Raphael Kubo Da Costa <raphael.kubo.da.costa@intel.com>
+Cr-Commit-Position: refs/branch-heads/6261@{#1111}
+Cr-Branched-From: 9755d9d81e4a8cb5b4f76b23b761457479dbb06b-refs/heads/main@{#1250580}
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/553297
+Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
+---
+ .../platform_sensor_reader_winrt.cc | 79 +-
+ .../platform_sensor_reader_winrt.h | 32 +-
+ .../platform_sensor_reader_winrt_unittests.cc | 787 ++++++++++--------
+ .../generic_sensor/platform_sensor_win.cc | 3 +
+ 4 files changed, 549 insertions(+), 352 deletions(-)
+
+diff --git a/chromium/services/device/generic_sensor/platform_sensor_reader_winrt.cc b/chromium/services/device/generic_sensor/platform_sensor_reader_winrt.cc
+index 6c778b7edf0c..673225e398a2 100644
+--- src/3rdparty/chromium/services/device/generic_sensor/platform_sensor_reader_winrt.cc
++++ src/3rdparty/chromium/services/device/generic_sensor/platform_sensor_reader_winrt.cc
+@@ -8,6 +8,7 @@
+
+ #include "base/numerics/math_constants.h"
+ #include "base/time/time.h"
++#include "base/win/com_init_util.h"
+ #include "base/win/core_winrt_util.h"
+ #include "services/device/generic_sensor/generic_sensor_consts.h"
+ #include "services/device/public/mojom/sensor.mojom.h"
+@@ -99,7 +100,11 @@ PlatformSensorReaderWinrtBase<
+ ISensorWinrtStatics,
+ ISensorWinrtClass,
+ ISensorReadingChangedHandler,
+- ISensorReadingChangedEventArgs>::PlatformSensorReaderWinrtBase() {
++ ISensorReadingChangedEventArgs>::PlatformSensorReaderWinrtBase()
++ : com_sta_task_runner_(base::SingleThreadTaskRunner::GetCurrentDefault()) {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(com_sta_sequence_checker_);
++ DETACH_FROM_SEQUENCE(main_sequence_checker_);
++
+ get_sensor_factory_callback_ =
+ base::BindRepeating([](ISensorWinrtStatics** sensor_factory) -> HRESULT {
+ return base::win::GetActivationFactory<ISensorWinrtStatics,
+@@ -119,6 +124,8 @@ void PlatformSensorReaderWinrtBase<
+ ISensorWinrtClass,
+ ISensorReadingChangedHandler,
+ ISensorReadingChangedEventArgs>::SetClient(Client* client) {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(main_sequence_checker_);
++
+ base::AutoLock autolock(lock_);
+ client_ = client;
+ }
+@@ -136,6 +143,8 @@ HRESULT PlatformSensorReaderWinrtBase<runtime_class_id,
+ ISensorReadingChangedEventArgs>::
+ ConvertSensorReadingTimeStamp(ComPtr<ISensorReading> sensor_reading,
+ base::TimeDelta* timestamp_delta) {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(com_sta_sequence_checker_);
++
+ DateTime timestamp;
+ HRESULT hr = sensor_reading->get_Timestamp(&timestamp);
+ if (FAILED(hr))
+@@ -157,6 +166,8 @@ bool PlatformSensorReaderWinrtBase<
+ ISensorWinrtClass,
+ ISensorReadingChangedHandler,
+ ISensorReadingChangedEventArgs>::Initialize() {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(com_sta_sequence_checker_);
++
+ ComPtr<ISensorWinrtStatics> sensor_statics;
+
+ HRESULT hr = get_sensor_factory_callback_.Run(&sensor_statics);
+@@ -180,10 +191,14 @@ bool PlatformSensorReaderWinrtBase<
+ return false;
+ }
+
+- minimum_report_interval_ = GetMinimumReportIntervalFromSensor();
++ {
++ base::AutoLock autolock(lock_);
++ minimum_report_interval_ = GetMinimumReportIntervalFromSensor();
+
+- if (minimum_report_interval_.is_zero())
+- DLOG(WARNING) << "Failed to get sensor minimum report interval";
++ if (minimum_report_interval_.is_zero()) {
++ DLOG(WARNING) << "Failed to get sensor minimum report interval";
++ }
++ }
+
+ return true;
+ }
+@@ -199,6 +214,8 @@ base::TimeDelta PlatformSensorReaderWinrtBase<
+ ISensorWinrtClass,
+ ISensorReadingChangedHandler,
+ ISensorReadingChangedEventArgs>::GetMinimumReportIntervalFromSensor() {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(com_sta_sequence_checker_);
++
+ UINT32 minimum_report_interval_ms = 0;
+ HRESULT hr = sensor_->get_MinimumReportInterval(&minimum_report_interval_ms);
+
+@@ -225,6 +242,9 @@ base::TimeDelta PlatformSensorReaderWinrtBase<
+ ISensorWinrtClass,
+ ISensorReadingChangedHandler,
+ ISensorReadingChangedEventArgs>::GetMinimalReportingInterval() const {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(main_sequence_checker_);
++
++ base::AutoLock autolock(lock_);
+ return minimum_report_interval_;
+ }
+
+@@ -239,6 +259,8 @@ bool PlatformSensorReaderWinrtBase<runtime_class_id,
+ ISensorReadingChangedHandler,
+ ISensorReadingChangedEventArgs>::
+ StartSensor(const PlatformSensorConfiguration& configuration) {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(main_sequence_checker_);
++
+ base::AutoLock autolock(lock_);
+
+ if (!reading_callback_token_) {
+@@ -256,7 +278,39 @@ bool PlatformSensorReaderWinrtBase<runtime_class_id,
+ }
+
+ auto reading_changed_handler = Callback<ISensorReadingChangedHandler>(
+- this, &PlatformSensorReaderWinrtBase::OnReadingChangedCallback);
++ [weak_ptr(weak_ptr_factory_.GetWeakPtr()),
++ com_sta_task_runner(com_sta_task_runner_)](
++ ISensorWinrtClass* sender, ISensorReadingChangedEventArgs* args) {
++ // We cannot invoke OnReadingChangedCallback() directly because this
++ // callback is run on a COM MTA thread spawned by Windows (on tests,
++ // we mimic the behavior by using base::ThreadPool, as the task
++ // scheduler threads live in the MTA).
++ //
++ // This callback is invoked on an MTA thread because the
++ // ISensorReadingChangedHandler declarations explicitly inherit from
++ // Microsoft::WRL::FtmBase, which makes them agile, free-threaded
++ // objects.
++ //
++ // We could CHECK() this behavior here, but ::CoGetApartmentType()
++ // depends on ole32.dll and base::win::GetComApartmentTypeForThread()
++ // returns NONE in the non-test code path even though
++ // ::GoGetApartmentType() returns MTA, so the best we can do is just
++ // double-check that this is not running on an STA.
++ DCHECK_NE(base::win::GetComApartmentTypeForThread(),
++ base::win::ComApartmentType::STA);
++ com_sta_task_runner->PostTask(
++ FROM_HERE,
++ base::BindOnce(
++ // TODO(crbug.com/326349405): base::IgnoreResult is being used
++ // temporarily to reduce the amount of changes required for
++ // this bug. OnReadingChangedCallback() must be changed to
++ // have a void return type.
++ base::IgnoreResult(
++ &PlatformSensorReaderWinrtBase::OnReadingChangedCallback),
++ weak_ptr, ComPtr<ISensorWinrtClass>(sender),
++ ComPtr<ISensorReadingChangedEventArgs>(args)));
++ return S_OK;
++ });
+
+ EventRegistrationToken event_token;
+ hr = sensor_->add_ReadingChanged(reading_changed_handler.Get(),
+@@ -285,6 +339,9 @@ void PlatformSensorReaderWinrtBase<
+ ISensorWinrtClass,
+ ISensorReadingChangedHandler,
+ ISensorReadingChangedEventArgs>::StopSensor() {
++ // This function is called in the main task runner by PlatformSensorWin as
++ // well as in the com_sta_task_runner_ by the destructor.
++
+ base::AutoLock autolock(lock_);
+
+ if (reading_callback_token_) {
+@@ -316,6 +373,8 @@ PlatformSensorReaderWinrtLightSensor::PlatformSensorReaderWinrtLightSensor() =
+ HRESULT PlatformSensorReaderWinrtLightSensor::OnReadingChangedCallback(
+ ILightSensor* light_sensor,
+ ILightSensorReadingChangedEventArgs* reading_changed_args) {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(com_sta_sequence_checker_);
++
+ ComPtr<ILightSensorReading> light_sensor_reading;
+ HRESULT hr = reading_changed_args->get_Reading(&light_sensor_reading);
+ if (FAILED(hr)) {
+@@ -379,6 +438,8 @@ PlatformSensorReaderWinrtAccelerometer::
+ HRESULT PlatformSensorReaderWinrtAccelerometer::OnReadingChangedCallback(
+ IAccelerometer* accelerometer,
+ IAccelerometerReadingChangedEventArgs* reading_changed_args) {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(com_sta_sequence_checker_);
++
+ ComPtr<IAccelerometerReading> accelerometer_reading;
+ HRESULT hr = reading_changed_args->get_Reading(&accelerometer_reading);
+ if (FAILED(hr)) {
+@@ -464,6 +525,8 @@ PlatformSensorReaderWinrtGyrometer::PlatformSensorReaderWinrtGyrometer() =
+ HRESULT PlatformSensorReaderWinrtGyrometer::OnReadingChangedCallback(
+ IGyrometer* gyrometer,
+ IGyrometerReadingChangedEventArgs* reading_changed_args) {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(com_sta_sequence_checker_);
++
+ ComPtr<IGyrometerReading> gyrometer_reading;
+ HRESULT hr = reading_changed_args->get_Reading(&gyrometer_reading);
+ if (FAILED(hr)) {
+@@ -548,6 +611,8 @@ PlatformSensorReaderWinrtMagnetometer::PlatformSensorReaderWinrtMagnetometer() =
+ HRESULT PlatformSensorReaderWinrtMagnetometer::OnReadingChangedCallback(
+ IMagnetometer* magnetometer,
+ IMagnetometerReadingChangedEventArgs* reading_changed_args) {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(com_sta_sequence_checker_);
++
+ ComPtr<IMagnetometerReading> magnetometer_reading;
+ HRESULT hr = reading_changed_args->get_Reading(&magnetometer_reading);
+ if (FAILED(hr)) {
+@@ -631,6 +696,8 @@ HRESULT
+ PlatformSensorReaderWinrtAbsOrientationEulerAngles::OnReadingChangedCallback(
+ IInclinometer* inclinometer,
+ IInclinometerReadingChangedEventArgs* reading_changed_args) {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(com_sta_sequence_checker_);
++
+ ComPtr<IInclinometerReading> inclinometer_reading;
+ HRESULT hr = reading_changed_args->get_Reading(&inclinometer_reading);
+ if (FAILED(hr)) {
+@@ -717,6 +784,8 @@ HRESULT
+ PlatformSensorReaderWinrtAbsOrientationQuaternion::OnReadingChangedCallback(
+ IOrientationSensor* orientation_sensor,
+ IOrientationSensorReadingChangedEventArgs* reading_changed_args) {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(com_sta_sequence_checker_);
++
+ ComPtr<IOrientationSensorReading> orientation_sensor_reading;
+ HRESULT hr = reading_changed_args->get_Reading(&orientation_sensor_reading);
+ if (FAILED(hr)) {
+diff --git a/chromium/services/device/generic_sensor/platform_sensor_reader_winrt.h b/chromium/services/device/generic_sensor/platform_sensor_reader_winrt.h
+index 66c40adc59e8..e4521a7816fa 100644
+--- src/3rdparty/chromium/services/device/generic_sensor/platform_sensor_reader_winrt.h
++++ src/3rdparty/chromium/services/device/generic_sensor/platform_sensor_reader_winrt.h
+@@ -14,7 +14,10 @@
+
+ #include "base/functional/callback.h"
+ #include "base/memory/raw_ptr.h"
++#include "base/memory/weak_ptr.h"
++#include "base/sequence_checker.h"
+ #include "base/synchronization/lock.h"
++#include "base/task/single_thread_task_runner.h"
+ #include "base/thread_annotations.h"
+ #include "base/time/time.h"
+ #include "services/device/generic_sensor/platform_sensor_reader_win_base.h"
+@@ -77,7 +80,10 @@ class PlatformSensorReaderWinrtBase : public PlatformSensorReaderWinBase {
+
+ protected:
+ PlatformSensorReaderWinrtBase();
+- virtual ~PlatformSensorReaderWinrtBase() { StopSensor(); }
++ virtual ~PlatformSensorReaderWinrtBase() {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(com_sta_sequence_checker_);
++ StopSensor();
++ }
+
+ // Derived classes should implement this function to handle sensor specific
+ // parsing of the sensor reading.
+@@ -93,11 +99,15 @@ class PlatformSensorReaderWinrtBase : public PlatformSensorReaderWinBase {
+ Microsoft::WRL::ComPtr<ISensorReading> sensor_reading,
+ base::TimeDelta* timestamp_delta);
+
+- // Following class member is protected by lock since SetClient,
+- // StartSensor, and StopSensor can all be called from different
+- // threads by PlatformSensorWin.
+- base::Lock lock_;
+- // Null if there is no client to notify, non-null otherwise.
++ SEQUENCE_CHECKER(com_sta_sequence_checker_);
++ SEQUENCE_CHECKER(main_sequence_checker_);
++
++ mutable base::Lock lock_;
++
++ // Null if there is no client to notify, non-null otherwise. Protected by
++ // |lock_| because SetClient() and StartSensor() are called from the main
++ // task runner rather than the thread where this object is created, and
++ // StopSensor() may be called from the main task runner too.
+ raw_ptr<Client, DanglingUntriaged> client_ GUARDED_BY(lock_);
+
+ // Always report the first sample received after starting the sensor.
+@@ -106,13 +116,21 @@ class PlatformSensorReaderWinrtBase : public PlatformSensorReaderWinBase {
+ private:
+ base::TimeDelta GetMinimumReportIntervalFromSensor();
+
++ // Task runner where this object was created.
++ scoped_refptr<base::SingleThreadTaskRunner> com_sta_task_runner_;
++
+ GetSensorFactoryFunctor get_sensor_factory_callback_;
+
+ // absl::nullopt if the sensor has not been started, non-empty otherwise.
+ absl::optional<EventRegistrationToken> reading_callback_token_;
+
+- base::TimeDelta minimum_report_interval_;
++ // Protected by |lock_| because GetMinimalReportingInterval() is called from
++ // the main task runner.
++ base::TimeDelta minimum_report_interval_ GUARDED_BY(lock_);
++
+ Microsoft::WRL::ComPtr<ISensorWinrtClass> sensor_;
++
++ base::WeakPtrFactory<PlatformSensorReaderWinrtBase> weak_ptr_factory_{this};
+ };
+
+ class PlatformSensorReaderWinrtLightSensor final
+diff --git a/chromium/services/device/generic_sensor/platform_sensor_reader_winrt_unittests.cc b/chromium/services/device/generic_sensor/platform_sensor_reader_winrt_unittests.cc
+index 2283de90c75d..f6add828b496 100644
+--- src/3rdparty/chromium/services/device/generic_sensor/platform_sensor_reader_winrt_unittests.cc
++++ src/3rdparty/chromium/services/device/generic_sensor/platform_sensor_reader_winrt_unittests.cc
+@@ -6,8 +6,13 @@
+
+ #include <objbase.h>
+
++#include "base/notreached.h"
+ #include "base/numerics/math_constants.h"
++#include "base/run_loop.h"
++#include "base/task/task_traits.h"
++#include "base/task/thread_pool.h"
+ #include "base/test/bind.h"
++#include "base/test/gmock_callback_support.h"
+ #include "base/test/task_environment.h"
+ #include "base/win/core_winrt_util.h"
+ #include "base/win/scoped_com_initializer.h"
+@@ -428,15 +433,26 @@ class FakeSensorWinrt
+ return remove_reading_changed_return_code_;
+ }
+
+- // Makes any clients registered via add_ReadingChanged() to trigger with
+- // the given sensor reading.
++ // Invokes the handler added via add_ReadingChanged() with the reading
++ // described by |reading|.
++ //
++ // The invocation is asynchronous to better simulate real behavior, where
++ // Windows delivers the reading notifications in a separate MTA thread.
+ void TriggerFakeSensorReading(
+ Microsoft::WRL::ComPtr<ISensorReading> reading) {
+- EXPECT_TRUE(handler_);
+ Microsoft::WRL::ComPtr<ISensorReadingChangedEventArgs> reading_event_args =
+ Microsoft::WRL::Make<FakeSensorReadingChangedEventArgsWinrt<
+ ISensorReading, ISensorReadingChangedEventArgs>>(reading);
+- EXPECT_HRESULT_SUCCEEDED(handler_->Invoke(this, reading_event_args.Get()));
++ base::ThreadPool::PostTask(
++ FROM_HERE, {base::MayBlock()},
++ base::BindLambdaForTesting(
++ // Copy |handler_| and |reading_event_args| to ensure they do not
++ // lose their values when TriggerFakeSensorReading() exits.
++ [this, handler = handler_, reading_event_args]() {
++ ASSERT_TRUE(handler);
++ EXPECT_HRESULT_SUCCEEDED(
++ handler->Invoke(this, reading_event_args.Get()));
++ }));
+ }
+
+ // Returns true if any clients are registered for readings via
+@@ -547,7 +563,47 @@ class FakeSensorFactoryWinrt
+ };
+
+ class PlatformSensorReaderTestWinrt : public testing::Test {
+- private:
++ public:
++ void SetUp() override {
++ // Ensure each test starts with a fresh task runner.
++ com_sta_task_runner_ =
++ base::ThreadPool::CreateCOMSTATaskRunner({base::MayBlock()});
++ }
++
++ // Synchronously creates a new PlatformSensorReaderWinrtBase-derived class on
++ // |com_sta_task_runner_| and returns it.
++ //
++ // This better simulates real behavior, as PlatformSensorProviderWinrt
++ // creates readers on a COM STA task runner.
++ template <typename SensorReader,
++ typename ISensorStatics,
++ typename... OtherFactoryTypes>
++ auto CreateAndInitializeSensor(
++ const Microsoft::WRL::ComPtr<
++ FakeSensorFactoryWinrt<ISensorStatics, OtherFactoryTypes...>>&
++ fake_sensor_factory) {
++ std::unique_ptr<SensorReader, base::OnTaskRunnerDeleter> reader(
++ nullptr, base::OnTaskRunnerDeleter(com_sta_task_runner_));
++
++ base::RunLoop run_loop;
++ com_sta_task_runner_->PostTaskAndReply(
++ FROM_HERE, base::BindLambdaForTesting([&]() {
++ reader.reset(new SensorReader);
++ reader->InitForTesting(base::BindLambdaForTesting(
++ [&](ISensorStatics** sensor_factory) -> HRESULT {
++ return fake_sensor_factory.CopyTo(sensor_factory);
++ }));
++ ASSERT_TRUE(reader->Initialize());
++ }),
++ run_loop.QuitClosure());
++ run_loop.Run();
++
++ return reader;
++ }
++
++ protected:
++ scoped_refptr<base::SingleThreadTaskRunner> com_sta_task_runner_;
++
+ base::test::TaskEnvironment task_environment_;
+ base::win::ScopedCOMInitializer scoped_com_initializer_;
+ };
+@@ -602,11 +658,9 @@ TEST_F(PlatformSensorReaderTestWinrt, SensorMinimumReportInterval) {
+ ABI::Windows::Devices::Sensors::LightSensorReadingChangedEventArgs>>();
+ auto fake_sensor = fake_sensor_factory->fake_sensor_;
+
+- auto sensor = std::make_unique<PlatformSensorReaderWinrtLightSensor>();
+- sensor->InitForTesting(base::BindLambdaForTesting(
+- [&](ABI::Windows::Devices::Sensors::ILightSensorStatics** sensor_factory)
+- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); }));
+- EXPECT_TRUE(sensor->Initialize());
++ auto sensor = CreateAndInitializeSensor<PlatformSensorReaderWinrtLightSensor>(
++ fake_sensor_factory);
++ ASSERT_TRUE(sensor);
+
+ EXPECT_EQ(sensor->GetMinimalReportingInterval().InMilliseconds(),
+ kExpectedMinimumReportInterval);
+@@ -623,20 +677,42 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedSensorMinimumReportInterval) {
+ ABI::Windows::Devices::Sensors::ILightSensorReadingChangedEventArgs,
+ ABI::Windows::Devices::Sensors::LightSensorReadingChangedEventArgs>>();
+ auto fake_sensor = fake_sensor_factory->fake_sensor_;
+-
+- auto sensor = std::make_unique<PlatformSensorReaderWinrtLightSensor>();
+ fake_sensor->SetGetMinimumReportIntervalReturnCode(E_FAIL);
+- sensor->InitForTesting(base::BindLambdaForTesting(
+- [&](ABI::Windows::Devices::Sensors::ILightSensorStatics** sensor_factory)
+- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); }));
+- EXPECT_TRUE(sensor->Initialize());
++
++ auto sensor = CreateAndInitializeSensor<PlatformSensorReaderWinrtLightSensor>(
++ fake_sensor_factory);
++ ASSERT_TRUE(sensor);
+
+ EXPECT_EQ(sensor->GetMinimalReportingInterval().InMilliseconds(), 0);
+ }
+
+-// Tests that PlatformSensorReaderWinrtBase converts the timestamp correctly
+-TEST_F(PlatformSensorReaderTestWinrt, SensorTimestampConversion) {
+- static constexpr double expectedTimestampDeltaSecs = 19.0;
++TEST_F(PlatformSensorReaderTestWinrt, ReadingChangedCallbackAndPostTask) {
++ // Instead of using PlatformSensorReaderWinrtLightSensor, declare a custom
++ // implementation that does less and whose sole purpose is to assert that its
++ // OnReadingChangedCallback() implementation is never called.
++ struct CustomLightSensor
++ : public PlatformSensorReaderWinrtBase<
++ RuntimeClass_Windows_Devices_Sensors_LightSensor,
++ ABI::Windows::Devices::Sensors::ILightSensorStatics,
++ ABI::Windows::Devices::Sensors::ILightSensor,
++ Microsoft::WRL::Implements<
++ Microsoft::WRL::RuntimeClassFlags<Microsoft::WRL::ClassicCom>,
++ ABI::Windows::Foundation::ITypedEventHandler<
++ ABI::Windows::Devices::Sensors::LightSensor*,
++ ABI::Windows::Devices::Sensors::
++ LightSensorReadingChangedEventArgs*>,
++ Microsoft::WRL::FtmBase>,
++ ABI::Windows::Devices::Sensors::
++ ILightSensorReadingChangedEventArgs> {
++ ~CustomLightSensor() override = default;
++
++ HRESULT OnReadingChangedCallback(
++ ABI::Windows::Devices::Sensors::ILightSensor*,
++ ABI::Windows::Devices::Sensors::ILightSensorReadingChangedEventArgs*)
++ override {
++ NOTREACHED_NORETURN() << "This function should not have been reached";
++ }
++ };
+
+ auto fake_sensor_factory = Microsoft::WRL::Make<FakeSensorFactoryWinrt<
+ ABI::Windows::Devices::Sensors::ILightSensorStatics,
+@@ -647,21 +723,57 @@ TEST_F(PlatformSensorReaderTestWinrt, SensorTimestampConversion) {
+ ABI::Windows::Devices::Sensors::LightSensorReadingChangedEventArgs>>();
+ auto fake_sensor = fake_sensor_factory->fake_sensor_;
+
+- auto sensor = std::make_unique<PlatformSensorReaderWinrtLightSensor>();
+- sensor->InitForTesting(base::BindLambdaForTesting(
++ // Instead of using CreateAndInitializeSensor(), for simplicity and for
++ // better control over |light_sensor|'s lifetime we invert things and create
++ // the object in the main task runner and invoke StartSensor() from another
++ // one. The effect on the Reader is the same -- the calls are still made from
++ // different task runners.
++ auto light_sensor = std::make_unique<CustomLightSensor>();
++ light_sensor->InitForTesting(base::BindLambdaForTesting(
+ [&](ABI::Windows::Devices::Sensors::ILightSensorStatics** sensor_factory)
+ -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); }));
+- EXPECT_TRUE(sensor->Initialize());
++ ASSERT_TRUE(light_sensor->Initialize());
++
++ base::RunLoop run_loop;
++ base::ThreadPool::PostTaskAndReply(
++ FROM_HERE, base::BindLambdaForTesting([&]() {
++ ASSERT_TRUE(light_sensor->StartSensor(
++ PlatformSensorConfiguration(kExpectedReportFrequencySet)));
++ }),
++ run_loop.QuitClosure());
++ run_loop.Run();
++
++ // The idea here is to rely on the fact that TriggerFakeSensorReading() is
++ // asynchronous: we call it while it has a valid handler, it schedules a
++ // task, we destroy the handler object synchronoustly and then it Invoke()s
++ // the callback, which should never reach
++ // CustomLightSensor::OnReadingChangedCallback().
++ Microsoft::WRL::ComPtr<ABI::Windows::Devices::Sensors::ILightSensorReading>
++ reading = Microsoft::WRL::Make<FakeLightSensorReadingWinrt>(
++ ABI::Windows::Foundation::DateTime{}, 0.0f);
++ fake_sensor->TriggerFakeSensorReading(reading);
++ light_sensor.reset();
++ task_environment_.RunUntilIdle();
++}
+
+- auto mock_client = std::make_unique<testing::NiceMock<MockClient>>();
++// Tests that PlatformSensorReaderWinrtBase converts the timestamp correctly
++TEST_F(PlatformSensorReaderTestWinrt, SensorTimestampConversion) {
++ static constexpr double expectedTimestampDeltaSecs = 19.0;
+
+- double lastReportedTimestamp = 0.0;
+- EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_))
+- .WillRepeatedly(testing::Invoke([&](const SensorReading& reading) {
+- lastReportedTimestamp = reading.als.timestamp;
+- EXPECT_EQ(reading.als.value, 0.0f);
+- }));
++ auto fake_sensor_factory = Microsoft::WRL::Make<FakeSensorFactoryWinrt<
++ ABI::Windows::Devices::Sensors::ILightSensorStatics,
++ ABI::Windows::Devices::Sensors::ILightSensor,
++ ABI::Windows::Devices::Sensors::LightSensor,
++ ABI::Windows::Devices::Sensors::ILightSensorReading,
++ ABI::Windows::Devices::Sensors::ILightSensorReadingChangedEventArgs,
++ ABI::Windows::Devices::Sensors::LightSensorReadingChangedEventArgs>>();
++ auto fake_sensor = fake_sensor_factory->fake_sensor_;
++
++ auto sensor = CreateAndInitializeSensor<PlatformSensorReaderWinrtLightSensor>(
++ fake_sensor_factory);
++ ASSERT_TRUE(sensor);
+
++ auto mock_client = std::make_unique<testing::NiceMock<MockClient>>();
+ sensor->SetClient(mock_client.get());
+
+ PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet);
+@@ -672,18 +784,35 @@ TEST_F(PlatformSensorReaderTestWinrt, SensorTimestampConversion) {
+ Microsoft::WRL::ComPtr<ABI::Windows::Devices::Sensors::ILightSensorReading>
+ reading = Microsoft::WRL::Make<FakeLightSensorReadingWinrt>(
+ ABI::Windows::Foundation::DateTime{}, 0.0f);
+- fake_sensor->TriggerFakeSensorReading(reading);
+- EXPECT_EQ(lastReportedTimestamp, 0);
++ {
++ base::RunLoop run_loop;
++ EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_))
++ .WillOnce(testing::Invoke([&](const SensorReading& reading) {
++ EXPECT_EQ(reading.als.timestamp, 0.0);
++ EXPECT_EQ(reading.als.value, 0.0f);
++ run_loop.Quit();
++ }));
++ fake_sensor->TriggerFakeSensorReading(reading);
++ run_loop.Run();
++ }
+
++ // Verify the reported time stamp has ticked forward
++ // expectedTimestampDeltaSecs
+ auto second_timestamp =
+ base::Seconds(expectedTimestampDeltaSecs).ToWinrtDateTime();
+ reading =
+ Microsoft::WRL::Make<FakeLightSensorReadingWinrt>(second_timestamp, 0.0f);
+- fake_sensor->TriggerFakeSensorReading(reading);
+-
+- // Verify the reported time stamp has ticked forward
+- // expectedTimestampDeltaSecs
+- EXPECT_EQ(lastReportedTimestamp, expectedTimestampDeltaSecs);
++ {
++ base::RunLoop run_loop;
++ EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_))
++ .WillOnce(testing::Invoke([&](const SensorReading& reading) {
++ EXPECT_EQ(reading.als.timestamp, expectedTimestampDeltaSecs);
++ EXPECT_EQ(reading.als.value, 0.0f);
++ run_loop.Quit();
++ }));
++ fake_sensor->TriggerFakeSensorReading(reading);
++ run_loop.Run();
++ }
+ }
+
+ // Tests that PlatformSensorReaderWinrtBase starts and stops the
+@@ -698,11 +827,9 @@ TEST_F(PlatformSensorReaderTestWinrt, StartStopSensorCallbacks) {
+ ABI::Windows::Devices::Sensors::LightSensorReadingChangedEventArgs>>();
+ auto fake_sensor = fake_sensor_factory->fake_sensor_;
+
+- auto sensor = std::make_unique<PlatformSensorReaderWinrtLightSensor>();
+- sensor->InitForTesting(base::BindLambdaForTesting(
+- [&](ABI::Windows::Devices::Sensors::ILightSensorStatics** sensor_factory)
+- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); }));
+- EXPECT_TRUE(sensor->Initialize());
++ auto sensor = CreateAndInitializeSensor<PlatformSensorReaderWinrtLightSensor>(
++ fake_sensor_factory);
++ ASSERT_TRUE(sensor);
+
+ PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet);
+ EXPECT_TRUE(sensor->StartSensor(sensor_config));
+@@ -732,17 +859,19 @@ TEST_F(PlatformSensorReaderTestWinrt, StartWithoutStopSensorCallbacks) {
+ ABI::Windows::Devices::Sensors::LightSensorReadingChangedEventArgs>>();
+ auto fake_sensor = fake_sensor_factory->fake_sensor_;
+
+- auto sensor = std::make_unique<PlatformSensorReaderWinrtLightSensor>();
+- sensor->InitForTesting(base::BindLambdaForTesting(
+- [&](ABI::Windows::Devices::Sensors::ILightSensorStatics** sensor_factory)
+- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); }));
+- EXPECT_TRUE(sensor->Initialize());
++ auto sensor = CreateAndInitializeSensor<PlatformSensorReaderWinrtLightSensor>(
++ fake_sensor_factory);
++ ASSERT_TRUE(sensor);
+
+ PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet);
+ EXPECT_TRUE(sensor->StartSensor(sensor_config));
+ EXPECT_TRUE(fake_sensor->IsSensorStarted());
+
++ // *sensor is deleted in |com_sta_task_runner_|, so we need to wait for it to
++ // happen asynchronously.
+ sensor.reset();
++ task_environment_.RunUntilIdle();
++
+ EXPECT_FALSE(fake_sensor->IsSensorStarted());
+ }
+
+@@ -758,11 +887,9 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedSensorStart) {
+ ABI::Windows::Devices::Sensors::LightSensorReadingChangedEventArgs>>();
+ auto fake_sensor = fake_sensor_factory->fake_sensor_;
+
+- auto sensor = std::make_unique<PlatformSensorReaderWinrtLightSensor>();
+- sensor->InitForTesting(base::BindLambdaForTesting(
+- [&](ABI::Windows::Devices::Sensors::ILightSensorStatics** sensor_factory)
+- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); }));
+- EXPECT_TRUE(sensor->Initialize());
++ auto sensor = CreateAndInitializeSensor<PlatformSensorReaderWinrtLightSensor>(
++ fake_sensor_factory);
++ ASSERT_TRUE(sensor);
+
+ fake_sensor->SetPutReportIntervalReturnCode(E_FAIL);
+
+@@ -787,11 +914,9 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedSensorStop) {
+ ABI::Windows::Devices::Sensors::LightSensorReadingChangedEventArgs>>();
+ auto fake_sensor = fake_sensor_factory->fake_sensor_;
+
+- auto sensor = std::make_unique<PlatformSensorReaderWinrtLightSensor>();
+- sensor->InitForTesting(base::BindLambdaForTesting(
+- [&](ABI::Windows::Devices::Sensors::ILightSensorStatics** sensor_factory)
+- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); }));
+- EXPECT_TRUE(sensor->Initialize());
++ auto sensor = CreateAndInitializeSensor<PlatformSensorReaderWinrtLightSensor>(
++ fake_sensor_factory);
++ ASSERT_TRUE(sensor);
+
+ PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet);
+ EXPECT_TRUE(sensor->StartSensor(sensor_config));
+@@ -813,11 +938,9 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedLightSensorSampleParse) {
+ ABI::Windows::Devices::Sensors::LightSensorReadingChangedEventArgs>>();
+ auto fake_sensor = fake_sensor_factory->fake_sensor_;
+
+- auto sensor = std::make_unique<PlatformSensorReaderWinrtLightSensor>();
+- sensor->InitForTesting(base::BindLambdaForTesting(
+- [&](ABI::Windows::Devices::Sensors::ILightSensorStatics** sensor_factory)
+- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); }));
+- EXPECT_TRUE(sensor->Initialize());
++ auto sensor = CreateAndInitializeSensor<PlatformSensorReaderWinrtLightSensor>(
++ fake_sensor_factory);
++ ASSERT_TRUE(sensor);
+
+ auto mock_client = std::make_unique<testing::NiceMock<MockClient>>();
+
+@@ -832,12 +955,17 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedLightSensorSampleParse) {
+ auto reading = Microsoft::WRL::Make<FakeLightSensorReadingWinrt>(
+ ABI::Windows::Foundation::DateTime{}, 0.0f);
+
++ // We cannot use a base::RunLoop in the checks below because we are expecting
++ // that MockClient::OnReadingUpdate() does _not_ get called.
++
+ reading->SetGetTimestampReturnCode(E_FAIL);
+ fake_sensor->TriggerFakeSensorReading(reading);
+
+ reading->SetGetTimestampReturnCode(S_OK);
+ reading->SetGetIlluminanceInLuxReturnCode(E_FAIL);
+ fake_sensor->TriggerFakeSensorReading(reading);
++
++ task_environment_.RunUntilIdle();
+ }
+
+ // Tests that PlatformSensorReaderWinrtLightSensor notifies the client
+@@ -854,19 +982,11 @@ TEST_F(PlatformSensorReaderTestWinrt, SensorClientNotification) {
+ ABI::Windows::Devices::Sensors::LightSensorReadingChangedEventArgs>>();
+ auto fake_sensor = fake_sensor_factory->fake_sensor_;
+
+- auto sensor = std::make_unique<PlatformSensorReaderWinrtLightSensor>();
+- sensor->InitForTesting(base::BindLambdaForTesting(
+- [&](ABI::Windows::Devices::Sensors::ILightSensorStatics** sensor_factory)
+- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); }));
+- EXPECT_TRUE(sensor->Initialize());
++ auto sensor = CreateAndInitializeSensor<PlatformSensorReaderWinrtLightSensor>(
++ fake_sensor_factory);
++ ASSERT_TRUE(sensor);
+
+ auto mock_client = std::make_unique<testing::NiceMock<MockClient>>();
+-
+- EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_))
+- .WillOnce(testing::Invoke([&](const SensorReading& reading) {
+- EXPECT_EQ(expected_lux, reading.als.value);
+- }));
+-
+ sensor->SetClient(mock_client.get());
+
+ PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet);
+@@ -874,8 +994,16 @@ TEST_F(PlatformSensorReaderTestWinrt, SensorClientNotification) {
+
+ auto reading = Microsoft::WRL::Make<FakeLightSensorReadingWinrt>(
+ ABI::Windows::Foundation::DateTime{}, expected_lux);
+- fake_sensor->TriggerFakeSensorReading(reading);
+-
++ {
++ base::RunLoop run_loop;
++ EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_))
++ .WillOnce(testing::Invoke([&](const SensorReading& reading) {
++ EXPECT_EQ(expected_lux, reading.als.value);
++ run_loop.Quit();
++ }));
++ fake_sensor->TriggerFakeSensorReading(reading);
++ run_loop.Run();
++ }
+ sensor->StopSensor();
+ }
+
+@@ -896,30 +1024,31 @@ TEST_F(PlatformSensorReaderTestWinrt, CheckAccelerometerReadingConversion) {
+ Microsoft::WRL::Make<FakeAccelerometerSensorWinrt>());
+ auto fake_sensor = fake_sensor_factory->fake_sensor_;
+
+- auto sensor = std::make_unique<PlatformSensorReaderWinrtAccelerometer>();
+- sensor->InitForTesting(base::BindLambdaForTesting(
+- [&](ABI::Windows::Devices::Sensors::IAccelerometerStatics**
+- sensor_factory) -> HRESULT {
+- return fake_sensor_factory.CopyTo(sensor_factory);
+- }));
+- EXPECT_TRUE(sensor->Initialize());
++ auto sensor =
++ CreateAndInitializeSensor<PlatformSensorReaderWinrtAccelerometer>(
++ fake_sensor_factory);
++ ASSERT_TRUE(sensor);
+
+ auto mock_client = std::make_unique<testing::NiceMock<MockClient>>();
+- EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_))
+- .WillOnce(testing::Invoke([&](const SensorReading& reading) {
+- EXPECT_EQ(-expected_x * base::kMeanGravityDouble, reading.accel.x);
+- EXPECT_EQ(-expected_y * base::kMeanGravityDouble, reading.accel.y);
+- EXPECT_EQ(-expected_z * base::kMeanGravityDouble, reading.accel.z);
+- }));
+-
+ sensor->SetClient(mock_client.get());
+
+ PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet);
+-
+ EXPECT_TRUE(sensor->StartSensor(sensor_config));
++
+ auto reading = Microsoft::WRL::Make<FakeAccelerometerReadingWinrt>(
+ ABI::Windows::Foundation::DateTime{}, expected_x, expected_y, expected_z);
+- fake_sensor->TriggerFakeSensorReading(reading);
++ {
++ base::RunLoop run_loop;
++ EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_))
++ .WillOnce(testing::Invoke([&](const SensorReading& reading) {
++ EXPECT_EQ(-expected_x * base::kMeanGravityDouble, reading.accel.x);
++ EXPECT_EQ(-expected_y * base::kMeanGravityDouble, reading.accel.y);
++ EXPECT_EQ(-expected_z * base::kMeanGravityDouble, reading.accel.z);
++ run_loop.Quit();
++ }));
++ fake_sensor->TriggerFakeSensorReading(reading);
++ run_loop.Run();
++ }
+
+ sensor->StopSensor();
+ }
+@@ -937,13 +1066,10 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedAccelerometerSampleParse) {
+ Microsoft::WRL::Make<FakeAccelerometerSensorWinrt>());
+ auto fake_sensor = fake_sensor_factory->fake_sensor_;
+
+- auto sensor = std::make_unique<PlatformSensorReaderWinrtAccelerometer>();
+- sensor->InitForTesting(base::BindLambdaForTesting(
+- [&](ABI::Windows::Devices::Sensors::IAccelerometerStatics**
+- sensor_factory) -> HRESULT {
+- return fake_sensor_factory.CopyTo(sensor_factory);
+- }));
+- EXPECT_TRUE(sensor->Initialize());
++ auto sensor =
++ CreateAndInitializeSensor<PlatformSensorReaderWinrtAccelerometer>(
++ fake_sensor_factory);
++ ASSERT_TRUE(sensor);
+
+ auto mock_client = std::make_unique<testing::NiceMock<MockClient>>();
+ sensor->SetClient(mock_client.get());
+@@ -954,6 +1080,9 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedAccelerometerSampleParse) {
+ auto reading = Microsoft::WRL::Make<FakeAccelerometerReadingWinrt>(
+ ABI::Windows::Foundation::DateTime{}, 0, 0, 0);
+
++ // We cannot use a base::RunLoop in the checks below because we are expecting
++ // that MockClient::OnReadingUpdate() does _not_ get called.
++
+ reading->SetGetTimestampReturnCode(E_FAIL);
+ fake_sensor->TriggerFakeSensorReading(reading);
+
+@@ -968,6 +1097,8 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedAccelerometerSampleParse) {
+ reading->SetGetYReturnCode(S_OK);
+ reading->SetGetZReturnCode(E_FAIL);
+ fake_sensor->TriggerFakeSensorReading(reading);
++
++ task_environment_.RunUntilIdle();
+ }
+
+ // Tests if PlatformSensorReaderWinrtGyrometer correctly converts sensor
+@@ -986,27 +1117,30 @@ TEST_F(PlatformSensorReaderTestWinrt, CheckGyrometerReadingConversion) {
+ ABI::Windows::Devices::Sensors::GyrometerReadingChangedEventArgs>>();
+ auto fake_sensor = fake_sensor_factory->fake_sensor_;
+
+- auto sensor = std::make_unique<PlatformSensorReaderWinrtGyrometer>();
+- sensor->InitForTesting(base::BindLambdaForTesting(
+- [&](ABI::Windows::Devices::Sensors::IGyrometerStatics** sensor_factory)
+- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); }));
+- EXPECT_TRUE(sensor->Initialize());
++ auto sensor = CreateAndInitializeSensor<PlatformSensorReaderWinrtGyrometer>(
++ fake_sensor_factory);
++ ASSERT_TRUE(sensor);
+
+ auto mock_client = std::make_unique<testing::NiceMock<MockClient>>();
+- EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_))
+- .WillOnce(testing::Invoke([&](const SensorReading& reading) {
+- EXPECT_EQ(gfx::DegToRad(expected_x), reading.gyro.x);
+- EXPECT_EQ(gfx::DegToRad(expected_y), reading.gyro.y);
+- EXPECT_EQ(gfx::DegToRad(expected_z), reading.gyro.z);
+- }));
+-
+ sensor->SetClient(mock_client.get());
++
+ PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet);
+ EXPECT_TRUE(sensor->StartSensor(sensor_config));
+
+ auto reading = Microsoft::WRL::Make<FakeGyrometerReadingWinrt>(
+ ABI::Windows::Foundation::DateTime{}, expected_x, expected_y, expected_z);
+- fake_sensor->TriggerFakeSensorReading(reading);
++ {
++ base::RunLoop run_loop;
++ EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_))
++ .WillOnce(testing::Invoke([&](const SensorReading& reading) {
++ EXPECT_EQ(gfx::DegToRad(expected_x), reading.gyro.x);
++ EXPECT_EQ(gfx::DegToRad(expected_y), reading.gyro.y);
++ EXPECT_EQ(gfx::DegToRad(expected_z), reading.gyro.z);
++ run_loop.Quit();
++ }));
++ fake_sensor->TriggerFakeSensorReading(reading);
++ run_loop.Run();
++ }
+
+ sensor->StopSensor();
+ }
+@@ -1023,11 +1157,9 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedGyrometerSampleParse) {
+ ABI::Windows::Devices::Sensors::GyrometerReadingChangedEventArgs>>();
+ auto fake_sensor = fake_sensor_factory->fake_sensor_;
+
+- auto sensor = std::make_unique<PlatformSensorReaderWinrtGyrometer>();
+- sensor->InitForTesting(base::BindLambdaForTesting(
+- [&](ABI::Windows::Devices::Sensors::IGyrometerStatics** sensor_factory)
+- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); }));
+- EXPECT_TRUE(sensor->Initialize());
++ auto sensor = CreateAndInitializeSensor<PlatformSensorReaderWinrtGyrometer>(
++ fake_sensor_factory);
++ ASSERT_TRUE(sensor);
+
+ auto mock_client = std::make_unique<testing::NiceMock<MockClient>>();
+ sensor->SetClient(mock_client.get());
+@@ -1038,6 +1170,9 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedGyrometerSampleParse) {
+ auto reading = Microsoft::WRL::Make<FakeGyrometerReadingWinrt>(
+ ABI::Windows::Foundation::DateTime{}, 0, 0, 0);
+
++ // We cannot use a base::RunLoop in the checks below because we are expecting
++ // that MockClient::OnReadingUpdate() does _not_ get called.
++
+ reading->SetGetTimestampReturnCode(E_FAIL);
+ fake_sensor->TriggerFakeSensorReading(reading);
+
+@@ -1052,6 +1187,8 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedGyrometerSampleParse) {
+ reading->SetGetYReturnCode(S_OK);
+ reading->SetGetZReturnCode(E_FAIL);
+ fake_sensor->TriggerFakeSensorReading(reading);
++
++ task_environment_.RunUntilIdle();
+ }
+
+ // Tests if PlatformSensorReaderWinrtMagnetometer correctly converts sensor
+@@ -1070,27 +1207,31 @@ TEST_F(PlatformSensorReaderTestWinrt, CheckMagnetometerReadingConversion) {
+ ABI::Windows::Devices::Sensors::MagnetometerReadingChangedEventArgs>>();
+ auto fake_sensor = fake_sensor_factory->fake_sensor_;
+
+- auto sensor = std::make_unique<PlatformSensorReaderWinrtMagnetometer>();
+- sensor->InitForTesting(base::BindLambdaForTesting(
+- [&](ABI::Windows::Devices::Sensors::IMagnetometerStatics** sensor_factory)
+- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); }));
+- EXPECT_TRUE(sensor->Initialize());
++ auto sensor =
++ CreateAndInitializeSensor<PlatformSensorReaderWinrtMagnetometer>(
++ fake_sensor_factory);
++ ASSERT_TRUE(sensor);
+
+ auto mock_client = std::make_unique<testing::NiceMock<MockClient>>();
+- EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_))
+- .WillOnce(testing::Invoke([&](const SensorReading& reading) {
+- EXPECT_EQ(expected_x, reading.magn.x);
+- EXPECT_EQ(expected_y, reading.magn.y);
+- EXPECT_EQ(expected_z, reading.magn.z);
+- }));
+-
+ sensor->SetClient(mock_client.get());
++
+ PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet);
+ EXPECT_TRUE(sensor->StartSensor(sensor_config));
+
+ auto reading = Microsoft::WRL::Make<FakeMagnetometerReadingWinrt>(
+ ABI::Windows::Foundation::DateTime{}, expected_x, expected_y, expected_z);
+- fake_sensor->TriggerFakeSensorReading(reading);
++ {
++ base::RunLoop run_loop;
++ EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_))
++ .WillOnce(testing::Invoke([&](const SensorReading& reading) {
++ EXPECT_EQ(expected_x, reading.magn.x);
++ EXPECT_EQ(expected_y, reading.magn.y);
++ EXPECT_EQ(expected_z, reading.magn.z);
++ run_loop.Quit();
++ }));
++ fake_sensor->TriggerFakeSensorReading(reading);
++ run_loop.Run();
++ }
+
+ sensor->StopSensor();
+ }
+@@ -1107,11 +1248,10 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedMagnetometerSampleParse) {
+ ABI::Windows::Devices::Sensors::MagnetometerReadingChangedEventArgs>>();
+ auto fake_sensor = fake_sensor_factory->fake_sensor_;
+
+- auto sensor = std::make_unique<PlatformSensorReaderWinrtMagnetometer>();
+- sensor->InitForTesting(base::BindLambdaForTesting(
+- [&](ABI::Windows::Devices::Sensors::IMagnetometerStatics** sensor_factory)
+- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); }));
+- EXPECT_TRUE(sensor->Initialize());
++ auto sensor =
++ CreateAndInitializeSensor<PlatformSensorReaderWinrtMagnetometer>(
++ fake_sensor_factory);
++ ASSERT_TRUE(sensor);
+
+ auto mock_client = std::make_unique<testing::NiceMock<MockClient>>();
+ sensor->SetClient(mock_client.get());
+@@ -1122,6 +1262,9 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedMagnetometerSampleParse) {
+ auto reading = Microsoft::WRL::Make<FakeMagnetometerReadingWinrt>(
+ ABI::Windows::Foundation::DateTime{}, 0, 0, 0);
+
++ // We cannot use a base::RunLoop in the checks below because we are expecting
++ // that MockClient::OnReadingUpdate() does _not_ get called.
++
+ reading->SetGetTimestampReturnCode(E_FAIL);
+ fake_sensor->TriggerFakeSensorReading(reading);
+
+@@ -1136,6 +1279,8 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedMagnetometerSampleParse) {
+ reading->SetGetYReturnCode(S_OK);
+ reading->SetGetZReturnCode(E_FAIL);
+ fake_sensor->TriggerFakeSensorReading(reading);
++
++ task_environment_.RunUntilIdle();
+ }
+
+ // Tests if PlatformSensorReaderWinrtAbsOrientationEulerAngles correctly
+@@ -1154,28 +1299,30 @@ TEST_F(PlatformSensorReaderTestWinrt, CheckInclinometerReadingConversion) {
+ ABI::Windows::Devices::Sensors::InclinometerReadingChangedEventArgs>>();
+ auto fake_sensor = fake_sensor_factory->fake_sensor_;
+
+- auto sensor =
+- std::make_unique<PlatformSensorReaderWinrtAbsOrientationEulerAngles>();
+- sensor->InitForTesting(base::BindLambdaForTesting(
+- [&](ABI::Windows::Devices::Sensors::IInclinometerStatics** sensor_factory)
+- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); }));
+- EXPECT_TRUE(sensor->Initialize());
++ auto sensor = CreateAndInitializeSensor<
++ PlatformSensorReaderWinrtAbsOrientationEulerAngles>(fake_sensor_factory);
++ ASSERT_TRUE(sensor);
+
+ auto mock_client = std::make_unique<testing::NiceMock<MockClient>>();
+- EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_))
+- .WillOnce(testing::Invoke([&](const SensorReading& reading) {
+- EXPECT_EQ(expected_x, reading.orientation_euler.x);
+- EXPECT_EQ(expected_y, reading.orientation_euler.y);
+- EXPECT_EQ(expected_z, reading.orientation_euler.z);
+- }));
+-
+ sensor->SetClient(mock_client.get());
++
+ PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet);
+ EXPECT_TRUE(sensor->StartSensor(sensor_config));
+
+ auto reading = Microsoft::WRL::Make<FakeInclinometerReadingWinrt>(
+ ABI::Windows::Foundation::DateTime{}, expected_x, expected_y, expected_z);
+- fake_sensor->TriggerFakeSensorReading(reading);
++ {
++ base::RunLoop run_loop;
++ EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_))
++ .WillOnce(testing::Invoke([&](const SensorReading& reading) {
++ EXPECT_EQ(expected_x, reading.orientation_euler.x);
++ EXPECT_EQ(expected_y, reading.orientation_euler.y);
++ EXPECT_EQ(expected_z, reading.orientation_euler.z);
++ run_loop.Quit();
++ }));
++ fake_sensor->TriggerFakeSensorReading(reading);
++ run_loop.Run();
++ }
+
+ sensor->StopSensor();
+ }
+@@ -1192,12 +1339,9 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedInclinometerSampleParse) {
+ ABI::Windows::Devices::Sensors::InclinometerReadingChangedEventArgs>>();
+ auto fake_sensor = fake_sensor_factory->fake_sensor_;
+
+- auto sensor =
+- std::make_unique<PlatformSensorReaderWinrtAbsOrientationEulerAngles>();
+- sensor->InitForTesting(base::BindLambdaForTesting(
+- [&](ABI::Windows::Devices::Sensors::IInclinometerStatics** sensor_factory)
+- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); }));
+- EXPECT_TRUE(sensor->Initialize());
++ auto sensor = CreateAndInitializeSensor<
++ PlatformSensorReaderWinrtAbsOrientationEulerAngles>(fake_sensor_factory);
++ ASSERT_TRUE(sensor);
+
+ auto mock_client = std::make_unique<testing::NiceMock<MockClient>>();
+ sensor->SetClient(mock_client.get());
+@@ -1208,6 +1352,9 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedInclinometerSampleParse) {
+ auto reading = Microsoft::WRL::Make<FakeInclinometerReadingWinrt>(
+ ABI::Windows::Foundation::DateTime{}, 0, 0, 0);
+
++ // We cannot use a base::RunLoop in the checks below because we are expecting
++ // that MockClient::OnReadingUpdate() does _not_ get called.
++
+ reading->SetGetTimestampReturnCode(E_FAIL);
+ fake_sensor->TriggerFakeSensorReading(reading);
+
+@@ -1222,6 +1369,8 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedInclinometerSampleParse) {
+ reading->SetGetYReturnCode(S_OK);
+ reading->SetGetZReturnCode(E_FAIL);
+ fake_sensor->TriggerFakeSensorReading(reading);
++
++ task_environment_.RunUntilIdle();
+ }
+
+ // Tests if PlatformSensorReaderWinrtAbsOrientationQuaternion correctly
+@@ -1242,32 +1391,32 @@ TEST_F(PlatformSensorReaderTestWinrt, CheckOrientationSensorReadingConversion) {
+ OrientationSensorReadingChangedEventArgs>>();
+ auto fake_sensor = fake_sensor_factory->fake_sensor_;
+
+- auto sensor =
+- std::make_unique<PlatformSensorReaderWinrtAbsOrientationQuaternion>();
+- sensor->InitForTesting(base::BindLambdaForTesting(
+- [&](ABI::Windows::Devices::Sensors::IOrientationSensorStatics**
+- sensor_factory) -> HRESULT {
+- return fake_sensor_factory.CopyTo(sensor_factory);
+- }));
+- EXPECT_TRUE(sensor->Initialize());
++ auto sensor = CreateAndInitializeSensor<
++ PlatformSensorReaderWinrtAbsOrientationQuaternion>(fake_sensor_factory);
++ ASSERT_TRUE(sensor);
+
+ auto mock_client = std::make_unique<testing::NiceMock<MockClient>>();
+- EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_))
+- .WillOnce(testing::Invoke([&](const SensorReading& reading) {
+- EXPECT_EQ(expected_w, reading.orientation_quat.w);
+- EXPECT_EQ(expected_x, reading.orientation_quat.x);
+- EXPECT_EQ(expected_y, reading.orientation_quat.y);
+- EXPECT_EQ(expected_z, reading.orientation_quat.z);
+- }));
+-
+ sensor->SetClient(mock_client.get());
++
+ PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet);
+ EXPECT_TRUE(sensor->StartSensor(sensor_config));
+
+ auto reading = Microsoft::WRL::Make<FakeOrientationSensorReadingWinrt>(
+ ABI::Windows::Foundation::DateTime{}, expected_w, expected_x, expected_y,
+ expected_z);
+- fake_sensor->TriggerFakeSensorReading(reading);
++ {
++ base::RunLoop run_loop;
++ EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_))
++ .WillOnce(testing::Invoke([&](const SensorReading& reading) {
++ EXPECT_EQ(expected_w, reading.orientation_quat.w);
++ EXPECT_EQ(expected_x, reading.orientation_quat.x);
++ EXPECT_EQ(expected_y, reading.orientation_quat.y);
++ EXPECT_EQ(expected_z, reading.orientation_quat.z);
++ run_loop.Quit();
++ }));
++ fake_sensor->TriggerFakeSensorReading(reading);
++ run_loop.Run();
++ }
+
+ sensor->StopSensor();
+ }
+@@ -1285,14 +1434,9 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedOrientationSampleParse) {
+ OrientationSensorReadingChangedEventArgs>>();
+ auto fake_sensor = fake_sensor_factory->fake_sensor_;
+
+- auto sensor =
+- std::make_unique<PlatformSensorReaderWinrtAbsOrientationQuaternion>();
+- sensor->InitForTesting(base::BindLambdaForTesting(
+- [&](ABI::Windows::Devices::Sensors::IOrientationSensorStatics**
+- sensor_factory) -> HRESULT {
+- return fake_sensor_factory.CopyTo(sensor_factory);
+- }));
+- EXPECT_TRUE(sensor->Initialize());
++ auto sensor = CreateAndInitializeSensor<
++ PlatformSensorReaderWinrtAbsOrientationQuaternion>(fake_sensor_factory);
++ ASSERT_TRUE(sensor);
+
+ auto mock_client = std::make_unique<testing::NiceMock<MockClient>>();
+ sensor->SetClient(mock_client.get());
+@@ -1303,12 +1447,17 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedOrientationSampleParse) {
+ auto reading = Microsoft::WRL::Make<FakeOrientationSensorReadingWinrt>(
+ ABI::Windows::Foundation::DateTime{}, 0, 0, 0, 0);
+
++ // We cannot use a base::RunLoop in the checks below because we are expecting
++ // that MockClient::OnReadingUpdate() does _not_ get called.
++
+ reading->SetGetTimestampReturnCode(E_FAIL);
+ fake_sensor->TriggerFakeSensorReading(reading);
+
+ reading->SetGetTimestampReturnCode(S_OK);
+ reading->SetGetQuaternionReturnCode(E_FAIL);
+ fake_sensor->TriggerFakeSensorReading(reading);
++
++ task_environment_.RunUntilIdle();
+ }
+
+ TEST_F(PlatformSensorReaderTestWinrt, LightSensorThresholding) {
+@@ -1321,29 +1470,30 @@ TEST_F(PlatformSensorReaderTestWinrt, LightSensorThresholding) {
+ ABI::Windows::Devices::Sensors::LightSensorReadingChangedEventArgs>>();
+ auto fake_sensor = fake_sensor_factory->fake_sensor_;
+
+- auto sensor = std::make_unique<PlatformSensorReaderWinrtLightSensor>();
+- sensor->InitForTesting(base::BindLambdaForTesting(
+- [&](ABI::Windows::Devices::Sensors::ILightSensorStatics** sensor_factory)
+- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); }));
+- EXPECT_TRUE(sensor->Initialize());
++ auto sensor = CreateAndInitializeSensor<PlatformSensorReaderWinrtLightSensor>(
++ fake_sensor_factory);
++ ASSERT_TRUE(sensor);
+
+ auto mock_client = std::make_unique<testing::NiceMock<MockClient>>();
+-
+- bool expected_callback = false;
+- EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_))
+- .WillRepeatedly(testing::Invoke(
+- [&](const SensorReading&) { EXPECT_TRUE(expected_callback); }));
+-
+ sensor->SetClient(mock_client.get());
++
+ PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet);
+ EXPECT_TRUE(sensor->StartSensor(sensor_config));
+
+ float last_sent_lux = 1.0f;
+ auto threshold_helper = [&](bool expect_callback) {
+- expected_callback = expect_callback;
+ auto reading = Microsoft::WRL::Make<FakeLightSensorReadingWinrt>(
+ ABI::Windows::Foundation::DateTime{}, last_sent_lux);
+- fake_sensor->TriggerFakeSensorReading(reading);
++ if (expect_callback) {
++ base::RunLoop run_loop;
++ EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_))
++ .WillOnce(base::test::RunClosure(run_loop.QuitClosure()));
++ fake_sensor->TriggerFakeSensorReading(reading);
++ run_loop.Run();
++ } else {
++ fake_sensor->TriggerFakeSensorReading(reading);
++ task_environment_.RunUntilIdle();
++ }
+ };
+
+ // Expect callback, first sample
+@@ -1359,10 +1509,6 @@ TEST_F(PlatformSensorReaderTestWinrt, LightSensorThresholding) {
+ PlatformSensorReaderWinrtLightSensor::kLuxPercentThreshold * 0.6f;
+ threshold_helper(true);
+
+- // Expect callback, threshold has been met exactly
+- last_sent_lux += PlatformSensorReaderWinrtLightSensor::kLuxPercentThreshold;
+- threshold_helper(true);
+-
+ sensor->StopSensor();
+ }
+
+@@ -1377,22 +1523,14 @@ TEST_F(PlatformSensorReaderTestWinrt, AccelerometerThresholding) {
+ Microsoft::WRL::Make<FakeAccelerometerSensorWinrt>());
+ auto fake_sensor = fake_sensor_factory->fake_sensor_;
+
+- auto sensor = std::make_unique<PlatformSensorReaderWinrtAccelerometer>();
+- sensor->InitForTesting(base::BindLambdaForTesting(
+- [&](ABI::Windows::Devices::Sensors::IAccelerometerStatics**
+- sensor_factory) -> HRESULT {
+- return fake_sensor_factory.CopyTo(sensor_factory);
+- }));
+- EXPECT_TRUE(sensor->Initialize());
++ auto sensor =
++ CreateAndInitializeSensor<PlatformSensorReaderWinrtAccelerometer>(
++ fake_sensor_factory);
++ ASSERT_TRUE(sensor);
+
+ auto mock_client = std::make_unique<testing::NiceMock<MockClient>>();
+-
+- bool expected_callback = false;
+- EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_))
+- .WillRepeatedly(testing::Invoke(
+- [&](const SensorReading&) { EXPECT_TRUE(expected_callback); }));
+-
+ sensor->SetClient(mock_client.get());
++
+ PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet);
+ EXPECT_TRUE(sensor->StartSensor(sensor_config));
+
+@@ -1400,40 +1538,40 @@ TEST_F(PlatformSensorReaderTestWinrt, AccelerometerThresholding) {
+ double last_sent_y = 2.0f;
+ double last_sent_z = 3.0f;
+ auto threshold_helper = [&](bool expect_callback) {
+- expected_callback = expect_callback;
+ auto reading = Microsoft::WRL::Make<FakeAccelerometerReadingWinrt>(
+ ABI::Windows::Foundation::DateTime{}, last_sent_x, last_sent_y,
+ last_sent_z);
+- fake_sensor->TriggerFakeSensorReading(reading);
++ if (expect_callback) {
++ base::RunLoop run_loop;
++ EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_))
++ .WillOnce(base::test::RunClosure(run_loop.QuitClosure()));
++ fake_sensor->TriggerFakeSensorReading(reading);
++ run_loop.Run();
++ } else {
++ fake_sensor->TriggerFakeSensorReading(reading);
++ task_environment_.RunUntilIdle();
++ }
+ };
+
+ // Expect callback, first sample
+ threshold_helper(true);
+
+- // No callback, threshold has not been met
++ // For each axis, increase its value by an amount lower than the threshold so
++ // that no callback is invoked, then meet the threshold and do expect a
++ // callback.
+ last_sent_x += PlatformSensorReaderWinrtAccelerometer::kAxisThreshold * 0.5f;
+ threshold_helper(false);
+- last_sent_y += PlatformSensorReaderWinrtAccelerometer::kAxisThreshold * 0.5f;
+- threshold_helper(false);
+- last_sent_z += PlatformSensorReaderWinrtAccelerometer::kAxisThreshold * 0.5f;
+- threshold_helper(false);
+-
+- // Expect callback, threshold has been met since last reported sample
+ last_sent_x += PlatformSensorReaderWinrtAccelerometer::kAxisThreshold * 0.6f;
+ threshold_helper(true);
++ last_sent_y += PlatformSensorReaderWinrtAccelerometer::kAxisThreshold * 0.5f;
++ threshold_helper(false);
+ last_sent_y += PlatformSensorReaderWinrtAccelerometer::kAxisThreshold * 0.6f;
+ threshold_helper(true);
++ last_sent_z += PlatformSensorReaderWinrtAccelerometer::kAxisThreshold * 0.5f;
++ threshold_helper(false);
+ last_sent_z += PlatformSensorReaderWinrtAccelerometer::kAxisThreshold * 0.6f;
+ threshold_helper(true);
+
+- // Expect callback, threshold has been met exactly
+- last_sent_x += PlatformSensorReaderWinrtAccelerometer::kAxisThreshold;
+- threshold_helper(true);
+- last_sent_y += PlatformSensorReaderWinrtAccelerometer::kAxisThreshold;
+- threshold_helper(true);
+- last_sent_z += PlatformSensorReaderWinrtAccelerometer::kAxisThreshold;
+- threshold_helper(true);
+-
+ sensor->StopSensor();
+ }
+
+@@ -1447,20 +1585,13 @@ TEST_F(PlatformSensorReaderTestWinrt, GyrometerThresholding) {
+ ABI::Windows::Devices::Sensors::GyrometerReadingChangedEventArgs>>();
+ auto fake_sensor = fake_sensor_factory->fake_sensor_;
+
+- auto sensor = std::make_unique<PlatformSensorReaderWinrtGyrometer>();
+- sensor->InitForTesting(base::BindLambdaForTesting(
+- [&](ABI::Windows::Devices::Sensors::IGyrometerStatics** sensor_factory)
+- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); }));
+- EXPECT_TRUE(sensor->Initialize());
++ auto sensor = CreateAndInitializeSensor<PlatformSensorReaderWinrtGyrometer>(
++ fake_sensor_factory);
++ ASSERT_TRUE(sensor);
+
+ auto mock_client = std::make_unique<testing::NiceMock<MockClient>>();
+-
+- bool expected_callback = false;
+- EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_))
+- .WillRepeatedly(testing::Invoke(
+- [&](const SensorReading&) { EXPECT_TRUE(expected_callback); }));
+-
+ sensor->SetClient(mock_client.get());
++
+ PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet);
+ EXPECT_TRUE(sensor->StartSensor(sensor_config));
+
+@@ -1468,40 +1599,40 @@ TEST_F(PlatformSensorReaderTestWinrt, GyrometerThresholding) {
+ double last_sent_y = 4.0f;
+ double last_sent_z = 5.0f;
+ auto threshold_helper = [&](bool expect_callback) {
+- expected_callback = expect_callback;
+ auto reading = Microsoft::WRL::Make<FakeGyrometerReadingWinrt>(
+ ABI::Windows::Foundation::DateTime{}, last_sent_x, last_sent_y,
+ last_sent_z);
+- fake_sensor->TriggerFakeSensorReading(reading);
++ if (expect_callback) {
++ base::RunLoop run_loop;
++ EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_))
++ .WillOnce(base::test::RunClosure(run_loop.QuitClosure()));
++ fake_sensor->TriggerFakeSensorReading(reading);
++ run_loop.Run();
++ } else {
++ fake_sensor->TriggerFakeSensorReading(reading);
++ task_environment_.RunUntilIdle();
++ }
+ };
+
+ // Expect callback, first sample
+ threshold_helper(true);
+
+- // No callback, threshold has not been met
++ // For each axis, increase its value by an amount lower than the threshold so
++ // that no callback is invoked, then meet the threshold and do expect a
++ // callback.
+ last_sent_x += PlatformSensorReaderWinrtGyrometer::kDegreeThreshold * 0.5f;
+ threshold_helper(false);
+- last_sent_y += PlatformSensorReaderWinrtGyrometer::kDegreeThreshold * 0.5f;
+- threshold_helper(false);
+- last_sent_z += PlatformSensorReaderWinrtGyrometer::kDegreeThreshold * 0.5f;
+- threshold_helper(false);
+-
+- // Expect callback, threshold has been met since last reported sample
+ last_sent_x += PlatformSensorReaderWinrtGyrometer::kDegreeThreshold * 0.6f;
+ threshold_helper(true);
++ last_sent_y += PlatformSensorReaderWinrtGyrometer::kDegreeThreshold * 0.5f;
++ threshold_helper(false);
+ last_sent_y += PlatformSensorReaderWinrtGyrometer::kDegreeThreshold * 0.6f;
+ threshold_helper(true);
++ last_sent_z += PlatformSensorReaderWinrtGyrometer::kDegreeThreshold * 0.5f;
++ threshold_helper(false);
+ last_sent_z += PlatformSensorReaderWinrtGyrometer::kDegreeThreshold * 0.6f;
+ threshold_helper(true);
+
+- // Expect callback, threshold has been met exactly
+- last_sent_x += PlatformSensorReaderWinrtGyrometer::kDegreeThreshold;
+- threshold_helper(true);
+- last_sent_y += PlatformSensorReaderWinrtGyrometer::kDegreeThreshold;
+- threshold_helper(true);
+- last_sent_z += PlatformSensorReaderWinrtGyrometer::kDegreeThreshold;
+- threshold_helper(true);
+-
+ sensor->StopSensor();
+ }
+
+@@ -1515,20 +1646,14 @@ TEST_F(PlatformSensorReaderTestWinrt, MagnetometerThresholding) {
+ ABI::Windows::Devices::Sensors::MagnetometerReadingChangedEventArgs>>();
+ auto fake_sensor = fake_sensor_factory->fake_sensor_;
+
+- auto sensor = std::make_unique<PlatformSensorReaderWinrtMagnetometer>();
+- sensor->InitForTesting(base::BindLambdaForTesting(
+- [&](ABI::Windows::Devices::Sensors::IMagnetometerStatics** sensor_factory)
+- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); }));
+- EXPECT_TRUE(sensor->Initialize());
++ auto sensor =
++ CreateAndInitializeSensor<PlatformSensorReaderWinrtMagnetometer>(
++ fake_sensor_factory);
++ ASSERT_TRUE(sensor);
+
+ auto mock_client = std::make_unique<testing::NiceMock<MockClient>>();
+-
+- bool expected_callback = false;
+- EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_))
+- .WillRepeatedly(testing::Invoke(
+- [&](const SensorReading&) { EXPECT_TRUE(expected_callback); }));
+-
+ sensor->SetClient(mock_client.get());
++
+ PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet);
+ EXPECT_TRUE(sensor->StartSensor(sensor_config));
+
+@@ -1536,46 +1661,46 @@ TEST_F(PlatformSensorReaderTestWinrt, MagnetometerThresholding) {
+ double last_sent_y = 4.0f;
+ double last_sent_z = 5.0f;
+ auto threshold_helper = [&](bool expect_callback) {
+- expected_callback = expect_callback;
+ auto reading = Microsoft::WRL::Make<FakeMagnetometerReadingWinrt>(
+ ABI::Windows::Foundation::DateTime{}, last_sent_x, last_sent_y,
+ last_sent_z);
+- fake_sensor->TriggerFakeSensorReading(reading);
++ if (expect_callback) {
++ base::RunLoop run_loop;
++ EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_))
++ .WillOnce(base::test::RunClosure(run_loop.QuitClosure()));
++ fake_sensor->TriggerFakeSensorReading(reading);
++ run_loop.Run();
++ } else {
++ fake_sensor->TriggerFakeSensorReading(reading);
++ task_environment_.RunUntilIdle();
++ }
+ };
+
+ // Expect callback, first sample
+ threshold_helper(true);
+
+- // No callback, threshold has not been met
++ // For each axis, increase its value by an amount lower than the threshold so
++ // that no callback is invoked, then meet the threshold and do expect a
++ // callback.
+ last_sent_x +=
+ PlatformSensorReaderWinrtMagnetometer::kMicroteslaThreshold * 0.5f;
+ threshold_helper(false);
+- last_sent_y +=
+- PlatformSensorReaderWinrtMagnetometer::kMicroteslaThreshold * 0.5f;
+- threshold_helper(false);
+- last_sent_z +=
+- PlatformSensorReaderWinrtMagnetometer::kMicroteslaThreshold * 0.5f;
+- threshold_helper(false);
+-
+- // Expect callback, threshold has been met since last reported sample
+ last_sent_x +=
+ PlatformSensorReaderWinrtMagnetometer::kMicroteslaThreshold * 0.6f;
+ threshold_helper(true);
++ last_sent_y +=
++ PlatformSensorReaderWinrtMagnetometer::kMicroteslaThreshold * 0.5f;
++ threshold_helper(false);
+ last_sent_y +=
+ PlatformSensorReaderWinrtMagnetometer::kMicroteslaThreshold * 0.6f;
+ threshold_helper(true);
++ last_sent_z +=
++ PlatformSensorReaderWinrtMagnetometer::kMicroteslaThreshold * 0.5f;
++ threshold_helper(false);
+ last_sent_z +=
+ PlatformSensorReaderWinrtMagnetometer::kMicroteslaThreshold * 0.6f;
+ threshold_helper(true);
+
+- // Expect callback, threshold has been met exactly
+- last_sent_x += PlatformSensorReaderWinrtMagnetometer::kMicroteslaThreshold;
+- threshold_helper(true);
+- last_sent_y += PlatformSensorReaderWinrtMagnetometer::kMicroteslaThreshold;
+- threshold_helper(true);
+- last_sent_z += PlatformSensorReaderWinrtMagnetometer::kMicroteslaThreshold;
+- threshold_helper(true);
+-
+ sensor->StopSensor();
+ }
+
+@@ -1589,21 +1714,13 @@ TEST_F(PlatformSensorReaderTestWinrt, AbsOrientationEulerThresholding) {
+ ABI::Windows::Devices::Sensors::InclinometerReadingChangedEventArgs>>();
+ auto fake_sensor = fake_sensor_factory->fake_sensor_;
+
+- auto sensor =
+- std::make_unique<PlatformSensorReaderWinrtAbsOrientationEulerAngles>();
+- sensor->InitForTesting(base::BindLambdaForTesting(
+- [&](ABI::Windows::Devices::Sensors::IInclinometerStatics** sensor_factory)
+- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); }));
+- EXPECT_TRUE(sensor->Initialize());
++ auto sensor = CreateAndInitializeSensor<
++ PlatformSensorReaderWinrtAbsOrientationEulerAngles>(fake_sensor_factory);
++ ASSERT_TRUE(sensor);
+
+ auto mock_client = std::make_unique<testing::NiceMock<MockClient>>();
+-
+- bool expected_callback = false;
+- EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_))
+- .WillRepeatedly(testing::Invoke(
+- [&](const SensorReading&) { EXPECT_TRUE(expected_callback); }));
+-
+ sensor->SetClient(mock_client.get());
++
+ PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet);
+ EXPECT_TRUE(sensor->StartSensor(sensor_config));
+
+@@ -1611,53 +1728,50 @@ TEST_F(PlatformSensorReaderTestWinrt, AbsOrientationEulerThresholding) {
+ double last_sent_y = 4.0f;
+ double last_sent_z = 5.0f;
+ auto threshold_helper = [&](bool expect_callback) {
+- expected_callback = expect_callback;
+ auto reading = Microsoft::WRL::Make<FakeInclinometerReadingWinrt>(
+ ABI::Windows::Foundation::DateTime{}, last_sent_x, last_sent_y,
+ last_sent_z);
+- fake_sensor->TriggerFakeSensorReading(reading);
++ if (expect_callback) {
++ base::RunLoop run_loop;
++ EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_))
++ .WillOnce(base::test::RunClosure(run_loop.QuitClosure()));
++ fake_sensor->TriggerFakeSensorReading(reading);
++ run_loop.Run();
++ } else {
++ fake_sensor->TriggerFakeSensorReading(reading);
++ task_environment_.RunUntilIdle();
++ }
+ };
+
+ // Expect callback, first sample
+ threshold_helper(true);
+
+- // No callback, threshold has not been met
++ // For each axis, increase its value by an amount lower than the threshold so
++ // that no callback is invoked, then meet the threshold and do expect a
++ // callback.
+ last_sent_x +=
+ PlatformSensorReaderWinrtAbsOrientationEulerAngles::kDegreeThreshold *
+ 0.5f;
+ threshold_helper(false);
+- last_sent_y +=
+- PlatformSensorReaderWinrtAbsOrientationEulerAngles::kDegreeThreshold *
+- 0.5f;
+- threshold_helper(false);
+- last_sent_z +=
+- PlatformSensorReaderWinrtAbsOrientationEulerAngles::kDegreeThreshold *
+- 0.5f;
+- threshold_helper(false);
+-
+- // Expect callback, threshold has been met since last reported sample
+ last_sent_x +=
+ PlatformSensorReaderWinrtAbsOrientationEulerAngles::kDegreeThreshold *
+ 0.6f;
+ threshold_helper(true);
++ last_sent_y +=
++ PlatformSensorReaderWinrtAbsOrientationEulerAngles::kDegreeThreshold *
++ 0.5f;
++ threshold_helper(false);
+ last_sent_y +=
+ PlatformSensorReaderWinrtAbsOrientationEulerAngles::kDegreeThreshold *
+ 0.6f;
+ threshold_helper(true);
+ last_sent_z +=
+ PlatformSensorReaderWinrtAbsOrientationEulerAngles::kDegreeThreshold *
+- 0.6f;
+- threshold_helper(true);
+-
+- // Expect callback, threshold has been met exactly
+- last_sent_x +=
+- PlatformSensorReaderWinrtAbsOrientationEulerAngles::kDegreeThreshold;
+- threshold_helper(true);
+- last_sent_y +=
+- PlatformSensorReaderWinrtAbsOrientationEulerAngles::kDegreeThreshold;
+- threshold_helper(true);
++ 0.5f;
++ threshold_helper(false);
+ last_sent_z +=
+- PlatformSensorReaderWinrtAbsOrientationEulerAngles::kDegreeThreshold;
++ PlatformSensorReaderWinrtAbsOrientationEulerAngles::kDegreeThreshold *
++ 0.6f;
+ threshold_helper(true);
+
+ sensor->StopSensor();
+@@ -1674,34 +1788,32 @@ TEST_F(PlatformSensorReaderTestWinrt, AbsOrientationQuatThresholding) {
+ OrientationSensorReadingChangedEventArgs>>();
+ auto fake_sensor = fake_sensor_factory->fake_sensor_;
+
+- auto sensor =
+- std::make_unique<PlatformSensorReaderWinrtAbsOrientationQuaternion>();
+- sensor->InitForTesting(base::BindLambdaForTesting(
+- [&](ABI::Windows::Devices::Sensors::IOrientationSensorStatics**
+- sensor_factory) -> HRESULT {
+- return fake_sensor_factory.CopyTo(sensor_factory);
+- }));
+- EXPECT_TRUE(sensor->Initialize());
++ auto sensor = CreateAndInitializeSensor<
++ PlatformSensorReaderWinrtAbsOrientationQuaternion>(fake_sensor_factory);
++ ASSERT_TRUE(sensor);
+
+ auto mock_client = std::make_unique<testing::NiceMock<MockClient>>();
+-
+- bool expected_callback = false;
+- EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_))
+- .WillRepeatedly(testing::Invoke(
+- [&](const SensorReading&) { EXPECT_TRUE(expected_callback); }));
+-
+ sensor->SetClient(mock_client.get());
++
+ PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet);
+ EXPECT_TRUE(sensor->StartSensor(sensor_config));
+
+ double last_sent_rad = 1.0;
+ auto threshold_helper = [&](bool expect_callback) {
+- expected_callback = expect_callback;
+ auto quat = gfx::Quaternion(gfx::Vector3dF(1.0, 0, 0), last_sent_rad);
+ auto reading = Microsoft::WRL::Make<FakeOrientationSensorReadingWinrt>(
+ ABI::Windows::Foundation::DateTime{}, quat.w(), quat.x(), quat.y(),
+ quat.z());
+- fake_sensor->TriggerFakeSensorReading(reading);
++ if (expect_callback) {
++ base::RunLoop run_loop;
++ EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_))
++ .WillOnce(base::test::RunClosure(run_loop.QuitClosure()));
++ fake_sensor->TriggerFakeSensorReading(reading);
++ run_loop.Run();
++ } else {
++ fake_sensor->TriggerFakeSensorReading(reading);
++ task_environment_.RunUntilIdle();
++ }
+ };
+
+ // Expect callback, first sample
+@@ -1719,11 +1831,6 @@ TEST_F(PlatformSensorReaderTestWinrt, AbsOrientationQuatThresholding) {
+ 0.6f;
+ threshold_helper(true);
+
+- // Expect callback, threshold has been met exactly
+- last_sent_rad +=
+- PlatformSensorReaderWinrtAbsOrientationQuaternion::kRadianThreshold;
+- threshold_helper(true);
+-
+ sensor->StopSensor();
+ }
+
+diff --git a/chromium/services/device/generic_sensor/platform_sensor_win.cc b/chromium/services/device/generic_sensor/platform_sensor_win.cc
+index 3ee3c1fa86a8..e9a78687250f 100644
+--- src/3rdparty/chromium/services/device/generic_sensor/platform_sensor_win.cc
++++ src/3rdparty/chromium/services/device/generic_sensor/platform_sensor_win.cc
+@@ -43,6 +43,8 @@ double PlatformSensorWin::GetMaximumSupportedFrequency() {
+ }
+
+ void PlatformSensorWin::OnReadingUpdated(const SensorReading& reading) {
++ // This function is normally called from |sensor_thread_runner_|, except on
++ // PlatformSensorAndProviderTestWin.
+ UpdateSharedBufferAndNotifyClients(reading);
+ }
+
+@@ -75,6 +77,7 @@ bool PlatformSensorWin::CheckSensorConfiguration(
+ }
+
+ PlatformSensorWin::~PlatformSensorWin() {
++ DCHECK(main_task_runner()->RunsTasksInCurrentSequence());
+ sensor_reader_->SetClient(nullptr);
+ sensor_thread_runner_->DeleteSoon(FROM_HERE, sensor_reader_.get());
+ }
+From dbafaa10eb690d68e0531313663f47c422dc8771 Mon Sep 17 00:00:00 2001
+From: kylechar <kylechar@chromium.org>
+Date: Tue, 9 Apr 2024 17:14:26 +0000
+Subject: [PATCH] [Backport] CVE-2024-3157: Out of bounds write in Compositing
+
+Cherry-pick of patch originally reviewed on
+https://chromium-review.googlesource.com/c/chromium/src/+/5420432:
+Validate buffer length
+
+The BitmapInSharedMemory mojo traits were only validating row length and
+not total buffer length.
+
+(cherry picked from commit 1a19ff70bd54847d818566bd7a1e7c384c419746)
+
+(cherry picked from commit f15315f1cb7897e208947a40d538aac693283d7f)
+
+Bug: 331237485
+Change-Id: Ia2318899c44e9e7ac72fc7183954e6ce2c702179
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5396796
+Commit-Queue: Kyle Charbonneau <kylechar@chromium.org>
+Cr-Original-Original-Commit-Position: refs/heads/main@{#1278417}
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5420432
+Commit-Queue: danakj <danakj@chromium.org>
+Cr-Original-Commit-Position: refs/branch-heads/6312@{#786}
+Cr-Original-Branched-From: 6711dcdae48edaf98cbc6964f90fac85b7d9986e-refs/heads/main@{#1262506}
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5433678
+Reviewed-by: danakj <danakj@chromium.org>
+Reviewed-by: Kyle Charbonneau <kylechar@chromium.org>
+Cr-Commit-Position: refs/branch-heads/6099@{#2003}
+Cr-Branched-From: e6ee4500f7d6549a9ac1354f8d056da49ef406be-refs/heads/main@{#1217362}
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/554656
+Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
+---
+ .../cpp/compositing/bitmap_in_shared_memory_mojom_traits.cc | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/chromium/services/viz/public/cpp/compositing/bitmap_in_shared_memory_mojom_traits.cc b/chromium/services/viz/public/cpp/compositing/bitmap_in_shared_memory_mojom_traits.cc
+index a6e5f45d9e72..519d554055e5 100644
+--- src/3rdparty/chromium/services/viz/public/cpp/compositing/bitmap_in_shared_memory_mojom_traits.cc
++++ src/3rdparty/chromium/services/viz/public/cpp/compositing/bitmap_in_shared_memory_mojom_traits.cc
+@@ -76,6 +76,10 @@ bool StructTraits<viz::mojom::BitmapInSharedMemoryDataView, SkBitmap>::Read(
+ if (!mapping_ptr->IsValid())
+ return false;
+
++ if (mapping_ptr->size() < image_info.computeByteSize(data.row_bytes())) {
++ return false;
++ }
++
+ if (!sk_bitmap->installPixels(image_info, mapping_ptr->memory(),
+ data.row_bytes(), &DeleteSharedMemoryMapping,
+ mapping_ptr.get())) {
+From ac780f41ba9b3eb8329ca8e09b8857a070aed8c1 Mon Sep 17 00:00:00 2001
+From: Shahbaz Youssefi <syoussefi@chromium.org>
+Date: Mon, 25 Mar 2024 14:46:56 -0400
+Subject: [PATCH] [Backport] CVE-2024-3516: Heap buffer overflow in ANGLE
+
+Cherry-pick of patch originally reviewed on
+https://chromium-review.googlesource.com/c/angle/angle/+/5391986:
+Translator: Disallow samplers in structs in interface blocks
+
+As disallowed by the spec:
+
+> Types and declarators are the same as for other uniform variable
+> declarations outside blocks, with these exceptions:
+>
+> * opaque types are not allowed
+
+Bug: chromium:328859176
+Change-Id: Ib94977860102329e520e635c3757827c93ca2163
+Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5391986
+Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
+Reviewed-by: Geoff Lang <geofflang@chromium.org>
+Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/554657
+Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
+---
+ .../src/compiler/translator/ParseContext.cpp | 33 ++++++++++++-------
+ 1 file changed, 21 insertions(+), 12 deletions(-)
+
+diff --git a/chromium/third_party/angle/src/compiler/translator/ParseContext.cpp b/chromium/third_party/angle/src/compiler/translator/ParseContext.cpp
+index e174725beb7..cb9eb3a4a56 100644
+--- src/3rdparty/chromium/third_party/angle/src/compiler/translator/ParseContext.cpp
++++ src/3rdparty/chromium/third_party/angle/src/compiler/translator/ParseContext.cpp
+@@ -34,27 +34,39 @@ namespace
+
+ const int kWebGLMaxStructNesting = 4;
+
+-bool ContainsSampler(const TStructure *structType);
++struct IsSamplerFunc
++{
++ bool operator()(TBasicType type) { return IsSampler(type); }
++};
++struct IsOpaqueFunc
++{
++ bool operator()(TBasicType type) { return IsOpaqueType(type); }
++};
++
++template <typename OpaqueFunc>
++bool ContainsOpaque(const TStructure *structType);
+
+-bool ContainsSampler(const TType &type)
++template <typename OpaqueFunc>
++bool ContainsOpaque(const TType &type)
+ {
+- if (IsSampler(type.getBasicType()))
++ if (OpaqueFunc{}(type.getBasicType()))
+ {
+ return true;
+ }
+ if (type.getBasicType() == EbtStruct)
+ {
+- return ContainsSampler(type.getStruct());
++ return ContainsOpaque<OpaqueFunc>(type.getStruct());
+ }
+
+ return false;
+ }
+
+-bool ContainsSampler(const TStructure *structType)
++template <typename OpaqueFunc>
++bool ContainsOpaque(const TStructure *structType)
+ {
+ for (const auto &field : structType->fields())
+ {
+- if (ContainsSampler(*field->type()))
++ if (ContainsOpaque<OpaqueFunc>(*field->type()))
+ return true;
+ }
+ return false;
+@@ -1057,7 +1069,7 @@ bool TParseContext::checkIsNotOpaqueType(const TSourceLoc &line,
+ {
+ if (pType.type == EbtStruct)
+ {
+- if (ContainsSampler(pType.userDef))
++ if (ContainsOpaque<IsSamplerFunc>(pType.userDef))
+ {
+ std::stringstream reasonStream = sh::InitializeStream<std::stringstream>();
+ reasonStream << reason << " (structure contains a sampler)";
+@@ -4923,12 +4935,9 @@ TIntermDeclaration *TParseContext::addInterfaceBlock(
+ {
+ TField *field = (*fieldList)[memberIndex];
+ TType *fieldType = field->type();
+- if (IsOpaqueType(fieldType->getBasicType()))
++ if (ContainsOpaque<IsOpaqueFunc>(*fieldType))
+ {
+- std::string reason("unsupported type - ");
+- reason += fieldType->getBasicString();
+- reason += " types are not allowed in interface blocks";
+- error(field->line(), reason.c_str(), fieldType->getBasicString());
++ error(field->line(), "Opaque types are not allowed in interface blocks", blockName);
+ }
+
+ const TQualifier qualifier = fieldType->getQualifier();
+From a766045f65f934df3b5f1aa63bc86fbb3e003a09 Mon Sep 17 00:00:00 2001
+From: Anu Aliyas <anu.aliyas@qt.io>
+Date: Wed, 17 Apr 2024 12:35:58 +0200
+Subject: [PATCH] Add missing dependencies to avoid compilation errors
+
+Missing dependencies are added to resolve the dependencies issues
+encountered when compiling with Ninja 1.12.0
+
+Fixes:QTBUG-124375
+Change-Id: I0f23ef6c60a6f01ee11bffd46121fd7f98dc022c
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/555586
+Reviewed-by: Michal Klocek <michal.klocek@qt.io>
+---
+ chromium/content/public/browser/BUILD.gn | 1 +
+ chromium/extensions/browser/api/declarative_net_request/BUILD.gn | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/chromium/content/public/browser/BUILD.gn b/chromium/content/public/browser/BUILD.gn
+index d38fa8d303a..c5813115e88 100644
+--- src/3rdparty/chromium/content/public/browser/BUILD.gn
++++ src/3rdparty/chromium/content/public/browser/BUILD.gn
+@@ -539,6 +539,7 @@ jumbo_source_set("browser_sources") {
+ "//cc",
+ "//components/services/storage/public/cpp",
+ "//components/viz/host",
++ "//components/spellcheck:buildflags",
+ "//content/browser", # Must not be public_deps!
+ "//device/fido",
+ "//gpu",
+diff --git a/chromium/extensions/browser/api/declarative_net_request/BUILD.gn b/chromium/extensions/browser/api/declarative_net_request/BUILD.gn
+index 1fc492f5a0c..13a266e22f1 100644
+--- src/3rdparty/chromium/extensions/browser/api/declarative_net_request/BUILD.gn
++++ src/3rdparty/chromium/extensions/browser/api/declarative_net_request/BUILD.gn
+@@ -23,6 +23,7 @@ source_set("declarative_net_request") {
+ "//extensions/common",
+ "//extensions/common/api",
+ "//services/preferences/public/cpp",
++ "//components/web_cache/browser",
+ ]
+
+ public_deps = [ "//extensions/browser:browser_sources" ]
+From d26ab136f38d6bf3311eb04136820b85bc2fc96e Mon Sep 17 00:00:00 2001
+From: Dan Sanders <sandersd@chromium.org>
+Date: Mon, 26 Feb 2024 20:53:06 +0000
+Subject: [PATCH] [Backport] Security bug 326521449
+
+Cherry-pick of patch originally reviewed on
+https://chromium-review.googlesource.com/c/chromium/src/+/5323230:
+Validate recovery_frame_cnt_ at time of use.
+
+Bug: b/326521449
+Change-Id: I778a16553bb3319dddfef6121895a89e0f1938df
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5323230
+Commit-Queue: Dan Sanders <sandersd@chromium.org>
+Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
+Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
+Auto-Submit: Dan Sanders <sandersd@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#1265425}
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/556725
+Reviewed-by: Michal Klocek <michal.klocek@qt.io>
+---
+ chromium/media/gpu/h264_decoder.cc | 21 +++++++++++----------
+ 1 file changed, 11 insertions(+), 10 deletions(-)
+
+diff --git a/chromium/media/gpu/h264_decoder.cc b/chromium/media/gpu/h264_decoder.cc
+index 2bfdd28d83a..ef9de709045 100644
+--- src/3rdparty/chromium/media/gpu/h264_decoder.cc
++++ src/3rdparty/chromium/media/gpu/h264_decoder.cc
+@@ -769,13 +769,6 @@ H264Decoder::H264Accelerator::Status H264Decoder::StartNewFrame(
+ return H264Accelerator::Status::kFail;
+ }
+
+- if (recovery_frame_cnt_ && *recovery_frame_cnt_ >= max_frame_num_) {
+- DVLOG(1) << "Invalid recovery_frame_cnt=" << *recovery_frame_cnt_
+- << " (it must be less or equal to max_frame_num-1=" << max_frame_num_ - 1
+- << ")";
+- return H264Accelerator::Status::kFail;
+- }
+-
+ if (!InitCurrPicture(slice_hdr))
+ return H264Accelerator::Status::kFail;
+
+@@ -999,11 +992,19 @@ bool H264Decoder::FinishPicture(scoped_refptr<H264Picture> pic) {
+ DVLOG(4) << "Finishing picture frame_num: " << pic->frame_num
+ << ", entries in DPB: " << dpb_.size();
+ if (recovery_frame_cnt_) {
+- // This is the first picture after the recovery point SEI message. Computes
+- // the frame_num of the frame that should be output from (Spec D.2.8).
++ // This is the first picture after the recovery point SEI message. Validate
++ // `recovery_frame_cnt_` now that we are certain to have max_frame_num_.
++ if (*recovery_frame_cnt_ >= max_frame_num_) {
++ DVLOG(1) << "Invalid recovery_frame_cnt=" << *recovery_frame_cnt_
++ << " (must be less than or equal to max_frame_num-1="
++ << (max_frame_num_ - 1) << ")";
++ return false;
++ }
++
++ // Compute the frame_num of the first frame that should be output (D.2.8).
+ recovery_frame_num_ =
+ (*recovery_frame_cnt_ + pic->frame_num) % max_frame_num_;
+- DVLOG(3) << "recovery_frame_num_" << *recovery_frame_num_;
++ DVLOG(3) << "recovery_frame_num_=" << *recovery_frame_num_;
+ recovery_frame_cnt_.reset();
+ }
+
+From 08e69b86a697e265b3e064b06a05fc5e7a4e079b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Dominik=20R=C3=B6ttsches?= <drott@chromium.org>
+Date: Thu, 14 Mar 2024 12:48:18 +0000
+Subject: [PATCH] [Backport] CVE-2024-3839: Out of bounds read in Fonts
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Cherry-pick of patch originally reviewed on
+https://chromium-review.googlesource.com/c/chromium/src/+/5361874:
+Disable STAT sanitization/checks through OTS
+
+Due to issues in upstream, OTS STAT sanitization does not provide an
+added security benefit. Pass-through the STAT table.
+
+Bug: chromium:41491859
+Change-Id: I19dcd87376af553afe242452396b951a74691f3c
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5361874
+Commit-Queue: Dominik R旦ttsches <drott@chromium.org>
+Reviewed-by: Koji Ishii <kojii@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#1272710}
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/556726
+Reviewed-by: Michal Klocek <michal.klocek@qt.io>
+---
+ .../blink/renderer/platform/fonts/web_font_decoder.cc | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/chromium/third_party/blink/renderer/platform/fonts/web_font_decoder.cc b/chromium/third_party/blink/renderer/platform/fonts/web_font_decoder.cc
+index 0953dc528dd..1ac9b8c9623 100644
+--- src/3rdparty/chromium/third_party/blink/renderer/platform/fonts/web_font_decoder.cc
++++ src/3rdparty/chromium/third_party/blink/renderer/platform/fonts/web_font_decoder.cc
+@@ -104,6 +104,7 @@ ots::TableAction BlinkOTSContext::GetTableAction(uint32_t tag) {
+ const uint32_t kCpalTag = OTS_TAG('C', 'P', 'A', 'L');
+ const uint32_t kCff2Tag = OTS_TAG('C', 'F', 'F', '2');
+ const uint32_t kSbixTag = OTS_TAG('s', 'b', 'i', 'x');
++ const uint32_t kStatTag = OTS_TAG('S', 'T', 'A', 'T');
+ #if HB_VERSION_ATLEAST(1, 0, 0)
+ const uint32_t kBaseTag = OTS_TAG('B', 'A', 'S', 'E');
+ const uint32_t kGdefTag = OTS_TAG('G', 'D', 'E', 'F');
+@@ -131,6 +132,7 @@ ots::TableAction BlinkOTSContext::GetTableAction(uint32_t tag) {
+ case kCpalTag:
+ case kCff2Tag:
+ case kSbixTag:
++ case kStatTag:
+ #if HB_VERSION_ATLEAST(1, 0, 0)
+ // Let HarfBuzz handle how to deal with broken tables.
+ case kAvarTag:
+From 8755f5a5aafae5a0e74839042cd2f65dc86061e8 Mon Sep 17 00:00:00 2001
+From: Liza Burakova <liza@chromium.org>
+Date: Wed, 21 Feb 2024 19:02:15 +0000
+Subject: [PATCH] [Backport] CVE-2024-3837: Use after free in QUIC
+
+Manual cherry-pick of patch originally reviewed on
+https://chromium-review.googlesource.com/c/chromium/src/+/5268864:
+Check if session is going away in Handle::RequestStream.
+
+This CL adds an extra check in the QuicChromiumClientSession
+handle's RequestSession to make sure the session is not
+marked as going away before creating a new StreamRequest.
+
+Bug: 41491379
+Change-Id: I687dfc23131871cdba345d3cf78dbbbd2e619ce9
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5268864
+Reviewed-by: Kenichi Ishibashi <bashi@chromium.org>
+Commit-Queue: Liza Burakova <liza@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#1263483}
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/556727
+Reviewed-by: Michal Klocek <michal.klocek@qt.io>
+---
+ chromium/net/quic/quic_chromium_client_session.cc | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/chromium/net/quic/quic_chromium_client_session.cc b/chromium/net/quic/quic_chromium_client_session.cc
+index d039d1ccb94..400006a170f 100644
+--- src/3rdparty/chromium/net/quic/quic_chromium_client_session.cc
++++ src/3rdparty/chromium/net/quic/quic_chromium_client_session.cc
+@@ -454,7 +454,8 @@ int QuicChromiumClientSession::Handle::RequestStream(
+ const NetworkTrafficAnnotationTag& traffic_annotation) {
+ DCHECK(!stream_request_);
+
+- if (!session_)
++ // TODO(crbug.com/41491379): Add a regression test.
++ if (!session_ || session_->going_away_)
+ return ERR_CONNECTION_CLOSED;
+
+ requires_confirmation |= session_->gquic_zero_rtt_disabled();
+From 271e21366ac1826df43119eb7b746019947be1f7 Mon Sep 17 00:00:00 2001
+From: Brendon Tiszka <tiszka@chromium.org>
+Date: Sun, 3 Mar 2024 21:30:59 +0000
+Subject: [PATCH] [Backport] Security bug 327698060
+
+Cherry-pick of patch originally reviewed on
+https://chromium-review.googlesource.com/c/chromium/src/+/5337387:
+PaintOpReader: Harden PaintImage deserialization
+
+Add missing validity check after `Read`
+
+Bug: 327698060
+Change-Id: I0aa5120296009998af3235a01304a1f597a82a33
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5337387
+Commit-Queue: Khushal Sagar <khushalsagar@chromium.org>
+Reviewed-by: Khushal Sagar <khushalsagar@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#1267636}
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/556748
+Reviewed-by: Michal Klocek <michal.klocek@qt.io>
+---
+ chromium/cc/paint/paint_op_reader.cc | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/chromium/cc/paint/paint_op_reader.cc b/chromium/cc/paint/paint_op_reader.cc
+index 6d920c33562..7d1eb51441f 100644
+--- src/3rdparty/chromium/cc/paint/paint_op_reader.cc
++++ src/3rdparty/chromium/cc/paint/paint_op_reader.cc
+@@ -351,6 +351,9 @@ void PaintOpReader::Read(PaintImage* image) {
+ case PaintOp::SerializedImageType::kImageData: {
+ SkColorType color_type;
+ Read(&color_type);
++ if (!valid_) {
++ return;
++ }
+ // Color types requiring alignment larger than kDefaultAlignment is not
+ // supported.
+ if (static_cast<size_t>(SkColorTypeBytesPerPixel(color_type)) >
+From 502983e6adc3db0d12ee8e9ff35d53df0e149870 Mon Sep 17 00:00:00 2001
+From: Pete Williamson <petewil@chromium.org>
+Date: Tue, 27 Feb 2024 00:19:05 +0000
+Subject: [PATCH] [Backport] Security bug 40940917
+
+Cherry-pick of patch originally reviewed on
+https://chromium-review.googlesource.com/c/chromium/src/+/5293726:
+Fix misalligned address in hunspell::NodeReader::ReaderForLookupAt
+
+With the Hunspell spell checking library, we are using a custom wrapper
+to read the dictionaries from files. In that custom wrapper, we were
+reading by using reinterpret_cast to interpret an offset into a pointer,
+and then reading the bytes at that pointer for the child_offset.
+
+The spell checking code appears to have been working properly in the
+field. However, the current code caused fuzzing test failures, and
+those failures are blocking other tests, so we need to fix this to
+unblock other tests.
+
+It turns out that we were casting a value to a pointer that did not
+have proper alignment (for instance, a pointer to a 32 bit int needs
+to be 4 byte allinged, but this pointer was not). While it has often
+worked in older compilers, it turns out this is undefined behavior.
+
+Instead of relying on undefined behavior, the right thing to do is to
+use std::memcpy to copy the bytes from the misalligned address into
+their final destination (either an int32 or an int16 in this case).
+
+Bug: 40940917
+Change-Id: I8aeba9ee8000b51e98863813235d8dceb1c41ceb
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5293726
+Commit-Queue: Peter Williamson <petewil@chromium.org>
+Reviewed-by: Trevor Perrier <perrier@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#1265552}
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/556750
+Reviewed-by: Michal Klocek <michal.klocek@qt.io>
+---
+ .../hunspell/google/bdict_reader.cc | 26 ++++++++++++++-----
+ 1 file changed, 20 insertions(+), 6 deletions(-)
+
+diff --git a/chromium/third_party/hunspell/google/bdict_reader.cc b/chromium/third_party/hunspell/google/bdict_reader.cc
+index d51112ea48e7..56abd15dd121 100644
+--- src/3rdparty/chromium/third_party/hunspell/google/bdict_reader.cc
++++ src/3rdparty/chromium/third_party/hunspell/google/bdict_reader.cc
+@@ -5,6 +5,7 @@
+ #include "third_party/hunspell/google/bdict_reader.h"
+
+ #include <stdint.h>
++#include <cstdint>
+
+ #include "base/check.h"
+
+@@ -413,19 +414,32 @@ NodeReader::FindResult NodeReader::ReaderForLookupAt(
+ if (index >= static_cast<size_t>(lookup_num_chars()) || !is_valid_)
+ return FIND_DONE;
+
+- size_t child_offset;
++ size_t child_offset = 0;
+ if (is_lookup_32()) {
+ // Table contains 32-bit absolute offsets.
+- child_offset =
+- reinterpret_cast<const unsigned int*>(table_begin)[index];
++
++ // We need to use memcpy here instead of just casting the offset into a
++ // pointer to an int because the cast can cause undefined behavior if
++ // the pointer is not alligned, and in this case it is not.
++ int byte_offset = index * sizeof(uint32_t);
++ std::memcpy(&child_offset,
++ reinterpret_cast<const void*>(table_begin + byte_offset),
++ sizeof(uint32_t));
+ if (!child_offset)
+ return FIND_NOTHING; // This entry in the table is empty.
+ } else {
+ // Table contains 16-bit offsets relative to the current node.
+- child_offset =
+- reinterpret_cast<const unsigned short*>(table_begin)[index];
+- if (!child_offset)
++
++ // We need to use memcpy here instead of just casting the offset into a
++ // pointer to an int because the cast can cause undefined behavior if
++ // the pointer is not alligned, and in this case it is not.
++ int byte_offset = index * sizeof(uint16_t);
++ std::memcpy(&child_offset,
++ reinterpret_cast<const void*>(table_begin + byte_offset),
++ sizeof(uint16_t));
++ if (!child_offset) {
+ return FIND_NOTHING; // This entry in the table is empty.
++ }
+ child_offset += node_offset_;
+ }
+
+From 6086d28d3a0dbfac1808ba5767ca1eea4a5acaf9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Marja=20H=C3=B6ltt=C3=A4?= <marja@google.com>
+Date: Tue, 26 Mar 2024 13:53:21 +0000
+Subject: [PATCH] [Backport] CVE-2024-3914: Use after free in V8 (1/2)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Manual backport of patch originally reviewed on
+https://chromium-review.googlesource.com/c/chromium/src/+/5387887:
+[M120-LTS] Fix DOMArrayBuffer::IsDetached()
+
+M120 merge issues:
+ third_party/blink/renderer/core/typed_arrays/dom_array_buffer.cc:
+ - Conflicting types for variable worlds
+ - Conflicting AllWorldsInIsolate() call (M120 doesn't use the last argument)
+
+A DOMArrayBuffer was maintaining its own "is_detached_" state, and
+would consider itself non-detached even if the corresponding
+JSArrayBuffer (or, all of them, in case there are several) was
+detached.
+
+Piping in the v8::Isolate would be a too big change for this fix, so this is using v8::Isolate::GetCurrent() for now.
+
+Bug: 330759272
+Change-Id: I1e98ebd2066d2e59658db12f1bb419b6ebc1d706
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5387887
+Commit-Queue: Marja H旦ltt辰 <marja@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#1278283}
+(cherry picked from commit 04e7550d7aa3bf4ac4e49d7074972d357de139e6)
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/556751
+Reviewed-by: Michal Klocek <michal.klocek@qt.io>
+---
+ .../core/typed_arrays/dom_array_buffer.cc | 50 +++++++++++++++++++
+ .../core/typed_arrays/dom_array_buffer.h | 13 +++++
+ .../core/typed_arrays/dom_array_buffer_base.h | 2 +-
+ 3 files changed, 64 insertions(+), 1 deletion(-)
+
+diff --git a/chromium/third_party/blink/renderer/core/typed_arrays/dom_array_buffer.cc b/chromium/third_party/blink/renderer/core/typed_arrays/dom_array_buffer.cc
+index c195e28b442..197a4aebf5b 100644
+--- src/3rdparty/chromium/third_party/blink/renderer/core/typed_arrays/dom_array_buffer.cc
++++ src/3rdparty/chromium/third_party/blink/renderer/core/typed_arrays/dom_array_buffer.cc
+@@ -48,6 +48,15 @@ static void AccumulateArrayBuffersForAllWorlds(
+ v8::Isolate* isolate,
+ DOMArrayBuffer* object,
+ Vector<v8::Local<v8::ArrayBuffer>, 4>& buffers) {
++ if (!object->has_non_main_world_wrappers() && IsMainThread()) {
++ const DOMWrapperWorld& world = DOMWrapperWorld::MainWorld();
++ v8::Local<v8::Object> wrapper = world.DomDataStore().Get(object, isolate);
++ if (!wrapper.IsEmpty()) {
++ buffers.push_back(v8::Local<v8::ArrayBuffer>::Cast(wrapper));
++ }
++ return;
++ }
++
+ Vector<scoped_refptr<DOMWrapperWorld>> worlds;
+ DOMWrapperWorld::AllWorldsInCurrentThread(worlds);
+ for (const auto& world : worlds) {
+@@ -256,6 +265,47 @@ v8::MaybeLocal<v8::Value> DOMArrayBuffer::Wrap(ScriptState* script_state) {
+ wrapper);
+ }
+
++bool DOMArrayBuffer::IsDetached() const {
++ if (contents_.BackingStore() == nullptr) {
++ return is_detached_;
++ }
++ if (is_detached_) {
++ return true;
++ }
++
++ v8::Isolate* isolate = v8::Isolate::GetCurrent();
++ v8::HandleScope handle_scope(isolate);
++ Vector<v8::Local<v8::ArrayBuffer>, 4> buffer_handles;
++ AccumulateArrayBuffersForAllWorlds(isolate, const_cast<DOMArrayBuffer*>(this), buffer_handles);
++
++ // There may be several v8::ArrayBuffers corresponding to the DOMArrayBuffer,
++ // but at most one of them may be non-detached.
++ int nondetached_count = 0;
++ int detached_count = 0;
++
++ for (const auto& buffer_handle : buffer_handles) {
++ if (buffer_handle->WasDetached()) {
++ ++detached_count;
++ } else {
++ ++nondetached_count;
++ }
++ }
++ CHECK_LE(nondetached_count, 1);
++
++ return nondetached_count == 0 && detached_count > 0;
++}
++
++v8::Local<v8::Object> DOMArrayBuffer::AssociateWithWrapper(
++ v8::Isolate* isolate,
++ const WrapperTypeInfo* wrapper_type_info,
++ v8::Local<v8::Object> wrapper) {
++ if (!DOMWrapperWorld::Current(isolate).IsMainWorld()) {
++ has_non_main_world_wrappers_ = true;
++ }
++ return ScriptWrappable::AssociateWithWrapper(isolate, wrapper_type_info,
++ wrapper);
++}
++
+ DOMArrayBuffer* DOMArrayBuffer::Slice(size_t begin, size_t end) const {
+ begin = std::min(begin, ByteLength());
+ end = std::min(end, ByteLength());
+diff --git a/chromium/third_party/blink/renderer/core/typed_arrays/dom_array_buffer.h b/chromium/third_party/blink/renderer/core/typed_arrays/dom_array_buffer.h
+index 87881af8787..84322ff31fc 100644
+--- src/3rdparty/chromium/third_party/blink/renderer/core/typed_arrays/dom_array_buffer.h
++++ src/3rdparty/chromium/third_party/blink/renderer/core/typed_arrays/dom_array_buffer.h
+@@ -87,6 +87,17 @@ class CORE_EXPORT DOMArrayBuffer : public DOMArrayBufferBase {
+
+ void Trace(Visitor*) const override;
+
++ bool IsDetached() const override;
++
++ v8::Local<v8::Object> AssociateWithWrapper(
++ v8::Isolate* isolate,
++ const WrapperTypeInfo* wrapper_type_info,
++ v8::Local<v8::Object> wrapper) override;
++
++ bool has_non_main_world_wrappers() const {
++ return has_non_main_world_wrappers_;
++ }
++
+ private:
+ v8::Maybe<bool> TransferDetachable(v8::Isolate*,
+ v8::Local<v8::Value> detach_key,
+@@ -97,6 +108,8 @@ class CORE_EXPORT DOMArrayBuffer : public DOMArrayBufferBase {
+ // support only v8::String as the detach key type. It's also convenient that
+ // we can write `array_buffer->SetDetachKey(isolate, "my key")`.
+ TraceWrapperV8Reference<v8::String> detach_key_;
++
++ bool has_non_main_world_wrappers_ = false;
+ };
+
+ } // namespace blink
+diff --git a/chromium/third_party/blink/renderer/core/typed_arrays/dom_array_buffer_base.h b/chromium/third_party/blink/renderer/core/typed_arrays/dom_array_buffer_base.h
+index 95511438595..c83dc489c97 100644
+--- src/3rdparty/chromium/third_party/blink/renderer/core/typed_arrays/dom_array_buffer_base.h
++++ src/3rdparty/chromium/third_party/blink/renderer/core/typed_arrays/dom_array_buffer_base.h
+@@ -27,7 +27,7 @@ class CORE_EXPORT DOMArrayBufferBase : public ScriptWrappable {
+
+ size_t ByteLength() const { return contents_.DataLength(); }
+
+- bool IsDetached() const { return is_detached_; }
++ virtual bool IsDetached() const { return is_detached_; }
+
+ void Detach() { is_detached_ = true; }
+
+From 92d5d3c528d5c4b22aa295b6b26303f174c0991b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Marja=20H=C3=B6ltt=C3=A4?= <marja@google.com>
+Date: Thu, 4 Apr 2024 09:43:42 +0200
+Subject: [PATCH] [Backport] CVE-2024-3914: Use after free in V8 (2/2)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Manual cherry-pick of patch originally reviewed on
+https://chromium-review.googlesource.com/c/chromium/src/+/5419329:
+[M120-LTS] Comment out a CHECK that a DOMAB has maximally one non-detached JSAB
+
+Based on crash reports, this assumption is not true and has to be
+investigated.
+
+Removing this newly introduced CHECK to be able to merge fixes in this
+area - we still violate this invariant but the fixes are a step into
+the right direction.
+
+Fix in question:
+https://chromium-review.googlesource.com/5387887
+which also introduced this CHECK.
+
+Bug: 330759272
+Change-Id: I4ba52fee7ed8f45e352efd347e87df03d896ac3d
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5419329
+Commit-Queue: Marja H旦ltt辰 <marja@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#1282379}
+(cherry picked from commit 1e1e1bccfb84713fc325025eae43e746abcc115d)
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/556752
+Reviewed-by: Michal Klocek <michal.klocek@qt.io>
+---
+ .../blink/renderer/core/typed_arrays/dom_array_buffer.cc | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/chromium/third_party/blink/renderer/core/typed_arrays/dom_array_buffer.cc b/chromium/third_party/blink/renderer/core/typed_arrays/dom_array_buffer.cc
+index 197a4aebf5b..796f45d7114 100644
+--- src/3rdparty/chromium/third_party/blink/renderer/core/typed_arrays/dom_array_buffer.cc
++++ src/3rdparty/chromium/third_party/blink/renderer/core/typed_arrays/dom_array_buffer.cc
+@@ -290,7 +290,11 @@ bool DOMArrayBuffer::IsDetached() const {
+ ++nondetached_count;
+ }
+ }
+- CHECK_LE(nondetached_count, 1);
++ // This CHECK fires even though it should not. TODO(330759272): Investigate
++ // under which conditions we end up with multiple non-detached JSABs for the
++ // same DOMAB and potentially restore this check.
++
++ // CHECK_LE(nondetached_count, 1);
+
+ return nondetached_count == 0 && detached_count > 0;
+ }
+From 7ea70f94879b466b8319a52b786ae2ce3e47b737 Mon Sep 17 00:00:00 2001
+From: Dan McArdle <dmcardle@chromium.org>
+Date: Tue, 30 Jan 2024 22:20:43 +0000
+Subject: [PATCH] [Backport] Dependency for security bug 326498393 (1/2)
+
+Cherry-pick of patch originally reviewed on
+https://chromium-review.googlesource.com/c/chromium/src/+/5245970:
+Prevent dangling pointer by inlining ScopedBusyTimeout
+
+Bug: 1522873
+Change-Id: Icd6262eb23404c273fa31021cddf36bea0bb56db
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5245970
+Reviewed-by: Evan Stade <estade@chromium.org>
+Reviewed-by: David Benjamin <davidben@chromium.org>
+Commit-Queue: Dan McArdle <dmcardle@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#1254220}
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/556851
+Reviewed-by: Michal Klocek <michal.klocek@qt.io>
+---
+ chromium/sql/database.cc | 48 +++++++++++++++-------------------------
+ 1 file changed, 18 insertions(+), 30 deletions(-)
+
+diff --git a/chromium/sql/database.cc b/chromium/sql/database.cc
+index d5d350e85f4..5825127634a 100644
+--- src/3rdparty/chromium/sql/database.cc
++++ src/3rdparty/chromium/sql/database.cc
+@@ -74,21 +74,6 @@ static constexpr char kSqliteOpenInMemoryPath[] = ":memory:";
+ // TODO(shess): Better story on this. http://crbug.com/56559
+ const int kBusyTimeoutSeconds = 1;
+
+-class ScopedBusyTimeout {
+- public:
+- explicit ScopedBusyTimeout(sqlite3* db) : db_(db) {}
+- ~ScopedBusyTimeout() { sqlite3_busy_timeout(db_, 0); }
+-
+- int SetTimeout(base::TimeDelta timeout) {
+- DCHECK_LT(timeout.InMilliseconds(), INT_MAX);
+- return sqlite3_busy_timeout(db_,
+- static_cast<int>(timeout.InMilliseconds()));
+- }
+-
+- private:
+- raw_ptr<sqlite3> db_;
+-};
+-
+ // Helper to "safely" enable writable_schema. No error checking
+ // because it is reasonable to just forge ahead in case of an error.
+ // If turning it on fails, then most likely nothing will work, whereas
+@@ -1405,22 +1390,14 @@ SqliteResultCode Database::ExecuteAndReturnResultCode(const char* sql) {
+ }
+
+ bool Database::Execute(const char* sql) {
+- TRACE_EVENT1("sql", "Database::Execute", "query", TRACE_STR_COPY(sql));
+-
+- if (!db_) {
+- DCHECK(poisoned_) << "Illegal use of Database without a db";
+- return false;
+- }
++ TRACE_EVENT0("sql", "Database::Execute");
+
+- SqliteResultCode sqlite_result_code = ExecuteAndReturnResultCode(sql);
+- if (sqlite_result_code != SqliteResultCode::kOk)
+- OnSqliteError(ToSqliteErrorCode(sqlite_result_code), nullptr, sql);
+-
+- return sqlite_result_code == SqliteResultCode::kOk;
++ return ExecuteWithTimeout(sql, base::TimeDelta());
+ }
+
+ bool Database::ExecuteWithTimeout(const char* sql, base::TimeDelta timeout) {
+- TRACE_EVENT0("sql", "Database::ExecuteWithTimeout");
++ TRACE_EVENT1("sql", "Database::ExecuteWithTimeout", "query",
++ TRACE_STR_COPY(sql));
+
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ if (!db_) {
+@@ -1428,9 +1405,20 @@ bool Database::ExecuteWithTimeout(const char* sql, base::TimeDelta timeout) {
+ return false;
+ }
+
+- ScopedBusyTimeout busy_timeout(db_);
+- busy_timeout.SetTimeout(timeout);
+- return Execute(sql);
++ // Passing zero or a negative value to sqlite3_busy_timeout() would clear any
++ // busy handlers defined prior to this point.
++ if (timeout.is_positive()) {
++ DCHECK_LT(timeout.InMilliseconds(), INT_MAX);
++ sqlite3_busy_timeout(db_, static_cast<int>(timeout.InMilliseconds()));
++ }
++ SqliteResultCode sqlite_result_code = ExecuteAndReturnResultCode(sql);
++ sqlite3_busy_timeout(db_, 0);
++ if (sqlite_result_code != SqliteResultCode::kOk) {
++ OnSqliteError(ToSqliteErrorCode(sqlite_result_code), nullptr, sql);
++ // At this point, `this` may have been modified or even deleted as a result
++ // of the caller-provided error callback.
++ }
++ return sqlite_result_code == SqliteResultCode::kOk;
+ }
+
+ bool Database::ExecuteScriptForTesting(const char* sql_script) {
+From 1e584e2b322c5bc8ff49a7a64375d969662242e1 Mon Sep 17 00:00:00 2001
+From: Dan McArdle <dmcardle@chromium.org>
+Date: Tue, 6 Feb 2024 23:15:33 +0000
+Subject: [PATCH] [Backport] Dependency for security bug 326498393 (2/2)
+
+Manual cherry-pick of patch originally reviewed on
+https://chromium-review.googlesource.com/c/chromium/src/+/5245191:
+Prevent dangling pointer in ScopedWritableSchema
+
+Bug: 1522873
+Change-Id: I71d7d178c98f2f2fc880762942fbca608d8cb81c
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5245191
+Reviewed-by: Evan Stade <estade@chromium.org>
+Commit-Queue: Dan McArdle <dmcardle@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#1257060}
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/556852
+Reviewed-by: Michal Klocek <michal.klocek@qt.io>
+---
+ chromium/sql/database.cc | 29 +++++++++++++++++++----------
+ chromium/sql/database.h | 4 ++++
+ 2 files changed, 23 insertions(+), 10 deletions(-)
+
+diff --git a/chromium/sql/database.cc b/chromium/sql/database.cc
+index 5825127634a..54c7c44c7e2 100644
+--- src/3rdparty/chromium/sql/database.cc
++++ src/3rdparty/chromium/sql/database.cc
+@@ -74,23 +74,29 @@ static constexpr char kSqliteOpenInMemoryPath[] = ":memory:";
+ // TODO(shess): Better story on this. http://crbug.com/56559
+ const int kBusyTimeoutSeconds = 1;
+
+-// Helper to "safely" enable writable_schema. No error checking
+-// because it is reasonable to just forge ahead in case of an error.
+-// If turning it on fails, then most likely nothing will work, whereas
+-// if turning it off fails, it only matters if some code attempts to
+-// continue working with the database and tries to modify the
++// RAII-style wrapper that enables `writable_schema` until it goes out of scope.
++// No error checking on the PRAGMA statements because it is reasonable to just
++// forge ahead in case of an error. If turning it on fails, then most likely
++// nothing will work, whereas if turning it off fails, it only matters if some
++// code attempts to continue working with the database and tries to modify the
+ // sqlite_schema table (none of our code does this).
+ class ScopedWritableSchema {
+ public:
+- explicit ScopedWritableSchema(sqlite3* db) : db_(db) {
+- sqlite3_exec(db_, "PRAGMA writable_schema=1", nullptr, nullptr, nullptr);
++ explicit ScopedWritableSchema(base::WeakPtr<Database> db)
++ : db_(std::move(db)) {
++ CHECK(db_->is_open());
++ std::ignore = db_->Execute("PRAGMA writable_schema=1");
+ }
+ ~ScopedWritableSchema() {
+- sqlite3_exec(db_, "PRAGMA writable_schema=0", nullptr, nullptr, nullptr);
++ // Database invalidates its WeakPtrs before closing the SQLite connection.
++ if (db_) {
++ CHECK(db_->is_open());
++ std::ignore = db_->Execute("PRAGMA writable_schema=0");
++ }
+ }
+
+ private:
+- raw_ptr<sqlite3> db_;
++ const base::WeakPtr<Database> db_;
+ };
+
+ // Raze() helper that uses SQLite's online backup API.
+@@ -386,6 +392,9 @@ void Database::CloseInternal(bool forced) {
+ std::move(memory_dump_provider_));
+ }
+
++ // Invalidate any `WeakPtr`s held by scoping helpers.
++ weak_factory_.InvalidateWeakPtrs();
++
+ auto sqlite_result_code = ToSqliteResultCode(sqlite3_close(db_));
+
+ DCHECK_NE(sqlite_result_code, SqliteResultCode::kBusy)
+@@ -1014,7 +1023,7 @@ bool Database::Raze() {
+ // sqlite3.c lockBtree().]
+ // TODO(shess): With this, "PRAGMA auto_vacuum" and "PRAGMA
+ // page_size" can be used to query such a database.
+- ScopedWritableSchema writable_schema(db_);
++ ScopedWritableSchema writable_schema(weak_factory_.GetWeakPtr());
+
+ #if BUILDFLAG(IS_WIN)
+ // On Windows, truncate silently fails when applied to memory-mapped files.
+diff --git a/chromium/sql/database.h b/chromium/sql/database.h
+index 79172875fda..71a2f672221 100644
+--- src/3rdparty/chromium/sql/database.h
++++ src/3rdparty/chromium/sql/database.h
+@@ -24,6 +24,7 @@
+ #include "base/memory/raw_ptr.h"
+ #include "base/memory/raw_ptr_exclusion.h"
+ #include "base/memory/ref_counted.h"
++#include "base/memory/weak_ptr.h"
+ #include "base/sequence_checker.h"
+ #include "base/strings/string_piece.h"
+ #include "base/threading/scoped_blocking_call.h"
+@@ -1021,6 +1022,9 @@ class COMPONENT_EXPORT(SQL) Database {
+
+ // Stores the dump provider object when db is open.
+ std::unique_ptr<DatabaseMemoryDumpProvider> memory_dump_provider_;
++
++ // Vends WeakPtr<Database> for internal scoping helpers.
++ base::WeakPtrFactory<Database> weak_factory_{this};
+ };
+
+ } // namespace sql
+From 1ea3a7dc0b8e1f779f0ff047799cce884bb9986a Mon Sep 17 00:00:00 2001
+From: Dan McArdle <dmcardle@chromium.org>
+Date: Thu, 29 Feb 2024 17:08:14 +0000
+Subject: [PATCH] [Backport] Security bug 326498393
+
+Manual backport of patch originally reviewed on
+https://chromium-review.googlesource.com/c/chromium/src/+/5320373:
+SQL: Make sql::Transaction hold WeakPtr<Database>
+
+Now, Transaction checks whether the Database has been destroyed before
+using it.
+
+This CL also adds stricter sequence checking to Database, which found a
+few places that Database was passed between sequences:
+
+(1) storage::DatabaseTracker was using and destroying sql::Database on
+ different sequences. Now, it simply destroys the Database instance
+ in storage::DatabaseTracker::Shutdown(), which already runs on the
+ correct sequence.
+
+(1) history::InMemoryDatabase was "slurping" data from disk on one
+ sequence, then querying the data on a different sequence. To support
+ this use case, we added added sql:Database::DetachFromSequence().
+ Now, InMemoryDatabase effectively annotates the cut point where the
+ Database is handed off to another sequence.
+
+Bug: 326498393
+Change-Id: I866061feaf08d48607d97731a512bc02ce497f71
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5320373
+Reviewed-by: manuk hovanesian <manukh@chromium.org>
+Commit-Queue: Dan McArdle <dmcardle@chromium.org>
+Reviewed-by: Evan Stade <estade@chromium.org>
+Auto-Submit: Dan McArdle <dmcardle@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#1267047}
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/556853
+Reviewed-by: Michal Klocek <michal.klocek@qt.io>
+---
+ .../history/core/browser/in_memory_database.cc | 3 +++
+ chromium/sql/database.cc | 16 ++++++++++++++++
+ chromium/sql/database.h | 12 ++++++++++--
+ chromium/sql/internal_api_token.h | 1 +
+ chromium/sql/transaction.cc | 17 ++++++++++++++---
+ chromium/sql/transaction.h | 4 ++--
+ .../browser/database/database_tracker.cc | 8 ++++++++
+ .../storage/browser/database/database_tracker.h | 4 +++-
+ 8 files changed, 57 insertions(+), 8 deletions(-)
+
+diff --git a/chromium/components/history/core/browser/in_memory_database.cc b/chromium/components/history/core/browser/in_memory_database.cc
+index ad9c02696e3c..d139ddc45112 100644
+--- src/3rdparty/chromium/components/history/core/browser/in_memory_database.cc
++++ src/3rdparty/chromium/components/history/core/browser/in_memory_database.cc
+@@ -122,6 +122,9 @@ bool InMemoryDatabase::InitFromDisk(const base::FilePath& history_name) {
+ // inserting into it.
+ CreateMainURLIndex();
+
++ // After this point, the database may be accessed from another sequence.
++ db_.DetachFromSequence();
++
+ return true;
+ }
+
+diff --git a/chromium/sql/database.cc b/chromium/sql/database.cc
+index 54c7c44c7e26..b69e4c968c56 100644
+--- src/3rdparty/chromium/sql/database.cc
++++ src/3rdparty/chromium/sql/database.cc
+@@ -45,6 +45,7 @@
+ #include "build/build_config.h"
+ #include "sql/database_memory_dump_provider.h"
+ #include "sql/initialization.h"
++#include "sql/internal_api_token.h"
+ #include "sql/meta_table.h"
+ #include "sql/sql_features.h"
+ #include "sql/sqlite_result_code.h"
+@@ -221,6 +222,11 @@ base::FilePath Database::SharedMemoryFilePath(const base::FilePath& db_path) {
+ return base::FilePath(db_path.value() + FILE_PATH_LITERAL("-shm"));
+ }
+
++base::WeakPtr<Database> Database::GetWeakPtr(InternalApiToken) {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++ return weak_factory_.GetWeakPtr();
++}
++
+ Database::StatementRef::StatementRef(Database* database,
+ sqlite3_stmt* stmt,
+ bool was_valid)
+@@ -341,6 +347,11 @@ bool Database::OpenInMemory() {
+ return OpenInternal(kSqliteOpenInMemoryPath, OpenMode::kInMemory);
+ }
+
++void Database::DetachFromSequence() {
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++ DETACH_FROM_SEQUENCE(sequence_checker_);
++}
++
+ bool Database::OpenTemporary(base::PassKey<Recovery>) {
+ TRACE_EVENT0("sql", "Database::OpenTemporary");
+
+@@ -350,6 +361,9 @@ bool Database::OpenTemporary(base::PassKey<Recovery>) {
+
+ void Database::CloseInternal(bool forced) {
+ TRACE_EVENT0("sql", "Database::CloseInternal");
++
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++
+ // TODO(shess): Calling "PRAGMA journal_mode = DELETE" at this point
+ // will delete the -journal file. For ChromiumOS or other more
+ // embedded systems, this is probably not appropriate, whereas on
+@@ -966,6 +980,8 @@ void Database::TrimMemory() {
+ bool Database::Raze() {
+ TRACE_EVENT0("sql", "Database::Raze");
+
++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++
+ absl::optional<base::ScopedBlockingCall> scoped_blocking_call;
+ InitScopedBlockingCall(FROM_HERE, &scoped_blocking_call);
+
+diff --git a/chromium/sql/database.h b/chromium/sql/database.h
+index 71a2f6722219..2570aade0157 100644
+--- src/3rdparty/chromium/sql/database.h
++++ src/3rdparty/chromium/sql/database.h
+@@ -27,6 +27,7 @@
+ #include "base/memory/weak_ptr.h"
+ #include "base/sequence_checker.h"
+ #include "base/strings/string_piece.h"
++#include "base/thread_annotations.h"
+ #include "base/threading/scoped_blocking_call.h"
+ #include "base/types/pass_key.h"
+ #include "sql/internal_api_token.h"
+@@ -261,8 +262,10 @@ struct COMPONENT_EXPORT(SQL) DatabaseDiagnostics {
+
+ // Handle to an open SQLite database.
+ //
+-// Instances of this class are not thread-safe. After construction, a Database
+-// instance should only be accessed from one sequence.
++// Instances of this class are not thread-safe. With few exceptions, Database
++// instances should only be accessed from one sequence. Database instances may
++// be constructed on one sequence and safely used/destroyed on another. Callers
++// may explicitly use `DetachFromSequence()` before moving to another sequence.
+ //
+ // When a Database instance goes out of scope, any uncommitted transactions are
+ // rolled back.
+@@ -394,6 +397,10 @@ class COMPONENT_EXPORT(SQL) Database {
+ // Returns true if the database has been successfully opened.
+ bool is_open() const;
+
++ // Detach from the currently-attached sequence. If already attached to a
++ // sequence, this method must be called from that sequence.
++ void DetachFromSequence();
++
+ // Closes the database. This is automatically performed on destruction for
+ // you, but this allows you to close the database early. You must not call
+ // any other functions after closing it. It is permissable to call Close on
+@@ -700,6 +707,7 @@ class COMPONENT_EXPORT(SQL) Database {
+ static base::FilePath SharedMemoryFilePath(const base::FilePath& db_path);
+
+ // Internal state accessed by other classes in //sql.
++ base::WeakPtr<Database> GetWeakPtr(InternalApiToken);
+ sqlite3* db(InternalApiToken) const { return db_; }
+ bool poisoned(InternalApiToken) const { return poisoned_; }
+ base::FilePath DbPath(InternalApiToken) const { return DbPath(); }
+diff --git a/chromium/sql/internal_api_token.h b/chromium/sql/internal_api_token.h
+index c71b70309ee9..d9ec0b834f8e 100644
+--- src/3rdparty/chromium/sql/internal_api_token.h
++++ src/3rdparty/chromium/sql/internal_api_token.h
+@@ -28,6 +28,7 @@ class InternalApiToken {
+ friend class BuiltInRecovery;
+ friend class DatabaseTestPeer;
+ friend class Recovery;
++ friend class Transaction;
+ friend struct test::ColumnInfo;
+ friend bool test::CorruptSizeInHeader(const base::FilePath&);
+ };
+diff --git a/chromium/sql/transaction.cc b/chromium/sql/transaction.cc
+index a8d85b67fbd7..71bc7381b55f 100644
+--- src/3rdparty/chromium/sql/transaction.cc
++++ src/3rdparty/chromium/sql/transaction.cc
+@@ -7,11 +7,13 @@
+ #include "base/check.h"
+ #include "base/sequence_checker.h"
+ #include "sql/database.h"
++#include "sql/internal_api_token.h"
+
+ namespace sql {
+
+-Transaction::Transaction(Database* database) : database_(*database) {
+- DCHECK(database);
++Transaction::Transaction(Database* database) {
++ CHECK(database);
++ database_ = database->GetWeakPtr(InternalApiToken{});
+ }
+
+ Transaction::~Transaction() {
+@@ -21,7 +23,7 @@ Transaction::~Transaction() {
+ << "Begin() not called immediately after Transaction creation";
+ #endif // DCHECK_IS_ON()
+
+- if (is_active_)
++ if (is_active_ && database_ && database_->is_open())
+ database_->RollbackTransaction();
+ }
+
+@@ -33,6 +35,9 @@ bool Transaction::Begin() {
+ #endif // DCHECK_IS_ON()
+
+ DCHECK(!is_active_);
++ if (!database_) {
++ return false;
++ }
+ is_active_ = database_->BeginTransaction();
+ return is_active_;
+ }
+@@ -49,6 +54,9 @@ void Transaction::Rollback() {
+ DCHECK(is_active_) << __func__ << " called after Begin() failed";
+ is_active_ = false;
+
++ if (!database_) {
++ return;
++ }
+ database_->RollbackTransaction();
+ }
+
+@@ -63,6 +71,9 @@ bool Transaction::Commit() {
+
+ DCHECK(is_active_) << __func__ << " called after Begin() failed";
+ is_active_ = false;
++ if (!database_) {
++ return false;
++ }
+ return database_->CommitTransaction();
+ }
+
+diff --git a/chromium/sql/transaction.h b/chromium/sql/transaction.h
+index 54573bcf98d2..8e20d7fe737a 100644
+--- src/3rdparty/chromium/sql/transaction.h
++++ src/3rdparty/chromium/sql/transaction.h
+@@ -7,7 +7,7 @@
+
+ #include "base/check.h"
+ #include "base/component_export.h"
+-#include "base/memory/raw_ref.h"
++#include "base/memory/weak_ptr.h"
+ #include "base/sequence_checker.h"
+ #include "base/thread_annotations.h"
+
+@@ -91,7 +91,7 @@ class COMPONENT_EXPORT(SQL) Transaction {
+ private:
+ SEQUENCE_CHECKER(sequence_checker_);
+
+- const raw_ref<Database> database_ GUARDED_BY_CONTEXT(sequence_checker_);
++ base::WeakPtr<Database> database_ GUARDED_BY_CONTEXT(sequence_checker_);
+
+ #if DCHECK_IS_ON()
+ bool begin_called_ GUARDED_BY_CONTEXT(sequence_checker_) = false;
+diff --git a/chromium/storage/browser/database/database_tracker.cc b/chromium/storage/browser/database/database_tracker.cc
+index 2926db89bac4..5dbfcf2d4227 100644
+--- src/3rdparty/chromium/storage/browser/database/database_tracker.cc
++++ src/3rdparty/chromium/storage/browser/database/database_tracker.cc
+@@ -4,6 +4,7 @@
+
+ #include "storage/browser/database/database_tracker.h"
+
++#include <stddef.h>
+ #include <stdint.h>
+
+ #include <algorithm>
+@@ -986,6 +987,13 @@ void DatabaseTracker::Shutdown() {
+ else if (!force_keep_session_state_)
+ ClearSessionOnlyOrigins();
+ CloseTrackerDatabaseAndClearCaches();
++
++ // Explicitly destroy `db_` on the correct sequence rather than waiting for
++ // the destructor, which may run on another sequence. Destroy related fields
++ // first to prevent dangling pointers. Destruction order is important.
++ meta_table_.reset();
++ databases_table_.reset();
++ db_.reset();
+ }
+
+ void DatabaseTracker::SetForceKeepSessionState() {
+diff --git a/chromium/storage/browser/database/database_tracker.h b/chromium/storage/browser/database/database_tracker.h
+index 17b6aea42766..57d189e338d3 100644
+--- src/3rdparty/chromium/storage/browser/database/database_tracker.h
++++ src/3rdparty/chromium/storage/browser/database/database_tracker.h
+@@ -77,7 +77,9 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) OriginInfo {
+ // The data in this class is not thread-safe, so all methods of this class
+ // should be called on the task runner returned by task_runner(). The only
+ // exceptions are the constructor, the destructor, and the getters explicitly
+-// marked as thread-safe.
++// marked as thread-safe. Although the destructor itself may run on any thread,
++// destruction effectively occurs in Shutdown(), which expects to be called on
++// task_runner().
+ class COMPONENT_EXPORT(STORAGE_BROWSER) DatabaseTracker
+ : public base::RefCountedThreadSafe<DatabaseTracker> {
+ public:
+From aea30bc1019793100c4586d499fa7f82ff18613b Mon Sep 17 00:00:00 2001
+From: Liam Brady <lbrady@google.com>
+Date: Thu, 7 Mar 2024 22:11:26 +0000
+Subject: [PATCH] [Backport] CVE-2024-3840: Insufficient policy enforcement in
+ Site Isolation
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Manual cherry-pick of patch originally reviewed on
+https://chromium-review.googlesource.com/c/chromium/src/+/5269464:
+Clear user activation on cross-site navigations.
+
+When full site isolation is disabled, renderer processes and
+RenderFrameHosts are re-used when performing cross-site navigations.
+This includes user activation state, and, more specifically, the sticky
+`has_been_active_` bit in `UserActivationState`.
+
+Currently, the `UserActivationState` on the renderer-side is reset only
+if the navigation's associated frame is a main frame. That means that if
+an iframe navigates to a cross-site page, its sticky user activation
+state will be the leftover state from the previous page. So, if a user
+interacted with the previous page in any capacity, the newly loaded page
+will think it has received a user gesture, essentially using an
+unintentional cache of the user activation state.
+
+This becomes an issue when dealing with our framebusting interventions.
+We only allow an iframe to do a top-level navigation if it received a
+user gesture. However, if an iframe's previous document received a user
+activation, or worse, if the iframe was not navigated to anything and
+got a user activation because its embedder was interacted with, this
+allows the current document to circumvent our framebusting
+interventions. The latter happens because of same-origin descendant
+activation behavior. See:
+https://source.chromium.org/chromium/chromium/src/+/main:content/browser/renderer_host/frame_tree_node.cc;l=766-778;drc=30753b1135fa271a3b45bbdbfef6567e46733a7f;bpv=1;bpt=1
+
+Note that this problem does not exist if site isolation is enabled
+(which is by default on desktop platforms), since a cross-site
+navigation will create a whole new process with a fresh
+`UserActivationState`.
+
+To fix this, this CL clears the user activation state on cross-site
+subframe navigations in the renderer (user activation is already cleared
+for main frames). To ensure that same-site navigations persist user
+state even if a cross-origin or same-origin navigation results in a new
+process or RenderFrameHost being created, this CL also explicitly
+transfers sticky user activation state for all same-site
+cross-RenderFrameHost navigations. This takes place in the browser, and
+the resulting bit to determine if a frame should have sticky user
+activation is passed to the renderer.
+
+The ultimate end goal is to unconditionally clear the user activation
+state for all cross-document navigations. That unfortunately is not
+possible today as there are entrenched use cases that rely on sticky
+user activation state being cached for same-site navigations. See:
+https://crbug.com/40228985.
+
+This CL also fixes the aforementioned regression when enabling the
+RenderDocument feature, since this CL will now preserve the sticky user
+activation state regardless of what
+process/RenderFrameHost/RenderDocument state the navigation results in.
+
+This CL adds some tests to the no-auto-wpt-origin-isolation test suite, which requires some additional description:
+
+* These tests are running on all platforms because site isolation behavior may differ per platform
+* All of the tests in the-iframe-element are being added because it would be useful to understand their behavior in all expected process
+configurations
+* The total time taken for this test suite on linux-rel showed a total time percentage of <0.3%
+
+Bug: 41493458
+Change-Id: Ibec11437fcd03470571e04a4e0dfaadffddf6c03
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5269464
+Reviewed-by: Mustaq Ahmed <mustaq@chromium.org>
+Reviewed-by: Charlie Reis <creis@chromium.org>
+Reviewed-by: Jeremy Roman <jbroman@chromium.org>
+Reviewed-by: Robert Flack <flackr@chromium.org>
+Reviewed-by: Andrew Verge <averge@chromium.org>
+Commit-Queue: Liam Brady <lbrady@google.com>
+Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
+Reviewed-by: danakj <danakj@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#1269856}
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/556966
+Reviewed-by: Michael Br端ning <michael.bruning@qt.io>
+---
+ .../browser/renderer_host/frame_tree_node.cc | 30 ++++++++---------
+ .../browser/renderer_host/frame_tree_node.h | 15 ++++-----
+ .../navigation_controller_impl.cc | 4 ++-
+ .../renderer_host/navigation_entry_impl.cc | 5 +--
+ .../renderer_host/navigation_request.cc | 29 ++++++++++++----
+ .../browser/renderer_host/navigator.cc | 33 +++++++++++++++----
+ .../renderer_host/render_frame_host_impl.cc | 11 +++++--
+ .../renderer_host/render_frame_host_impl.h | 3 +-
+ .../content/renderer/render_frame_impl.cc | 3 ++
+ .../common/frame/user_activation_state.cc | 4 +++
+ .../common/frame/user_activation_state.h | 4 +++
+ .../frame/user_activation_update_types.mojom | 8 +++++
+ .../mojom/navigation/navigation_params.mojom | 4 +++
+ .../blink/public/web/web_navigation_params.h | 4 +++
+ .../blink/renderer/core/frame/frame.cc | 21 ++++++++++--
+ .../blink/renderer/core/frame/frame.h | 10 +++++-
+ .../blink/renderer/core/frame/remote_frame.cc | 3 ++
+ .../renderer/core/loader/document_loader.cc | 21 ++++++++++--
+ .../renderer/core/loader/document_loader.h | 4 +++
+ 19 files changed, 164 insertions(+), 52 deletions(-)
+
+diff --git a/chromium/content/browser/renderer_host/frame_tree_node.cc b/chromium/content/browser/renderer_host/frame_tree_node.cc
+index dd618cfa09e5..1ed5a5e0f004 100644
+--- src/3rdparty/chromium/content/browser/renderer_host/frame_tree_node.cc
++++ src/3rdparty/chromium/content/browser/renderer_host/frame_tree_node.cc
+@@ -338,19 +338,6 @@ bool FrameTreeNode::IsOutermostMainFrame() const {
+ return !GetParentOrOuterDocument();
+ }
+
+-void FrameTreeNode::ResetForNavigation() {
+- // This frame has had its user activation bits cleared in the renderer before
+- // arriving here. We just need to clear them here and in the other renderer
+- // processes that may have a reference to this frame.
+- //
+- // We do not take user activation into account when calculating
+- // |ResetForNavigationResult|, as we are using it to determine bfcache
+- // eligibility and the page can get another user gesture after restore.
+- UpdateUserActivationState(
+- blink::mojom::UserActivationUpdateType::kClearActivation,
+- blink::mojom::UserActivationNotificationType::kNone);
+-}
+-
+ RenderFrameHostImpl* FrameTreeNode::GetParentOrOuterDocument() const {
+ return GetParentOrOuterDocumentHelper(/*escape_guest_view=*/false,
+ /*include_prospective=*/true);
+@@ -769,15 +756,22 @@ void FrameTreeNode::BeforeUnloadCanceled() {
+ }
+ }
+
++bool FrameTreeNode::NotifyUserActivationStickyOnly() {
++ return NotifyUserActivation(
++ blink::mojom::UserActivationNotificationType::kNone,
++ /*sticky_only=*/true);
++}
++
+ bool FrameTreeNode::NotifyUserActivation(
+- blink::mojom::UserActivationNotificationType notification_type) {
++ blink::mojom::UserActivationNotificationType notification_type,
++ bool sticky_only) {
+ // User Activation V2 requires activating all ancestor frames in addition to
+ // the current frame. See
+ // https://html.spec.whatwg.org/multipage/interaction.html#tracking-user-activation.
+ for (RenderFrameHostImpl* rfh = current_frame_host(); rfh;
+ rfh = rfh->GetParent()) {
+ rfh->DidReceiveUserActivation();
+- rfh->ActivateUserActivation(notification_type);
++ rfh->ActivateUserActivation(notification_type, sticky_only);
+ }
+
+ current_frame_host()->browsing_context_state()->set_has_active_user_gesture(
+@@ -792,7 +786,8 @@ bool FrameTreeNode::NotifyUserActivation(
+ for (FrameTreeNode* node : frame_tree().Nodes()) {
+ if (node->current_frame_host()->GetLastCommittedOrigin().IsSameOriginWith(
+ current_origin)) {
+- node->current_frame_host()->ActivateUserActivation(notification_type);
++ node->current_frame_host()->ActivateUserActivation(notification_type,
++ sticky_only);
+ }
+ }
+ }
+@@ -860,6 +855,9 @@ bool FrameTreeNode::UpdateUserActivationState(
+ return false;
+ }
+ } break;
++ case blink::mojom::UserActivationUpdateType::kNotifyActivationStickyOnly:
++ update_result = NotifyUserActivationStickyOnly();
++ break;
+ case blink::mojom::UserActivationUpdateType::kClearActivation:
+ update_result = ClearUserActivation();
+ break;
+diff --git a/chromium/content/browser/renderer_host/frame_tree_node.h b/chromium/content/browser/renderer_host/frame_tree_node.h
+index 0edd7b389cc3..284a81e467dd 100644
+--- src/3rdparty/chromium/content/browser/renderer_host/frame_tree_node.h
++++ src/3rdparty/chromium/content/browser/renderer_host/frame_tree_node.h
+@@ -122,14 +122,6 @@ class CONTENT_EXPORT FrameTreeNode : public RenderFrameHostOwner {
+ bool IsMainFrame() const;
+ bool IsOutermostMainFrame() const;
+
+- // Clears any state in this node which was set by the document itself (CSP &
+- // UserActivationState) and notifies proxies as appropriate. Invoked after
+- // committing navigation to a new document (since the new document comes with
+- // a fresh set of CSP).
+- // TODO(arthursonzogni): Remove this function. The frame/document must not be
+- // left temporarily with lax state.
+- void ResetForNavigation();
+-
+ FrameTree& frame_tree() const { return frame_tree_.get(); }
+ Navigator& navigator();
+
+@@ -772,8 +764,13 @@ class CONTENT_EXPORT FrameTreeNode : public RenderFrameHostOwner {
+ class OpenerDestroyedObserver;
+
+ // The |notification_type| parameter is used for histograms only.
++ // |sticky_only| is set to true when propagating sticky user activation during
++ // cross-document navigations. The transient state remains unchanged.
+ bool NotifyUserActivation(
+- blink::mojom::UserActivationNotificationType notification_type);
++ blink::mojom::UserActivationNotificationType notification_type,
++ bool sticky_only = false);
++
++ bool NotifyUserActivationStickyOnly();
+
+ bool ConsumeTransientUserActivation();
+
+diff --git a/chromium/content/browser/renderer_host/navigation_controller_impl.cc b/chromium/content/browser/renderer_host/navigation_controller_impl.cc
+index 24203784c631..54e064642bdc 100644
+--- src/3rdparty/chromium/content/browser/renderer_host/navigation_controller_impl.cc
++++ src/3rdparty/chromium/content/browser/renderer_host/navigation_controller_impl.cc
+@@ -3979,7 +3979,9 @@ NavigationControllerImpl::CreateNavigationRequestFromLoadParams(
+ /*origin_agent_cluster_left_as_default=*/true,
+ /*enabled_client_hints=*/
+ std::vector<network::mojom::WebClientHintsType>(),
+- /*is_cross_browsing_instance=*/false, /*old_page_info=*/nullptr,
++ /*is_cross_site_cross_browsing_context_group=*/false,
++ /*should_have_sticky_user_activation=*/false,
++ /*old_page_info=*/nullptr,
+ /*http_response_code=*/-1,
+ blink::mojom::NavigationApiHistoryEntryArrays::New(),
+ /*early_hints_preloaded_resources=*/std::vector<GURL>(),
+diff --git a/chromium/content/browser/renderer_host/navigation_entry_impl.cc b/chromium/content/browser/renderer_host/navigation_entry_impl.cc
+index 1c318ac954ed..897fb61b887d 100644
+--- src/3rdparty/chromium/content/browser/renderer_host/navigation_entry_impl.cc
++++ src/3rdparty/chromium/content/browser/renderer_host/navigation_entry_impl.cc
+@@ -942,8 +942,9 @@ NavigationEntryImpl::ConstructCommitNavigationParams(
+ true /* origin_agent_cluster_left_as_default */,
+ std::vector<
+ network::mojom::WebClientHintsType>() /* enabled_client_hints */,
+- false /* is_cross_browsing_instance */, nullptr /* old_page_info */,
+- -1 /* http_response_code */,
++ false /* is_cross_site_cross_browsing_context_group */,
++ false /* should_have_sticky_user_activation */,
++ nullptr /* old_page_info */, -1 /* http_response_code */,
+ blink::mojom::NavigationApiHistoryEntryArrays::New(),
+ std::vector<GURL>() /* early_hints_preloaded_resources */,
+ // This timestamp will be populated when the commit IPC is sent.
+diff --git a/chromium/content/browser/renderer_host/navigation_request.cc b/chromium/content/browser/renderer_host/navigation_request.cc
+index da6c714c0c04..923354bdafbf 100644
+--- src/3rdparty/chromium/content/browser/renderer_host/navigation_request.cc
++++ src/3rdparty/chromium/content/browser/renderer_host/navigation_request.cc
+@@ -1318,7 +1318,8 @@ std::unique_ptr<NavigationRequest> NavigationRequest::CreateRendererInitiated(
+ /*origin_agent_cluster_left_as_default=*/true,
+ /*enabled_client_hints=*/
+ std::vector<network::mojom::WebClientHintsType>(),
+- /*is_cross_browsing_instance=*/false,
++ /*is_cross_site_cross_browsing_context_group=*/false,
++ /*should_have_sticky_user_activation=*/false,
+ /*old_page_info=*/nullptr, /*http_response_code=*/-1,
+ blink::mojom::NavigationApiHistoryEntryArrays::New(),
+ /*early_hints_preloaded_resources=*/std::vector<GURL>(),
+@@ -1462,7 +1463,8 @@ NavigationRequest::CreateForSynchronousRendererCommit(
+ /*origin_agent_cluster_left_as_default=*/true,
+ /*enabled_client_hints=*/
+ std::vector<network::mojom::WebClientHintsType>(),
+- /*is_cross_browsing_instance=*/false,
++ /*is_cross_site_cross_browsing_context_group=*/false,
++ /*should_have_sticky_user_activation=*/false,
+ /*old_page_info=*/nullptr, http_response_code,
+ blink::mojom::NavigationApiHistoryEntryArrays::New(),
+ /*early_hints_preloaded_resources=*/std::vector<GURL>(),
+@@ -5599,11 +5601,11 @@ void NavigationRequest::CommitNavigation() {
+ }
+ }
+
++ RenderFrameHostImpl* old_frame_host =
++ frame_tree_node_->render_manager()->current_frame_host();
+ if (!NavigationTypeUtils::IsSameDocument(common_params_->navigation_type)) {
+ // We want to record this for the frame that we are navigating away from.
+- frame_tree_node_->render_manager()
+- ->current_frame_host()
+- ->RecordNavigationSuddenTerminationHandlers();
++ old_frame_host->RecordNavigationSuddenTerminationHandlers();
+ }
+ if (IsServedFromBackForwardCache() || IsPrerenderedPageActivation()) {
+ CommitPageActivation();
+@@ -5623,8 +5625,7 @@ void NavigationRequest::CommitNavigation() {
+ if (!weak_self)
+ return;
+
+- DCHECK(GetRenderFrameHost() ==
+- frame_tree_node_->render_manager()->current_frame_host() ||
++ DCHECK(GetRenderFrameHost() == old_frame_host ||
+ GetRenderFrameHost() ==
+ frame_tree_node_->render_manager()->speculative_frame_host());
+
+@@ -5699,6 +5700,20 @@ void NavigationRequest::CommitNavigation() {
+ response(), frame_tree_node_);
+ }
+
++ // Sticky user activation should only be preserved for same-site subframe
++ // navigations. This is done to prevent newly navigated documents from
++ // re-using the sticky user activation state from the previously navigated
++ // document in the frame. We persist user activation across same-site
++ // navigations for compatibility reasons, and this does not need to match the
++ // same-site checks used in the process model. See: crbug.com/736415.
++ // TODO(crbug.com/40228985): Remove this once we find a way to reset
++ // activation unconditionally without breaking sites in practice.
++ commit_params_->should_have_sticky_user_activation =
++ !frame_tree_node_->IsMainFrame() &&
++ old_frame_host->HasStickyUserActivation() &&
++ net::SchemefulSite(old_frame_host->GetLastCommittedOrigin()) ==
++ net::SchemefulSite(origin);
++
+ // Generate a UKM source and track it on NavigationRequest. This will be
+ // passed down to the blink::Document to be created, if any, and used for UKM
+ // source creation when navigation has successfully committed.
+diff --git a/chromium/content/browser/renderer_host/navigator.cc b/chromium/content/browser/renderer_host/navigator.cc
+index 1063f29af344..e4cdb82d5598 100644
+--- src/3rdparty/chromium/content/browser/renderer_host/navigator.cc
++++ src/3rdparty/chromium/content/browser/renderer_host/navigator.cc
+@@ -47,6 +47,7 @@
+ #include "content/public/common/content_constants.h"
+ #include "content/public/common/url_utils.h"
+ #include "net/base/net_errors.h"
++#include "net/base/schemeful_site.h"
+ #include "services/metrics/public/cpp/ukm_builders.h"
+ #include "services/metrics/public/cpp/ukm_recorder.h"
+ #include "services/metrics/public/cpp/ukm_source_id.h"
+@@ -512,6 +513,9 @@ void Navigator::DidNavigate(
+ was_within_same_document);
+ }
+
++ // Store this information before DidNavigateFrame() potentially swaps RFHs.
++ url::Origin old_frame_origin = old_frame_host->GetLastCommittedOrigin();
++
+ // DidNavigateFrame() must be called before replicating the new origin and
+ // other properties to proxies. This is because it destroys the subframes of
+ // the frame we're navigating from, which might trigger those subframes to
+@@ -524,6 +528,29 @@ void Navigator::DidNavigate(
+ .ShouldClearProxiesOnCommit(),
+ navigation_request->commit_params().frame_policy);
+
++ // The main frame, same site, and cross-site navigation checks for user
++ // activation mirror the checks in DocumentLoader::CommitNavigation() (note:
++ // CommitNavigation() is not called for same-document navigations, which is
++ // why we have the !was_within_same_document check). This is done to prevent
++ // newly navigated pages from re-using the sticky user activation state from
++ // the previously navigated page in the frame. We persist user activation
++ // across same-site navigations for compatibility reasons with user
++ // activation, and does not need to match the same-site checks used in the
++ // process model. See: crbug.com/736415, and crbug.com/40228985 for the
++ // specific regression that resulted in this requirement.
++ if (!was_within_same_document) {
++ if (!navigation_request->commit_params()
++ .should_have_sticky_user_activation) {
++ frame_tree_node->UpdateUserActivationState(
++ blink::mojom::UserActivationUpdateType::kClearActivation,
++ blink::mojom::UserActivationNotificationType::kNone);
++ } else {
++ frame_tree_node->UpdateUserActivationState(
++ blink::mojom::UserActivationUpdateType::kNotifyActivationStickyOnly,
++ blink::mojom::UserActivationNotificationType::kNone);
++ }
++ }
++
+ // Save the new page's origin and other properties, and replicate them to
+ // proxies, including the proxy created in DidNavigateFrame() to replace the
+ // old frame in cross-process navigation cases.
+@@ -534,12 +561,6 @@ void Navigator::DidNavigate(
+ render_frame_host->browsing_context_state()->SetInsecureNavigationsSet(
+ params.insecure_navigations_set);
+
+- if (!was_within_same_document) {
+- // Navigating to a new location means a new, fresh set of http headers
+- // and/or <meta> elements - we need to reset Permissions Policy.
+- frame_tree_node->ResetForNavigation();
+- }
+-
+ // If the committing URL requires the SiteInstance's site to be assigned,
+ // that site assignment should've already happened at ReadyToCommit time. We
+ // should never get here with a SiteInstance that doesn't have a site
+diff --git a/chromium/content/browser/renderer_host/render_frame_host_impl.cc b/chromium/content/browser/renderer_host/render_frame_host_impl.cc
+index c5f90d4965f9..d1d0efb398ba 100644
+--- src/3rdparty/chromium/content/browser/renderer_host/render_frame_host_impl.cc
++++ src/3rdparty/chromium/content/browser/renderer_host/render_frame_host_impl.cc
+@@ -6002,9 +6002,14 @@ void RenderFrameHostImpl::ConsumeTransientUserActivation() {
+ }
+
+ void RenderFrameHostImpl::ActivateUserActivation(
+- blink::mojom::UserActivationNotificationType notification_type) {
+- user_activation_state_.Activate(notification_type);
+- history_user_activation_state_.Activate();
++ blink::mojom::UserActivationNotificationType notification_type,
++ bool sticky_only) {
++ if (sticky_only) {
++ user_activation_state_.SetHasBeenActive();
++ } else {
++ user_activation_state_.Activate(notification_type);
++ history_user_activation_state_.Activate();
++ }
+ }
+
+ void RenderFrameHostImpl::ActivateFocusSourceUserActivation() {
+diff --git a/chromium/content/browser/renderer_host/render_frame_host_impl.h b/chromium/content/browser/renderer_host/render_frame_host_impl.h
+index 378657c0a55d..0a001fb828e1 100644
+--- src/3rdparty/chromium/content/browser/renderer_host/render_frame_host_impl.h
++++ src/3rdparty/chromium/content/browser/renderer_host/render_frame_host_impl.h
+@@ -2931,7 +2931,8 @@ class CONTENT_EXPORT RenderFrameHostImpl
+ void ClearUserActivation();
+ void ConsumeTransientUserActivation();
+ void ActivateUserActivation(
+- blink::mojom::UserActivationNotificationType notification_type);
++ blink::mojom::UserActivationNotificationType notification_type,
++ bool sticky_only = false);
+
+ // These are called only when RenderFrameHostOwner is iterating over all
+ // frames, not directly from the renderer.
+diff --git a/chromium/content/renderer/render_frame_impl.cc b/chromium/content/renderer/render_frame_impl.cc
+index 5da8ffc96764..13afea50ecba 100644
+--- src/3rdparty/chromium/content/renderer/render_frame_impl.cc
++++ src/3rdparty/chromium/content/renderer/render_frame_impl.cc
+@@ -981,6 +981,9 @@ void FillMiscNavigationParams(
+ navigation_params->is_cross_site_cross_browsing_context_group =
+ commit_params.is_cross_site_cross_browsing_context_group;
+
++ navigation_params->should_have_sticky_user_activation =
++ commit_params.should_have_sticky_user_activation;
++
+ #if BUILDFLAG(IS_ANDROID) || defined(TOOLKIT_QT)
+ // Only android webview uses this.
+ navigation_params->grant_load_local_resources =
+diff --git a/chromium/third_party/blink/common/frame/user_activation_state.cc b/chromium/third_party/blink/common/frame/user_activation_state.cc
+index 5804fa8049be..ad85a074d10b 100644
+--- src/3rdparty/chromium/third_party/blink/common/frame/user_activation_state.cc
++++ src/3rdparty/chromium/third_party/blink/common/frame/user_activation_state.cc
+@@ -47,6 +47,10 @@ void UserActivationState::Activate(
+ transient_state_expiry_time_for_interaction_ = transient_state_expiry_time_;
+ }
+
++void UserActivationState::SetHasBeenActive() {
++ has_been_active_ = true;
++}
++
+ void UserActivationState::Clear() {
+ has_been_active_ = false;
+ last_activation_was_restricted_ = false;
+diff --git a/chromium/third_party/blink/public/common/frame/user_activation_state.h b/chromium/third_party/blink/public/common/frame/user_activation_state.h
+index fe530372caa0..6e143d2e9795 100644
+--- src/3rdparty/chromium/third_party/blink/public/common/frame/user_activation_state.h
++++ src/3rdparty/chromium/third_party/blink/public/common/frame/user_activation_state.h
+@@ -111,6 +111,10 @@ class BLINK_COMMON_EXPORT UserActivationState {
+ // |is_restricted| as a parameter here.
+ void Activate(mojom::UserActivationNotificationType notification_type);
+
++ // Used when propagating user activation state across cross-process
++ // navigations.
++ void SetHasBeenActive();
++
+ void Clear();
+
+ // Returns the sticky activation state, which is |true| if the frame has ever
+diff --git a/chromium/third_party/blink/public/mojom/frame/user_activation_update_types.mojom b/chromium/third_party/blink/public/mojom/frame/user_activation_update_types.mojom
+index 6db97b4a695c..5acd66856df0 100644
+--- src/3rdparty/chromium/third_party/blink/public/mojom/frame/user_activation_update_types.mojom
++++ src/3rdparty/chromium/third_party/blink/public/mojom/frame/user_activation_update_types.mojom
+@@ -7,8 +7,16 @@ module blink.mojom;
+ // Types of UserActivationV2 state updates sent between the browser and the
+ // renderer processes.
+ enum UserActivationUpdateType {
++ // Used to give a document sticky and transient user activation as a result of
++ // a user gesture.
+ kNotifyActivation,
+ kNotifyActivationPendingBrowserVerification,
++ // Used to propagate the sticky user activation state during cross-document
++ // navigations.
++ kNotifyActivationStickyOnly,
++ // Used after a sensitive API is called to prevent abuse of the API.
+ kConsumeTransientActivation,
++ // Used during cross-document navigations when the user activation state
++ // shouldn't be propagated.
+ kClearActivation
+ };
+diff --git a/chromium/third_party/blink/public/mojom/navigation/navigation_params.mojom b/chromium/third_party/blink/public/mojom/navigation/navigation_params.mojom
+index b568f7442142..3947e8dcaeb3 100644
+--- src/3rdparty/chromium/third_party/blink/public/mojom/navigation/navigation_params.mojom
++++ src/3rdparty/chromium/third_party/blink/public/mojom/navigation/navigation_params.mojom
+@@ -510,6 +510,10 @@ struct CommitNavigationParams {
+ // Whether this is a cross-site navigation that swaps BrowsingContextGroups.
+ bool is_cross_site_cross_browsing_context_group = false;
+
++ // Whether the new document should start with sticky user activation, because
++ // the previously committed document did, and the navigation was same-site.
++ bool should_have_sticky_user_activation = false;
++
+ // Should only be set to a valid value for main-frame same-site navigations
+ // where we did a proactive BrowsingInstance swap and we're reusing the old
+ // page's process.
+diff --git a/chromium/third_party/blink/public/web/web_navigation_params.h b/chromium/third_party/blink/public/web/web_navigation_params.h
+index 560c4e985497..206bff0b0042 100644
+--- src/3rdparty/chromium/third_party/blink/public/web/web_navigation_params.h
++++ src/3rdparty/chromium/third_party/blink/public/web/web_navigation_params.h
+@@ -466,6 +466,10 @@ struct BLINK_EXPORT WebNavigationParams {
+ // (BrowsingInstances).
+ bool is_cross_site_cross_browsing_context_group = false;
+
++ // Whether the new document should start with sticky user activation, because
++ // the previously committed document did, and the navigation was same-site.
++ bool should_have_sticky_user_activation = false;
++
+ // Blink's copy of the policy container containing security policies to be
+ // enforced on the document created by this navigation.
+ std::unique_ptr<WebPolicyContainer> policy_container;
+diff --git a/chromium/third_party/blink/renderer/core/frame/frame.cc b/chromium/third_party/blink/renderer/core/frame/frame.cc
+index e0ce2a1bcbef..ce18145c67a6 100644
+--- src/3rdparty/chromium/third_party/blink/renderer/core/frame/frame.cc
++++ src/3rdparty/chromium/third_party/blink/renderer/core/frame/frame.cc
+@@ -286,10 +286,21 @@ void Frame::DidChangeVisibilityState() {
+ child_frames[i]->DidChangeVisibilityState();
+ }
+
++void Frame::NotifyUserActivationInFrameTreeStickyOnly() {
++ NotifyUserActivationInFrameTree(
++ mojom::blink::UserActivationNotificationType::kNone,
++ /*sticky_only=*/true);
++}
++
+ void Frame::NotifyUserActivationInFrameTree(
+- mojom::blink::UserActivationNotificationType notification_type) {
++ mojom::blink::UserActivationNotificationType notification_type,
++ bool sticky_only) {
+ for (Frame* node = this; node; node = node->Tree().Parent()) {
+- node->user_activation_state_.Activate(notification_type);
++ if (sticky_only) {
++ node->user_activation_state_.SetHasBeenActive();
++ } else {
++ node->user_activation_state_.Activate(notification_type);
++ }
+ node->ActivateHistoryUserActivationState();
+ }
+
+@@ -307,7 +318,11 @@ void Frame::NotifyUserActivationInFrameTree(
+ if (local_frame_node &&
+ security_origin->CanAccess(
+ local_frame_node->GetSecurityContext()->GetSecurityOrigin())) {
+- node->user_activation_state_.Activate(notification_type);
++ if (sticky_only) {
++ node->user_activation_state_.SetHasBeenActive();
++ } else {
++ node->user_activation_state_.Activate(notification_type);
++ }
+ node->ActivateHistoryUserActivationState();
+ }
+ }
+diff --git a/chromium/third_party/blink/renderer/core/frame/frame.h b/chromium/third_party/blink/renderer/core/frame/frame.h
+index 2487e9a9a98a..3707cff0fa64 100644
+--- src/3rdparty/chromium/third_party/blink/renderer/core/frame/frame.h
++++ src/3rdparty/chromium/third_party/blink/renderer/core/frame/frame.h
+@@ -256,6 +256,12 @@ class CORE_EXPORT Frame : public GarbageCollected<Frame> {
+ return user_activation_state_.LastActivationWasRestricted();
+ }
+
++ // Sets the sticky user activation state of this frame. This does not change
++ // the transient user activation state.
++ void SetStickyUserActivationState() {
++ user_activation_state_.SetHasBeenActive();
++ }
++
+ // Resets the user activation state of this frame.
+ void ClearUserActivation() { user_activation_state_.Clear(); }
+
+@@ -482,8 +488,10 @@ class CORE_EXPORT Frame : public GarbageCollected<Frame> {
+ void ApplyFrameOwnerProperties(
+ mojom::blink::FrameOwnerPropertiesPtr properties);
+
++ void NotifyUserActivationInFrameTreeStickyOnly();
+ void NotifyUserActivationInFrameTree(
+- mojom::blink::UserActivationNotificationType notification_type);
++ mojom::blink::UserActivationNotificationType notification_type,
++ bool sticky_only = false);
+ bool ConsumeTransientUserActivationInFrameTree();
+ void ClearUserActivationInFrameTree();
+
+diff --git a/chromium/third_party/blink/renderer/core/frame/remote_frame.cc b/chromium/third_party/blink/renderer/core/frame/remote_frame.cc
+index e5d0e24fa1cb..7f3f457261da 100644
+--- src/3rdparty/chromium/third_party/blink/renderer/core/frame/remote_frame.cc
++++ src/3rdparty/chromium/third_party/blink/renderer/core/frame/remote_frame.cc
+@@ -665,6 +665,9 @@ void RemoteFrame::UpdateUserActivationState(
+ case mojom::blink::UserActivationUpdateType::kNotifyActivation:
+ NotifyUserActivationInFrameTree(notification_type);
+ break;
++ case mojom::blink::UserActivationUpdateType::kNotifyActivationStickyOnly:
++ NotifyUserActivationInFrameTreeStickyOnly();
++ break;
+ case mojom::blink::UserActivationUpdateType::kConsumeTransientActivation:
+ ConsumeTransientUserActivationInFrameTree();
+ break;
+diff --git a/chromium/third_party/blink/renderer/core/loader/document_loader.cc b/chromium/third_party/blink/renderer/core/loader/document_loader.cc
+index b7b130e869fe..b29ab01b9f84 100644
+--- src/3rdparty/chromium/third_party/blink/renderer/core/loader/document_loader.cc
++++ src/3rdparty/chromium/third_party/blink/renderer/core/loader/document_loader.cc
+@@ -305,6 +305,7 @@ struct SameSizeAsDocumentLoader
+ bool origin_agent_cluster;
+ bool origin_agent_cluster_left_as_default;
+ bool is_cross_site_cross_browsing_context_group;
++ bool should_have_sticky_user_activation;
+ WebVector<WebHistoryItem> navigation_api_back_entries;
+ WebVector<WebHistoryItem> navigation_api_forward_entries;
+ std::unique_ptr<CodeCacheHost> code_cache_host;
+@@ -512,6 +513,8 @@ DocumentLoader::DocumentLoader(
+ params_->origin_agent_cluster_left_as_default),
+ is_cross_site_cross_browsing_context_group_(
+ params_->is_cross_site_cross_browsing_context_group),
++ should_have_sticky_user_activation_(
++ params_->should_have_sticky_user_activation),
+ navigation_api_back_entries_(params_->navigation_api_back_entries),
+ navigation_api_forward_entries_(params_->navigation_api_forward_entries),
+ extra_data_(std::move(extra_data)),
+@@ -651,6 +654,9 @@ DocumentLoader::CreateWebNavigationParamsToCloneDocument() {
+ params->document_ukm_source_id = ukm_source_id_;
+ params->is_cross_site_cross_browsing_context_group =
+ is_cross_site_cross_browsing_context_group_;
++ // Required for javascript: URL commits to propagate sticky user activation.
++ params->should_have_sticky_user_activation =
++ frame_->HasStickyUserActivation() && !frame_->IsMainFrame();
+ params->has_text_fragment_token = has_text_fragment_token_;
+ // Origin trials must still work on the cloned document.
+ params->initiator_origin_trial_features =
+@@ -2554,10 +2560,19 @@ void DocumentLoader::CommitNavigation() {
+
+ frame_->ClearScrollSnapshotClients();
+
+- // Clear the user activation state.
++ // Determine whether to give the frame sticky user activation. These checks
++ // mirror the check in Navigator::DidNavigate(). Main frame navigations and
++ // cross-site navigations should not hold on to the sticky user activation
++ // state of the previously navigated page. Same-site navigations should retain
++ // the previous document's sticky user activation state, regardless of whether
++ // the navigation resulted in a new process being created.
++ // See: crbug.com/41493458
+ // TODO(crbug.com/736415): Clear this bit unconditionally for all frames.
+- if (frame_->IsMainFrame())
+- frame_->ClearUserActivation();
++ if (!should_have_sticky_user_activation_) {
++ frame_->ClearUserActivation();
++ } else {
++ frame_->SetStickyUserActivationState();
++ }
+
+ // The DocumentLoader was flagged as activated if it needs to notify the frame
+ // that it was activated before navigation. Update the frame state based on
+diff --git a/chromium/third_party/blink/renderer/core/loader/document_loader.h b/chromium/third_party/blink/renderer/core/loader/document_loader.h
+index 1548bbee1845..ca1758eef3f4 100644
+--- src/3rdparty/chromium/third_party/blink/renderer/core/loader/document_loader.h
++++ src/3rdparty/chromium/third_party/blink/renderer/core/loader/document_loader.h
+@@ -783,6 +783,10 @@ class CORE_EXPORT DocumentLoader : public GarbageCollected<DocumentLoader>,
+ // BrowsingContextGroup.
+ bool is_cross_site_cross_browsing_context_group_ = false;
+
++ // Whether the new document should start with sticky user activation, because
++ // the previously committed document did, and the navigation was same-site.
++ bool should_have_sticky_user_activation_ = false;
++
+ WebVector<WebHistoryItem> navigation_api_back_entries_;
+ WebVector<WebHistoryItem> navigation_api_forward_entries_;
+
+From 6fd09d7a49f15e12264f25a54db9fe189b235d16 Mon Sep 17 00:00:00 2001
+From: Ayu Ishii <ayui@chromium.org>
+Date: Thu, 21 Mar 2024 20:06:29 +0000
+Subject: [PATCH] [Backport] Security bug 323898565
+
+Cherry-pick of patch originally reviewed on
+https://chromium-review.googlesource.com/c/chromium/src/+/5288855:
+WebSQL: Remove session data logic
+
+On Profile destruction, currently there is a race with
+the DatabaseTracker shutdown. DatabaseTracker shutdown
+will post task[1] on the database task runner because
+it needs to do file I/O. However it also has some logic
+to retrieve info for special storage policies from the
+Profile which may already be destroyed by that time.
+
+This change removes logic for special storage policy from
+DatabaseTracker. DatabaseTracker(WebSQL) is removed
+from all platforms as of M119 except for WebView, which does
+not utilize the special storage policy. All policy and
+deprecation support have ended with M123. Therefore cleaning
+up the code to avoid the race.
+
+[1]https://source.chromium.org/chromium/chromium/src/+/main:content/browser/storage_partition_impl.cc;l=1200;drc=be92f4cc2f137460213d52a926c9477275a456c5
+
+Bug: 323898565, 325476286
+Change-Id: Ie2ef898c558308439a8b0d3fdf67f7157440b20a
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5288855
+Commit-Queue: Ayu Ishii <ayui@chromium.org>
+Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
+Reviewed-by: Evan Stade <estade@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#1276451}
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/557063
+Reviewed-by: Michal Klocek <michal.klocek@qt.io>
+---
+ chromium/content/browser/browser_context.cc | 8 ---
+ .../content/browser/storage_partition_impl.cc | 3 +-
+ .../browser/database/database_tracker.cc | 65 +------------------
+ .../browser/database/database_tracker.h | 15 -----
+ 4 files changed, 3 insertions(+), 88 deletions(-)
+
+diff --git a/chromium/content/browser/browser_context.cc b/chromium/content/browser/browser_context.cc
+index c07c16f62e3..6b952d4572f 100644
+--- src/3rdparty/chromium/content/browser/browser_context.cc
++++ src/3rdparty/chromium/content/browser/browser_context.cc
+@@ -56,7 +56,6 @@
+ #include "media/mojo/services/video_decode_perf_history.h"
+ #include "media/mojo/services/webrtc_video_perf_history.h"
+ #include "storage/browser/blob/blob_storage_context.h"
+-#include "storage/browser/database/database_tracker.h"
+ #include "storage/browser/file_system/external_mount_points.h"
+ #include "third_party/blink/public/mojom/push_messaging/push_messaging.mojom.h"
+ #include "third_party/perfetto/include/perfetto/tracing/traced_proto.h"
+@@ -252,13 +251,6 @@ void BrowserContext::EnsureResourceContextInitialized() {
+ void BrowserContext::SaveSessionState() {
+ StoragePartition* storage_partition = GetDefaultStoragePartition();
+
+- storage::DatabaseTracker* database_tracker =
+- storage_partition->GetDatabaseTracker();
+- database_tracker->task_runner()->PostTask(
+- FROM_HERE,
+- base::BindOnce(&storage::DatabaseTracker::SetForceKeepSessionState,
+- base::WrapRefCounted(database_tracker)));
+-
+ storage_partition->GetCookieManagerForBrowserProcess()
+ ->SetForceKeepSessionState();
+
+diff --git a/chromium/content/browser/storage_partition_impl.cc b/chromium/content/browser/storage_partition_impl.cc
+index 3147e6d0371..12ef04e2d8f 100644
+--- src/3rdparty/chromium/content/browser/storage_partition_impl.cc
++++ src/3rdparty/chromium/content/browser/storage_partition_impl.cc
+@@ -1371,8 +1371,7 @@ void StoragePartitionImpl::Initialize(
+ browser_context_, partition_path_, is_in_memory(), quota_manager_proxy);
+
+ database_tracker_ = storage::DatabaseTracker::Create(
+- partition_path_, is_in_memory(),
+- browser_context_->GetSpecialStoragePolicy(), quota_manager_proxy);
++ partition_path_, is_in_memory(), quota_manager_proxy);
+
+ dom_storage_context_ = DOMStorageContextWrapper::Create(
+ this, browser_context_->GetSpecialStoragePolicy());
+diff --git a/chromium/storage/browser/database/database_tracker.cc b/chromium/storage/browser/database/database_tracker.cc
+index 5dbfcf2d422..865661ea56e 100644
+--- src/3rdparty/chromium/storage/browser/database/database_tracker.cc
++++ src/3rdparty/chromium/storage/browser/database/database_tracker.cc
+@@ -42,7 +42,6 @@
+ #include "storage/browser/database/databases_table.h"
+ #include "storage/browser/quota/quota_client_type.h"
+ #include "storage/browser/quota/quota_manager_proxy.h"
+-#include "storage/browser/quota/special_storage_policy.h"
+ #include "storage/common/database/database_identifier.h"
+ #include "third_party/blink/public/common/storage_key/storage_key.h"
+ #include "third_party/blink/public/mojom/quota/quota_types.mojom.h"
+@@ -73,12 +72,6 @@ OriginInfo::OriginInfo(const OriginInfo& origin_info) = default;
+
+ OriginInfo::~OriginInfo() = default;
+
+-void OriginInfo::GetAllDatabaseNames(
+- std::vector<std::u16string>* databases) const {
+- for (const auto& name_and_size : database_sizes_)
+- databases->push_back(name_and_size.first);
+-}
+-
+ int64_t OriginInfo::GetDatabaseSize(const std::u16string& database_name) const {
+ auto it = database_sizes_.find(database_name);
+ if (it != database_sizes_.end())
+@@ -92,11 +85,10 @@ OriginInfo::OriginInfo(const std::string& origin_identifier, int64_t total_size)
+ scoped_refptr<DatabaseTracker> DatabaseTracker::Create(
+ const base::FilePath& profile_path,
+ bool is_incognito,
+- scoped_refptr<SpecialStoragePolicy> special_storage_policy,
+ scoped_refptr<QuotaManagerProxy> quota_manager_proxy) {
+ auto database_tracker = base::MakeRefCounted<DatabaseTracker>(
+- profile_path, is_incognito, std::move(special_storage_policy),
+- std::move(quota_manager_proxy), base::PassKey<DatabaseTracker>());
++ profile_path, is_incognito, std::move(quota_manager_proxy),
++ base::PassKey<DatabaseTracker>());
+ database_tracker->RegisterQuotaClient();
+ return database_tracker;
+ }
+@@ -104,7 +96,6 @@ scoped_refptr<DatabaseTracker> DatabaseTracker::Create(
+ DatabaseTracker::DatabaseTracker(
+ const base::FilePath& profile_path,
+ bool is_incognito,
+- scoped_refptr<SpecialStoragePolicy> special_storage_policy,
+ scoped_refptr<QuotaManagerProxy> quota_manager_proxy,
+ base::PassKey<DatabaseTracker>)
+ : is_incognito_(is_incognito),
+@@ -117,7 +108,6 @@ DatabaseTracker::DatabaseTracker(
+ .page_size = 4096,
+ .cache_size = 500,
+ })),
+- special_storage_policy_(std::move(special_storage_policy)),
+ quota_manager_proxy_(std::move(quota_manager_proxy)),
+ task_runner_(base::ThreadPool::CreateSequencedTaskRunner(
+ {base::MayBlock(), base::TaskPriority::USER_VISIBLE,
+@@ -791,12 +781,6 @@ void DatabaseTracker::DeleteDataModifiedSince(
+ DatabaseSet to_be_deleted;
+ int rv = net::OK;
+ for (const auto& origin : origins_identifiers) {
+- if (special_storage_policy_.get() &&
+- special_storage_policy_->IsStorageProtected(
+- GetOriginURLFromIdentifier(origin))) {
+- continue;
+- }
+-
+ std::vector<DatabaseDetails> details;
+ if (!databases_table_->GetAllDatabaseDetailsForOriginIdentifier(origin,
+ &details)) {
+@@ -930,44 +914,6 @@ void DatabaseTracker::DeleteIncognitoDBDirectory() {
+ base::DeletePathRecursively(incognito_db_dir);
+ }
+
+-void DatabaseTracker::ClearSessionOnlyOrigins() {
+- DCHECK(task_runner_->RunsTasksInCurrentSequence());
+- bool has_session_only_databases =
+- special_storage_policy_.get() &&
+- special_storage_policy_->HasSessionOnlyOrigins();
+-
+- // Clearing only session-only databases, and there are none.
+- if (!has_session_only_databases)
+- return;
+-
+- if (!LazyInit())
+- return;
+-
+- std::vector<std::string> origin_identifiers;
+- GetAllOriginIdentifiers(&origin_identifiers);
+-
+- for (const auto& origin : origin_identifiers) {
+- GURL origin_url = GetOriginURLFromIdentifier(origin);
+- if (!special_storage_policy_->IsStorageSessionOnly(origin_url))
+- continue;
+- if (special_storage_policy_->IsStorageProtected(origin_url))
+- continue;
+- OriginInfo origin_info;
+- std::vector<std::u16string> databases;
+- GetOriginInfo(origin, &origin_info);
+- origin_info.GetAllDatabaseNames(&databases);
+-
+- for (const auto& database : databases) {
+- base::File file(
+- GetFullDBFilePath(origin, database),
+- base::File::FLAG_OPEN_ALWAYS | base::File::FLAG_WIN_SHARE_DELETE |
+- base::File::FLAG_DELETE_ON_CLOSE | base::File::FLAG_READ);
+- }
+- DeleteOrigin(origin, true);
+- }
+-}
+-
+-
+ void DatabaseTracker::Shutdown() {
+ DCHECK(task_runner_->RunsTasksInCurrentSequence());
+ if (shutting_down_) {
+@@ -984,8 +930,6 @@ void DatabaseTracker::Shutdown() {
+
+ if (is_incognito_)
+ DeleteIncognitoDBDirectory();
+- else if (!force_keep_session_state_)
+- ClearSessionOnlyOrigins();
+ CloseTrackerDatabaseAndClearCaches();
+
+ // Explicitly destroy `db_` on the correct sequence rather than waiting for
+@@ -996,9 +940,4 @@ void DatabaseTracker::Shutdown() {
+ db_.reset();
+ }
+
+-void DatabaseTracker::SetForceKeepSessionState() {
+- DCHECK(task_runner_->RunsTasksInCurrentSequence());
+- force_keep_session_state_ = true;
+-}
+-
+ } // namespace storage
+diff --git a/chromium/storage/browser/database/database_tracker.h b/chromium/storage/browser/database/database_tracker.h
+index 57d189e338d..bc55a0b020a 100644
+--- src/3rdparty/chromium/storage/browser/database/database_tracker.h
++++ src/3rdparty/chromium/storage/browser/database/database_tracker.h
+@@ -41,7 +41,6 @@ namespace storage {
+ class DatabaseQuotaClient;
+ class QuotaClientCallbackWrapper;
+ class QuotaManagerProxy;
+-class SpecialStoragePolicy;
+
+ COMPONENT_EXPORT(STORAGE_BROWSER)
+ extern const base::FilePath::CharType kDatabaseDirectoryName[];
+@@ -101,13 +100,11 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) DatabaseTracker
+ static scoped_refptr<DatabaseTracker> Create(
+ const base::FilePath& profile_path,
+ bool is_incognito,
+- scoped_refptr<SpecialStoragePolicy> special_storage_policy,
+ scoped_refptr<QuotaManagerProxy> quota_manager_proxy);
+
+ // Exposed for base::MakeRefCounted. Users should call Create().
+ DatabaseTracker(const base::FilePath& profile_path,
+ bool is_incognito,
+- scoped_refptr<SpecialStoragePolicy> special_storage_policy,
+ scoped_refptr<QuotaManagerProxy> quota_manager_proxy,
+ base::PassKey<DatabaseTracker>);
+
+@@ -168,9 +165,6 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) DatabaseTracker
+
+ // Deletes databases touched since `cutoff`.
+ //
+- // Does not delete databases belonging to origins designated as protected by
+- // the SpecialStoragePolicy passed to the DatabaseTracker constructor.
+- //
+ // `callback` must must be non-null, and is invoked upon completion with a
+ // net::Error. The status will be net::OK on success, or net::FAILED if not
+ // all databases could be deleted. `callback` may be called before this method
+@@ -198,8 +192,6 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) DatabaseTracker
+ // Shutdown the database tracker, deleting database files if the tracker is
+ // used for an Incognito profile.
+ void Shutdown();
+- // Disables the exit-time deletion of session-only data.
+- void SetForceKeepSessionState();
+
+ protected:
+ // Subclasses need PassKeys to call the constructor.
+@@ -248,9 +240,6 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) DatabaseTracker
+ // exists.
+ void DeleteIncognitoDBDirectory();
+
+- // Deletes session-only databases. Blocks databases from being created/opened.
+- void ClearSessionOnlyOrigins();
+-
+ bool DeleteClosedDatabase(const std::string& origin_identifier,
+ const std::u16string& database_name);
+
+@@ -303,7 +292,6 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) DatabaseTracker
+
+ bool is_initialized_ = false;
+ const bool is_incognito_;
+- bool force_keep_session_state_ = false;
+ bool shutting_down_ = false;
+ const base::FilePath profile_path_;
+
+@@ -324,9 +312,6 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) DatabaseTracker
+ std::vector<std::pair<net::CompletionOnceCallback, DatabaseSet>>
+ deletion_callbacks_;
+
+- // Apps and Extensions can have special rights.
+- const scoped_refptr<SpecialStoragePolicy> special_storage_policy_;
+-
+ // Can be accessed from any thread via quota_manager_proxy().
+ //
+ // Thread-safety argument: The reference is immutable.
+From 3ef0cdbadfc403513047464d18e63fc952a43f7b Mon Sep 17 00:00:00 2001
+From: Shahbaz Youssefi <syoussefi@chromium.org>
+Date: Mon, 8 Apr 2024 10:14:45 -0400
+Subject: [PATCH] [Backport] CVE-2024-4058: Type Confusion in ANGLE
+
+Cherry-pick of patch originally reviewed on
+https://chromium-review.googlesource.com/c/angle/angle/+/5462388:
+SPIR-V: Fix const constructors with single scalar
+
+These constructors may be generated because of
+RemoveArrayLengthTraverser.
+
+Bug: chromium:332546345
+Change-Id: I2b2bf3728ef5bae148abc2a8518f8f3f42850025
+Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5462388
+(cherry picked from commit 0b776d32f69a932acb61963d9daad9e13f610944)
+Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5466390
+Commit-Queue: Zakhar Voit <voit@google.com>
+Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
+Reviewed-by: Geoff Lang <geofflang@chromium.org>
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/557315
+Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
+---
+ .../third_party/angle/src/compiler/translator/Compiler.cpp | 5 +++++
+ .../angle/src/compiler/translator/spirv/OutputSPIRV.cpp | 2 ++
+ 2 files changed, 7 insertions(+)
+
+diff --git a/chromium/third_party/angle/src/compiler/translator/Compiler.cpp b/chromium/third_party/angle/src/compiler/translator/Compiler.cpp
+index c70c419631a..c846c9b33fa 100644
+--- src/3rdparty/chromium/third_party/angle/src/compiler/translator/Compiler.cpp
++++ src/3rdparty/chromium/third_party/angle/src/compiler/translator/Compiler.cpp
+@@ -1034,6 +1034,11 @@ bool TCompiler::checkAndSimplifyAST(TIntermBlock *root,
+ {
+ return false;
+ }
++ // Fold the expressions again, because |RemoveArrayLengthMethod| can introduce new constants.
++ if (!FoldExpressions(this, root, &mDiagnostics))
++ {
++ return false;
++ }
+
+ if (!RemoveUnreferencedVariables(this, root, &mSymbolTable))
+ {
+diff --git a/chromium/third_party/angle/src/compiler/translator/spirv/OutputSPIRV.cpp b/chromium/third_party/angle/src/compiler/translator/spirv/OutputSPIRV.cpp
+index ed3aac4e432..4c3d1d000c6 100644
+--- src/3rdparty/chromium/third_party/angle/src/compiler/translator/spirv/OutputSPIRV.cpp
++++ src/3rdparty/chromium/third_party/angle/src/compiler/translator/spirv/OutputSPIRV.cpp
+@@ -1335,6 +1335,8 @@ spirv::IdRef OutputSPIRVTraverser::createComplexConstant(const TType &type,
+
+ if (type.isMatrix() && !type.isArray())
+ {
++ ASSERT(parameters.size() == type.getRows() * type.getCols());
++
+ // Matrices are constructed from their columns.
+ spirv::IdRefList columnIds;
+
+From b0ff4b16e877e3787a7200b71440c9f2be7fe1d7 Mon Sep 17 00:00:00 2001
+From: Antonio Maiorano <amaiorano@google.com>
+Date: Thu, 18 Apr 2024 13:07:04 -0400
+Subject: [PATCH] [Backport] CVE-2024-4060: Use after free in Dawn
+
+Cherry-pick of patch originally reviewed on
+https://chromium-review.googlesource.com/c/external/github.com/microsoft/DirectXShaderCompiler/+/5464347:
+Replace dynamic_cast with virtual call (#6515)
+
+Make TextDiagnosticPrinter::setPrefix a virtual function in base class
+DiagnosticConsumer. This allows us to avoid using dynamic_cast in
+BackendConsumer::DxilDiagHandler, required for codebases that do not
+enable RTTI. This is also the only place in the codebase that uses RTTI
+(AFAICT).
+
+Bug: chromium:333420620
+Change-Id: Ida73077f24fdb4b705b5d868b04ac6cfecb30327
+Reviewed-on: https://chromium-review.googlesource.com/c/external/github.com/microsoft/DirectXShaderCompiler/+/5464347
+Reviewed-by: dan sinclair <dsinclair@chromium.org>
+Reviewed-by: David Neto <dneto@google.com>
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/557316
+Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
+---
+ .../dxc/tools/clang/include/clang/Basic/Diagnostic.h | 2 ++
+ .../tools/clang/include/clang/Frontend/TextDiagnosticPrinter.h | 3 ++-
+ .../third_party/dxc/tools/clang/lib/CodeGen/CodeGenAction.cpp | 2 +-
+ 3 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/chromium/third_party/dawn/third_party/dxc/tools/clang/include/clang/Basic/Diagnostic.h b/chromium/third_party/dawn/third_party/dxc/tools/clang/include/clang/Basic/Diagnostic.h
+index cf56e3a7208..b6f804012c5 100644
+--- src/3rdparty/chromium/third_party/dawn/third_party/dxc/tools/clang/include/clang/Basic/Diagnostic.h
++++ src/3rdparty/chromium/third_party/dawn/third_party/dxc/tools/clang/include/clang/Basic/Diagnostic.h
+@@ -1395,6 +1395,8 @@ class DiagnosticConsumer {
+ /// warnings and errors.
+ virtual void HandleDiagnostic(DiagnosticsEngine::Level DiagLevel,
+ const Diagnostic &Info);
++
++ virtual void setPrefix(std::string Value) {} // HLSL Change
+ };
+
+ /// \brief A diagnostic client that ignores all diagnostics.
+diff --git a/chromium/third_party/dawn/third_party/dxc/tools/clang/include/clang/Frontend/TextDiagnosticPrinter.h b/chromium/third_party/dawn/third_party/dxc/tools/clang/include/clang/Frontend/TextDiagnosticPrinter.h
+index 04a570559fe..936031e0967 100644
+--- src/3rdparty/chromium/third_party/dawn/third_party/dxc/tools/clang/include/clang/Frontend/TextDiagnosticPrinter.h
++++ src/3rdparty/chromium/third_party/dawn/third_party/dxc/tools/clang/include/clang/Frontend/TextDiagnosticPrinter.h
+@@ -45,7 +45,8 @@ class TextDiagnosticPrinter : public DiagnosticConsumer {
+ /// setPrefix - Set the diagnostic printer prefix string, which will be
+ /// printed at the start of any diagnostics. If empty, no prefix string is
+ /// used.
+- void setPrefix(std::string Value) { Prefix = Value; }
++ // HLSL Change: add override
++ void setPrefix(std::string Value) override { Prefix = Value; }
+
+ void BeginSourceFile(const LangOptions &LO, const Preprocessor *PP) override;
+ void EndSourceFile() override;
+diff --git a/chromium/third_party/dawn/third_party/dxc/tools/clang/lib/CodeGen/CodeGenAction.cpp b/chromium/third_party/dawn/third_party/dxc/tools/clang/lib/CodeGen/CodeGenAction.cpp
+index 4fa721e8122..68ebaadf5a8 100644
+--- src/3rdparty/chromium/third_party/dawn/third_party/dxc/tools/clang/lib/CodeGen/CodeGenAction.cpp
++++ src/3rdparty/chromium/third_party/dawn/third_party/dxc/tools/clang/lib/CodeGen/CodeGenAction.cpp
+@@ -557,7 +557,7 @@ BackendConsumer::DxilDiagHandler(const llvm::DiagnosticInfoDxil &D) {
+
+ // If no location information is available, add function name
+ if (Loc.isInvalid()) {
+- auto *DiagClient = dynamic_cast<TextDiagnosticPrinter*>(Diags.getClient());
++ auto *DiagClient = Diags.getClient();
+ auto *func = D.getFunction();
+ if (DiagClient && func)
+ DiagClient->setPrefix("Function: " + func->getName().str());
+From b916ca00cc5222253ac5860c3e612ccf00d899c3 Mon Sep 17 00:00:00 2001
+From: Nina Satragno <nsatragno@chromium.org>
+Date: Mon, 8 Apr 2024 20:07:43 +0000
+Subject: [PATCH] [Backport] Security bug 332724843
+
+Partial manual backport of patch originally reviewed on
+https://chromium-review.googlesource.com/c/chromium/src/+/5426374:
+[webauthn] Don't keep network contexts around
+
+Instead of having fido code pass network contexts around, pass a factory
+and get a fresh one every time one is needed.
+
+Keep cable transact* methods that take a network context around until
+we clean up the android cable client module in a follow-up.
+
+Bug: 332724843
+Change-Id: I33ea5c741706041c75c10cf881452fcf77fce445
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5426374
+Reviewed-by: Adam Langley <agl@chromium.org>
+Commit-Queue: Nina Satragno <nsatragno@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#1284063}
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/557317
+Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
+---
+ chromium/device/fido/BUILD.gn | 1 +
+ .../device/fido/cable/fido_tunnel_device.cc | 9 +--
+ .../device/fido/cable/fido_tunnel_device.h | 5 +-
+ .../device/fido/cable/v2_authenticator.cc | 66 +++++++++++++++----
+ chromium/device/fido/cable/v2_authenticator.h | 28 +++++++-
+ chromium/device/fido/cable/v2_discovery.cc | 10 +--
+ chromium/device/fido/cable/v2_discovery.h | 5 +-
+ .../device/fido/fido_discovery_factory.cc | 7 +-
+ chromium/device/fido/fido_discovery_factory.h | 8 ++-
+ .../device/fido/network_context_factory.h | 20 ++++++
+ 10 files changed, 122 insertions(+), 37 deletions(-)
+ create mode 100644 chromium/device/fido/network_context_factory.h
+
+diff --git a/chromium/device/fido/BUILD.gn b/chromium/device/fido/BUILD.gn
+index 8e168df02ef..be11e40a4ce 100644
+--- src/3rdparty/chromium/device/fido/BUILD.gn
++++ src/3rdparty/chromium/device/fido/BUILD.gn
+@@ -42,6 +42,7 @@ component("fido") {
+ "fido_transport_protocol.h",
+ "json_request.cc",
+ "json_request.h",
++ "network_context_factory.h",
+ "opaque_attestation_statement.cc",
+ "opaque_attestation_statement.h",
+ "p256_public_key.cc",
+diff --git a/chromium/device/fido/cable/fido_tunnel_device.cc b/chromium/device/fido/cable/fido_tunnel_device.cc
+index ad35e6ee176..bd10a4793bb 100644
+--- src/3rdparty/chromium/device/fido/cable/fido_tunnel_device.cc
++++ src/3rdparty/chromium/device/fido/cable/fido_tunnel_device.cc
+@@ -17,6 +17,7 @@
+ #include "device/fido/features.h"
+ #include "device/fido/fido_constants.h"
+ #include "device/fido/fido_parsing_utils.h"
++#include "device/fido/network_context_factory.h"
+ #include "net/traffic_annotation/network_traffic_annotation.h"
+ #include "third_party/boringssl/src/include/openssl/aes.h"
+ #include "third_party/boringssl/src/include/openssl/digest.h"
+@@ -96,7 +97,7 @@ constexpr net::NetworkTrafficAnnotationTag kTrafficAnnotation =
+ })");
+
+ FidoTunnelDevice::FidoTunnelDevice(
+- network::mojom::NetworkContext* network_context,
++ NetworkContextFactory network_context_factory,
+ absl::optional<base::RepeatingCallback<void(std::unique_ptr<Pairing>)>>
+ pairing_callback,
+ absl::optional<base::RepeatingCallback<void(Event)>> event_callback,
+@@ -130,7 +131,7 @@ FidoTunnelDevice::FidoTunnelDevice(
+ base::BindOnce(&FidoTunnelDevice::OnTunnelReady, base::Unretained(this)),
+ base::BindRepeating(&FidoTunnelDevice::OnTunnelData,
+ base::Unretained(this)));
+- network_context->CreateWebSocket(
++ network_context_factory.Run()->CreateWebSocket(
+ url, {kCableWebSocketProtocol}, net::SiteForCookies(),
+ net::IsolationInfo(), /*additional_headers=*/{},
+ network::mojom::kBrowserProcessId, url::Origin::Create(url),
+@@ -145,7 +146,7 @@ FidoTunnelDevice::FidoTunnelDevice(
+
+ FidoTunnelDevice::FidoTunnelDevice(
+ FidoRequestType request_type,
+- network::mojom::NetworkContext* network_context,
++ NetworkContextFactory network_context_factory,
+ std::unique_ptr<Pairing> pairing,
+ base::OnceClosure pairing_is_invalid,
+ absl::optional<base::RepeatingCallback<void(Event)>> event_callback)
+@@ -187,7 +188,7 @@ FidoTunnelDevice::FidoTunnelDevice(
+ headers.emplace_back(
+ network::mojom::HttpHeader::New(kCableSignalConnectionHeader, "true"));
+ }
+- network_context->CreateWebSocket(
++ network_context_factory.Run()->CreateWebSocket(
+ url, {kCableWebSocketProtocol}, net::SiteForCookies(),
+ net::IsolationInfo(), std::move(headers),
+ network::mojom::kBrowserProcessId, url::Origin::Create(url),
+diff --git a/chromium/device/fido/cable/fido_tunnel_device.h b/chromium/device/fido/cable/fido_tunnel_device.h
+index 1d0a7cb3372..840ecc34232 100644
+--- src/3rdparty/chromium/device/fido/cable/fido_tunnel_device.h
++++ src/3rdparty/chromium/device/fido/cable/fido_tunnel_device.h
+@@ -17,6 +17,7 @@
+ #include "device/fido/cable/websocket_adapter.h"
+ #include "device/fido/fido_constants.h"
+ #include "device/fido/fido_device.h"
++#include "device/fido/network_context_factory.h"
+ #include "third_party/abseil-cpp/absl/types/variant.h"
+
+ namespace network::mojom {
+@@ -33,7 +34,7 @@ class COMPONENT_EXPORT(DEVICE_FIDO) FidoTunnelDevice : public FidoDevice {
+ public:
+ // This constructor is used for QR-initiated connections.
+ FidoTunnelDevice(
+- network::mojom::NetworkContext* network_context,
++ NetworkContextFactory network_context_factory,
+ absl::optional<base::RepeatingCallback<void(std::unique_ptr<Pairing>)>>
+ pairing_callback,
+ absl::optional<base::RepeatingCallback<void(Event)>> event_callback,
+@@ -47,7 +48,7 @@ class COMPONENT_EXPORT(DEVICE_FIDO) FidoTunnelDevice : public FidoDevice {
+ // run.
+ FidoTunnelDevice(
+ FidoRequestType request_type,
+- network::mojom::NetworkContext* network_context,
++ NetworkContextFactory network_context_factory,
+ std::unique_ptr<Pairing> pairing,
+ base::OnceClosure pairing_is_invalid,
+ absl::optional<base::RepeatingCallback<void(Event)>> event_callback);
+diff --git a/chromium/device/fido/cable/v2_authenticator.cc b/chromium/device/fido/cable/v2_authenticator.cc
+index e4bd3244cb3..faf8915ec10 100644
+--- src/3rdparty/chromium/device/fido/cable/v2_authenticator.cc
++++ src/3rdparty/chromium/device/fido/cable/v2_authenticator.cc
+@@ -23,6 +23,7 @@
+ #include "device/fido/features.h"
+ #include "device/fido/fido_constants.h"
+ #include "device/fido/fido_parsing_utils.h"
++#include "device/fido/network_context_factory.h"
+ #include "device/fido/public_key_credential_descriptor.h"
+ #include "device/fido/public_key_credential_params.h"
+ #include "device/fido/public_key_credential_rp_entity.h"
+@@ -289,7 +290,7 @@ class TunnelTransport : public Transport {
+ public:
+ TunnelTransport(
+ Platform* platform,
+- network::mojom::NetworkContext* network_context,
++ NetworkContextFactory network_context_factory,
+ base::span<const uint8_t> secret,
+ base::span<const uint8_t, device::kP256X962Length> peer_identity,
+ GeneratePairingDataCallback generate_pairing_data)
+@@ -302,7 +303,7 @@ class TunnelTransport : public Transport {
+ secret,
+ base::span<const uint8_t>(),
+ device::cablev2::DerivedValueType::kEIDKey)),
+- network_context_(network_context),
++ network_context_factory_(std::move(network_context_factory)),
+ peer_identity_(device::fido_parsing_utils::Materialize(peer_identity)),
+ generate_pairing_data_(std::move(generate_pairing_data)),
+ secret_(fido_parsing_utils::Materialize(secret)) {
+@@ -319,7 +320,7 @@ class TunnelTransport : public Transport {
+
+ TunnelTransport(
+ Platform* platform,
+- network::mojom::NetworkContext* network_context,
++ NetworkContextFactory network_context_factory,
+ base::span<const uint8_t> secret,
+ base::span<const uint8_t, device::cablev2::kClientNonceSize> client_nonce,
+ std::array<uint8_t, device::cablev2::kRoutingIdSize> routing_id,
+@@ -331,7 +332,7 @@ class TunnelTransport : public Transport {
+ secret,
+ client_nonce,
+ device::cablev2::DerivedValueType::kEIDKey)),
+- network_context_(network_context),
++ network_context_factory_(network_context_factory),
+ secret_(fido_parsing_utils::Materialize(secret)),
+ local_identity_(std::move(local_identity)) {
+ DCHECK_EQ(state_, State::kNone);
+@@ -390,7 +391,7 @@ class TunnelTransport : public Transport {
+ void StartWebSocket() {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+
+- network_context_->CreateWebSocket(
++ network_context_factory_.Run()->CreateWebSocket(
+ target_, {device::kCableWebSocketProtocol}, net::SiteForCookies(),
+ net::IsolationInfo(), /*additional_headers=*/{},
+ network::mojom::kBrowserProcessId, url::Origin::Create(target_),
+@@ -623,7 +624,7 @@ class TunnelTransport : public Transport {
+ const std::array<uint8_t, kEIDKeySize> eid_key_;
+ std::unique_ptr<WebSocketAdapter> websocket_client_;
+ std::unique_ptr<Crypter> crypter_;
+- const raw_ptr<network::mojom::NetworkContext> network_context_;
++ NetworkContextFactory network_context_factory_;
+ const absl::optional<std::array<uint8_t, kP256X962Length>> peer_identity_;
+ std::array<uint8_t, kPSKSize> psk_;
+ GeneratePairingDataCallback generate_pairing_data_;
+@@ -1238,7 +1239,7 @@ std::unique_ptr<Transaction> TransactWithPlaintextTransport(
+
+ std::unique_ptr<Transaction> TransactFromQRCode(
+ std::unique_ptr<Platform> platform,
+- network::mojom::NetworkContext* network_context,
++ NetworkContextFactory network_context_factory,
+ base::span<const uint8_t, kRootSecretSize> root_secret,
+ const std::string& authenticator_name,
+ base::span<const uint8_t, 16> qr_secret,
+@@ -1249,16 +1250,34 @@ std::unique_ptr<Transaction> TransactFromQRCode(
+
+ Platform* const platform_ptr = platform.get();
+ return std::make_unique<CTAP2Processor>(
+- std::make_unique<TunnelTransport>(platform_ptr, network_context,
+- qr_secret, peer_identity,
+- std::move(generate_pairing_data)),
++ std::make_unique<TunnelTransport>(
++ platform_ptr, std::move(network_context_factory), qr_secret,
++ peer_identity, std::move(generate_pairing_data)),
+ std::move(platform));
+ }
+
+-std::unique_ptr<Transaction> TransactFromFCM(
++std::unique_ptr<Transaction> TransactFromQRCodeDeprecated(
+ std::unique_ptr<Platform> platform,
+ network::mojom::NetworkContext* network_context,
+ base::span<const uint8_t, kRootSecretSize> root_secret,
++ const std::string& authenticator_name,
++ base::span<const uint8_t, 16> qr_secret,
++ base::span<const uint8_t, kP256X962Length> peer_identity,
++ std::optional<std::vector<uint8_t>> contact_id) {
++ NetworkContextFactory factory = base::BindRepeating(
++ [](network::mojom::NetworkContext* network_context) {
++ return network_context;
++ },
++ network_context);
++ return TransactFromQRCode(std::move(platform), std::move(factory),
++ root_secret, authenticator_name, qr_secret,
++ peer_identity, std::move(contact_id));
++}
++
++std::unique_ptr<Transaction> TransactFromFCM(
++ std::unique_ptr<Platform> platform,
++ NetworkContextFactory network_context_factory,
++ base::span<const uint8_t, kRootSecretSize> root_secret,
+ std::array<uint8_t, kRoutingIdSize> routing_id,
+ base::span<const uint8_t, kTunnelIdSize> tunnel_id,
+ base::span<const uint8_t, kPairingIDSize> pairing_id,
+@@ -1269,12 +1288,31 @@ std::unique_ptr<Transaction> TransactFromFCM(
+
+ Platform* const platform_ptr = platform.get();
+ return std::make_unique<CTAP2Processor>(
+- std::make_unique<TunnelTransport>(platform_ptr, network_context,
+- paired_secret, client_nonce, routing_id,
+- tunnel_id, IdentityKey(root_secret)),
++ std::make_unique<TunnelTransport>(
++ platform_ptr, std::move(network_context_factory), paired_secret,
++ client_nonce, routing_id, tunnel_id, IdentityKey(root_secret)),
+ std::move(platform));
+ }
+
++std::unique_ptr<Transaction> TransactFromFCMDeprecated(
++ std::unique_ptr<Platform> platform,
++ network::mojom::NetworkContext* network_context,
++ base::span<const uint8_t, kRootSecretSize> root_secret,
++ std::array<uint8_t, kRoutingIdSize> routing_id,
++ base::span<const uint8_t, kTunnelIdSize> tunnel_id,
++ base::span<const uint8_t, kPairingIDSize> pairing_id,
++ base::span<const uint8_t, kClientNonceSize> client_nonce,
++ std::optional<base::span<const uint8_t>> contact_id) {
++ NetworkContextFactory factory = base::BindRepeating(
++ [](network::mojom::NetworkContext* network_context) {
++ return network_context;
++ },
++ network_context);
++ return TransactFromFCM(std::move(platform), std::move(factory), root_secret,
++ std::move(routing_id), tunnel_id, pairing_id,
++ client_nonce, std::move(contact_id));
++}
++
+ } // namespace authenticator
+ } // namespace cablev2
+ } // namespace device
+diff --git a/chromium/device/fido/cable/v2_authenticator.h b/chromium/device/fido/cable/v2_authenticator.h
+index 0f55d7758ed..811e632e915 100644
+--- src/3rdparty/chromium/device/fido/cable/v2_authenticator.h
++++ src/3rdparty/chromium/device/fido/cable/v2_authenticator.h
+@@ -14,6 +14,7 @@
+ #include "base/functional/callback.h"
+ #include "device/fido/cable/v2_constants.h"
+ #include "device/fido/fido_constants.h"
++#include "device/fido/network_context_factory.h"
+ #include "services/network/public/mojom/network_context.mojom-forward.h"
+ #include "third_party/abseil-cpp/absl/types/optional.h"
+ #include "third_party/abseil-cpp/absl/types/variant.h"
+@@ -139,7 +140,7 @@ std::unique_ptr<Transaction> TransactWithPlaintextTransport(
+ // contents of a QR code.
+ std::unique_ptr<Transaction> TransactFromQRCode(
+ std::unique_ptr<Platform> platform,
+- network::mojom::NetworkContext* network_context,
++ NetworkContextFactory network_context_factory,
+ base::span<const uint8_t, kRootSecretSize> root_secret,
+ const std::string& authenticator_name,
+ // TODO: name this constant.
+@@ -147,11 +148,22 @@ std::unique_ptr<Transaction> TransactFromQRCode(
+ base::span<const uint8_t, kP256X962Length> peer_identity,
+ absl::optional<std::vector<uint8_t>> contact_id);
+
++// Deprecated, kept around while Android cable code is cleaned up. Use
++// TransactFromQRCode instead.
++std::unique_ptr<Transaction> TransactFromQRCodeDeprecated(
++ std::unique_ptr<Platform> platform,
++ network::mojom::NetworkContext* network_context,
++ base::span<const uint8_t, kRootSecretSize> root_secret,
++ const std::string& authenticator_name,
++ base::span<const uint8_t, 16> qr_secret,
++ base::span<const uint8_t, kP256X962Length> peer_identity,
++ std::optional<std::vector<uint8_t>> contact_id);
++
+ // TransactFromFCM starts a network-based transaction based on the decoded
+ // contents of a cloud message.
+ std::unique_ptr<Transaction> TransactFromFCM(
+ std::unique_ptr<Platform> platform,
+- network::mojom::NetworkContext* network_context,
++ NetworkContextFactory network_context_factory,
+ base::span<const uint8_t, kRootSecretSize> root_secret,
+ std::array<uint8_t, kRoutingIdSize> routing_id,
+ base::span<const uint8_t, kTunnelIdSize> tunnel_id,
+@@ -159,6 +171,18 @@ std::unique_ptr<Transaction> TransactFromFCM(
+ base::span<const uint8_t, kClientNonceSize> client_nonce,
+ absl::optional<base::span<const uint8_t>> contact_id);
+
++// Deprecated, kept around while Android cable code is cleaned up. Use
++// TransactFromFCM instead.
++std::unique_ptr<Transaction> TransactFromFCMDeprecated(
++ std::unique_ptr<Platform> platform,
++ network::mojom::NetworkContext* network_context,
++ base::span<const uint8_t, kRootSecretSize> root_secret,
++ std::array<uint8_t, kRoutingIdSize> routing_id,
++ base::span<const uint8_t, kTunnelIdSize> tunnel_id,
++ base::span<const uint8_t, kPairingIDSize> pairing_id,
++ base::span<const uint8_t, kClientNonceSize> client_nonce,
++ std::optional<base::span<const uint8_t>> contact_id);
++
+ } // namespace authenticator
+ } // namespace cablev2
+ } // namespace device
+diff --git a/chromium/device/fido/cable/v2_discovery.cc b/chromium/device/fido/cable/v2_discovery.cc
+index e6a8bb03557..c19ed148ee1 100644
+--- src/3rdparty/chromium/device/fido/cable/v2_discovery.cc
++++ src/3rdparty/chromium/device/fido/cable/v2_discovery.cc
+@@ -49,7 +49,7 @@ void RecordEvent(CableV2DiscoveryEvent event) {
+
+ Discovery::Discovery(
+ FidoRequestType request_type,
+- network::mojom::NetworkContext* network_context,
++ NetworkContextFactory network_context_factory,
+ absl::optional<base::span<const uint8_t, kQRKeySize>> qr_generator_key,
+ std::unique_ptr<AdvertEventStream> advert_stream,
+ std::unique_ptr<EventStream<std::unique_ptr<Pairing>>>
+@@ -62,7 +62,7 @@ Discovery::Discovery(
+ absl::optional<base::RepeatingCallback<void(Event)>> event_callback)
+ : FidoDeviceDiscovery(FidoTransportProtocol::kHybrid),
+ request_type_(request_type),
+- network_context_(network_context),
++ network_context_factory_(std::move(network_context_factory)),
+ qr_keys_(KeysFromQRGeneratorKey(qr_generator_key)),
+ extension_keys_(KeysFromExtension(extension_contents)),
+ advert_stream_(std::move(advert_stream)),
+@@ -161,7 +161,7 @@ void Discovery::OnBLEAdvertSeen(base::span<const uint8_t, kAdvertSize> advert) {
+ event_callback_->Run(Event::kBLEAdvertReceived);
+ }
+ AddDevice(std::make_unique<cablev2::FidoTunnelDevice>(
+- network_context_, pairing_callback_, event_callback_,
++ network_context_factory_, pairing_callback_, event_callback_,
+ qr_keys_->qr_secret, qr_keys_->local_identity_seed, *plaintext));
+ return;
+ }
+@@ -177,7 +177,7 @@ void Discovery::OnBLEAdvertSeen(base::span<const uint8_t, kAdvertSize> advert) {
+ RecordEvent(CableV2DiscoveryEvent::kExtensionMatch);
+ device_committed_ = true;
+ AddDevice(std::make_unique<cablev2::FidoTunnelDevice>(
+- network_context_, base::DoNothing(), event_callback_,
++ network_context_factory_, base::DoNothing(), event_callback_,
+ extension.qr_secret, extension.local_identity_seed, *plaintext));
+ return;
+ }
+@@ -190,7 +190,7 @@ void Discovery::OnBLEAdvertSeen(base::span<const uint8_t, kAdvertSize> advert) {
+ void Discovery::OnContactDevice(std::unique_ptr<Pairing> pairing) {
+ auto pairing_copy = std::make_unique<Pairing>(*pairing);
+ tunnels_pending_advert_.emplace_back(std::make_unique<FidoTunnelDevice>(
+- request_type_, network_context_, std::move(pairing),
++ request_type_, network_context_factory_, std::move(pairing),
+ base::BindOnce(&Discovery::PairingIsInvalid, weak_factory_.GetWeakPtr(),
+ std::move(pairing_copy)),
+ event_callback_));
+diff --git a/chromium/device/fido/cable/v2_discovery.h b/chromium/device/fido/cable/v2_discovery.h
+index c5aa2179d7b..44fc0180c58 100644
+--- src/3rdparty/chromium/device/fido/cable/v2_discovery.h
++++ src/3rdparty/chromium/device/fido/cable/v2_discovery.h
+@@ -19,6 +19,7 @@
+ #include "device/fido/cable/v2_constants.h"
+ #include "device/fido/fido_constants.h"
+ #include "device/fido/fido_device_discovery.h"
++#include "device/fido/network_context_factory.h"
+ #include "services/network/public/mojom/network_context.mojom-forward.h"
+ #include "third_party/abseil-cpp/absl/types/optional.h"
+
+@@ -36,7 +37,7 @@ class COMPONENT_EXPORT(DEVICE_FIDO) Discovery : public FidoDeviceDiscovery {
+
+ Discovery(
+ FidoRequestType request_type,
+- network::mojom::NetworkContext* network_context,
++ NetworkContextFactory network_context_factory,
+ absl::optional<base::span<const uint8_t, kQRKeySize>> qr_generator_key,
+ std::unique_ptr<AdvertEventStream> advert_stream,
+ // contact_device_stream contains a series of pairings indicating that the
+@@ -80,7 +81,7 @@ class COMPONENT_EXPORT(DEVICE_FIDO) Discovery : public FidoDeviceDiscovery {
+ const std::vector<CableDiscoveryData>& extension_contents);
+
+ const FidoRequestType request_type_;
+- const raw_ptr<network::mojom::NetworkContext> network_context_;
++ NetworkContextFactory network_context_factory_;
+ const absl::optional<UnpairedKeys> qr_keys_;
+ const std::vector<UnpairedKeys> extension_keys_;
+ std::unique_ptr<AdvertEventStream> advert_stream_;
+diff --git a/chromium/device/fido/fido_discovery_factory.cc b/chromium/device/fido/fido_discovery_factory.cc
+index 040aa19fbb4..2d6c85c7721 100644
+--- src/3rdparty/chromium/device/fido/fido_discovery_factory.cc
++++ src/3rdparty/chromium/device/fido/fido_discovery_factory.cc
+@@ -87,7 +87,7 @@ std::vector<std::unique_ptr<FidoDiscoveryBase>> FidoDiscoveryFactory::Create(
+ &CableDiscoveryData::version);
+ if (qr_generator_key_.has_value() || have_v2_discovery_data) {
+ ret.emplace_back(std::make_unique<cablev2::Discovery>(
+- request_type_.value(), network_context_, qr_generator_key_,
++ request_type_.value(), network_context_factory_, qr_generator_key_,
+ v1_discovery->GetV2AdvertStream(),
+ std::move(contact_device_stream_),
+ cable_data_.value_or(std::vector<CableDiscoveryData>()),
+@@ -148,11 +148,6 @@ void FidoDiscoveryFactory::set_android_accessory_params(
+ aoa_request_description_ = std::move(aoa_request_description);
+ }
+
+-void FidoDiscoveryFactory::set_network_context(
+- network::mojom::NetworkContext* network_context) {
+- network_context_ = network_context;
+-}
+-
+ void FidoDiscoveryFactory::set_cable_pairing_callback(
+ base::RepeatingCallback<void(std::unique_ptr<cablev2::Pairing>)> callback) {
+ cable_pairing_callback_ = std::move(callback);
+diff --git a/chromium/device/fido/fido_discovery_factory.h b/chromium/device/fido/fido_discovery_factory.h
+index ed2b51d86cc..9705d548c24 100644
+--- src/3rdparty/chromium/device/fido/fido_discovery_factory.h
++++ src/3rdparty/chromium/device/fido/fido_discovery_factory.h
+@@ -22,6 +22,7 @@
+ #include "device/fido/fido_request_handler_base.h"
+ #include "device/fido/fido_transport_protocol.h"
+ #include "device/fido/hid/fido_hid_discovery.h"
++#include "device/fido/network_context_factory.h"
+ #include "mojo/public/cpp/bindings/remote.h"
+ #include "services/device/public/mojom/usb_manager.mojom.h"
+ #include "services/network/public/mojom/network_context.mojom-forward.h"
+@@ -69,7 +70,10 @@ class COMPONENT_EXPORT(DEVICE_FIDO) FidoDiscoveryFactory {
+ mojo::Remote<device::mojom::UsbDeviceManager>,
+ std::string aoa_request_description);
+
+- void set_network_context(network::mojom::NetworkContext*);
++ void set_network_context_factory(
++ NetworkContextFactory network_context_factory) {
++ network_context_factory_ = std::move(network_context_factory);
++ }
+
+ // set_cable_pairing_callback installs a repeating callback that will be
+ // called when a QR handshake results in a phone wishing to pair with this
+@@ -167,7 +171,7 @@ class COMPONENT_EXPORT(DEVICE_FIDO) FidoDiscoveryFactory {
+ absl::optional<mojo::Remote<device::mojom::UsbDeviceManager>>
+ usb_device_manager_;
+ std::string aoa_request_description_;
+- raw_ptr<network::mojom::NetworkContext> network_context_ = nullptr;
++ NetworkContextFactory network_context_factory_;
+ absl::optional<std::vector<CableDiscoveryData>> cable_data_;
+ absl::optional<std::array<uint8_t, cablev2::kQRKeySize>> qr_generator_key_;
+ absl::optional<FidoRequestType> request_type_;
+diff --git a/chromium/device/fido/network_context_factory.h b/chromium/device/fido/network_context_factory.h
+new file mode 100644
+index 00000000000..802f45c4c45
+--- /dev/null
++++ src/3rdparty/chromium/device/fido/network_context_factory.h
+@@ -0,0 +1,20 @@
++// Copyright 2024 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef DEVICE_FIDO_NETWORK_CONTEXT_FACTORY_H_
++#define DEVICE_FIDO_NETWORK_CONTEXT_FACTORY_H_
++
++#include "base/functional/callback_forward.h"
++
++namespace network::mojom {
++class NetworkContext;
++} // namespace network::mojom
++
++namespace device {
++using NetworkContextFactory =
++ base::RepeatingCallback<network::mojom::NetworkContext*()>;
++} // namespace device
++
++#endif // DEVICE_FIDO_NETWORK_CONTEXT_FACTORY_H_
++
+From 533465116ce3b87ebd30d1b4de055daa413c1050 Mon Sep 17 00:00:00 2001
+From: Tommy Steimel <steimel@chromium.org>
+Date: Wed, 24 Apr 2024 09:18:49 +0000
+Subject: [PATCH] [Backport] CVE-2024-4331: Use after free in Picture In
+ Picture
+
+Cherry-pick of patch originally reviewed on
+https://chromium-review.googlesource.com/c/chromium/src/+/5477908:
+Don't assume the enter event window is a LocalDOMWindow
+
+This CL changes DocumentPictureInPictureEvent to store a DOMWindow
+instead of a LocalDOMWindow to prevent crashes when the window it gets
+is actually a RemoteDOMWindow.
+
+(cherry picked from commit 2314741cdf2c4a6e11234dda7006ec0dd9005bbb)
+
+Bug: 335003891
+Change-Id: I86a0ec5a89b51a26d5dd89559f86e6e4d6c3e8fe
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5467978
+Commit-Queue: Tommy Steimel <steimel@chromium.org>
+Cr-Original-Commit-Position: refs/heads/main@{#1290122}
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5477908
+Auto-Submit: Tommy Steimel <steimel@chromium.org>
+Commit-Queue: Frank Liberato <liberato@chromium.org>
+Cr-Commit-Position: refs/branch-heads/6367@{#974}
+Cr-Branched-From: d158c6dc6e3604e6f899041972edf26087a49740-refs/heads/main@{#1274542}
+(cherry picked from commit 98bcf9ef5cdd3a19f8b739f2cc6b2afdb01b7694)
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/560756
+Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
+---
+ .../document_picture_in_picture_event.cc | 9 ++++-----
+ .../document_picture_in_picture_event.h | 11 +++++------
+ 2 files changed, 9 insertions(+), 11 deletions(-)
+
+diff --git a/chromium/third_party/blink/renderer/modules/document_picture_in_picture/document_picture_in_picture_event.cc b/chromium/third_party/blink/renderer/modules/document_picture_in_picture/document_picture_in_picture_event.cc
+index 037813c62c2..572d0803c25 100644
+--- src/3rdparty/chromium/third_party/blink/renderer/modules/document_picture_in_picture/document_picture_in_picture_event.cc
++++ src/3rdparty/chromium/third_party/blink/renderer/modules/document_picture_in_picture/document_picture_in_picture_event.cc
+@@ -8,7 +8,7 @@ namespace blink {
+
+ DocumentPictureInPictureEvent* DocumentPictureInPictureEvent::Create(
+ const AtomicString& type,
+- LocalDOMWindow* document_picture_in_picture_window) {
++ DOMWindow* document_picture_in_picture_window) {
+ return MakeGarbageCollected<DocumentPictureInPictureEvent>(
+ type, document_picture_in_picture_window);
+ }
+@@ -19,13 +19,13 @@ DocumentPictureInPictureEvent* DocumentPictureInPictureEvent::Create(
+ return MakeGarbageCollected<DocumentPictureInPictureEvent>(type, initializer);
+ }
+
+-LocalDOMWindow* DocumentPictureInPictureEvent::window() const {
++DOMWindow* DocumentPictureInPictureEvent::window() const {
+ return document_picture_in_picture_window_.Get();
+ }
+
+ DocumentPictureInPictureEvent::DocumentPictureInPictureEvent(
+ AtomicString const& type,
+- LocalDOMWindow* document_picture_in_picture_window)
++ DOMWindow* document_picture_in_picture_window)
+ : Event(type, Bubbles::kYes, Cancelable::kNo),
+ document_picture_in_picture_window_(document_picture_in_picture_window) {}
+
+@@ -33,8 +33,7 @@ DocumentPictureInPictureEvent::DocumentPictureInPictureEvent(
+ AtomicString const& type,
+ const DocumentPictureInPictureEventInit* initializer)
+ : Event(type, initializer),
+- document_picture_in_picture_window_(
+- static_cast<LocalDOMWindow*>(initializer->window())) {}
++ document_picture_in_picture_window_(initializer->window()) {}
+
+ void DocumentPictureInPictureEvent::Trace(Visitor* visitor) const {
+ visitor->Trace(document_picture_in_picture_window_);
+diff --git a/chromium/third_party/blink/renderer/modules/document_picture_in_picture/document_picture_in_picture_event.h b/chromium/third_party/blink/renderer/modules/document_picture_in_picture/document_picture_in_picture_event.h
+index 7af20221469..59cd8cb7a2e 100644
+--- src/3rdparty/chromium/third_party/blink/renderer/modules/document_picture_in_picture/document_picture_in_picture_event.h
++++ src/3rdparty/chromium/third_party/blink/renderer/modules/document_picture_in_picture/document_picture_in_picture_event.h
+@@ -6,7 +6,7 @@
+ #define THIRD_PARTY_BLINK_RENDERER_MODULES_DOCUMENT_PICTURE_IN_PICTURE_DOCUMENT_PICTURE_IN_PICTURE_EVENT_H_
+
+ #include "third_party/blink/renderer/bindings/modules/v8/v8_document_picture_in_picture_event_init.h"
+-#include "third_party/blink/renderer/core/frame/local_dom_window.h"
++#include "third_party/blink/renderer/core/frame/dom_window.h"
+ #include "third_party/blink/renderer/modules/event_modules.h"
+ #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
+
+@@ -18,22 +18,21 @@ class MODULES_EXPORT DocumentPictureInPictureEvent final : public Event {
+ DEFINE_WRAPPERTYPEINFO();
+
+ public:
+- static DocumentPictureInPictureEvent* Create(const AtomicString&,
+- LocalDOMWindow*);
++ static DocumentPictureInPictureEvent* Create(const AtomicString&, DOMWindow*);
+ static DocumentPictureInPictureEvent* Create(
+ const AtomicString&,
+ const DocumentPictureInPictureEventInit*);
+
+- DocumentPictureInPictureEvent(AtomicString const&, LocalDOMWindow*);
++ DocumentPictureInPictureEvent(AtomicString const&, DOMWindow*);
+ DocumentPictureInPictureEvent(AtomicString const&,
+ const DocumentPictureInPictureEventInit*);
+
+- LocalDOMWindow* window() const;
++ DOMWindow* window() const;
+
+ void Trace(Visitor*) const override;
+
+ private:
+- Member<LocalDOMWindow> document_picture_in_picture_window_;
++ Member<DOMWindow> document_picture_in_picture_window_;
+ };
+
+ } // namespace blink
+From 8f952f1e9d4fbfcfa23f8970985214f473ebffed Mon Sep 17 00:00:00 2001
+From: Antonio Maiorano <amaiorano@google.com>
+Date: Thu, 25 Apr 2024 16:49:11 -0400
+Subject: [PATCH] [Backport] CVE-2024-4368: Use after free in Dawn
+
+Manual cherry-pick of patch originally reviewed on
+https://chromium-review.googlesource.com/c/external/github.com/microsoft/DirectXShaderCompiler/+/5490380:
+Fixed crash in loop unroll caused by bug in structurize loop exits (#6548)
+
+Fixed a bug in `hlsl::RemoveUnstructuredLoopExits` where when a new
+exiting block is created from splitting, it was added to the current
+loop being processed, when it could also part of an inner loop. Not
+adding the new block to inner loops that it's part of makes the inner
+loops malformed, and causes crash.
+
+This fix adds the new block to the inner most loop that it should be
+part of. Also adds the `StructurizeLoopExits` option to `loop-unroll`
+pass, which was missing before.
+
+Bug: chromium:333508731
+Change-Id: I7efc21bc61aeb81b4906a600c35272af232710ea
+Reviewed-on: https://chromium-review.googlesource.com/c/external/github.com/microsoft/DirectXShaderCompiler/+/5490380
+Reviewed-by: James Price <jrprice@google.com>
+Reviewed-by: Ben Clayton <bclayton@chromium.org>
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/560757
+Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
+---
+ .../Scalar/DxilRemoveUnstructuredLoopExits.cpp | 7 ++++++-
+ .../dxc/lib/Transforms/Scalar/LoopUnrollPass.cpp | 12 ++++++++++++
+ .../dawn/third_party/dxc/utils/hct/hctdb.py | 3 ++-
+ 3 files changed, 20 insertions(+), 2 deletions(-)
+
+diff --git a/chromium/third_party/dawn/third_party/dxc/lib/Transforms/Scalar/DxilRemoveUnstructuredLoopExits.cpp b/chromium/third_party/dawn/third_party/dxc/lib/Transforms/Scalar/DxilRemoveUnstructuredLoopExits.cpp
+index 1278b1cac0a..a68a4dd7c56 100644
+--- src/3rdparty/chromium/third_party/dawn/third_party/dxc/lib/Transforms/Scalar/DxilRemoveUnstructuredLoopExits.cpp
++++ src/3rdparty/chromium/third_party/dawn/third_party/dxc/lib/Transforms/Scalar/DxilRemoveUnstructuredLoopExits.cpp
+@@ -430,7 +430,12 @@ static bool RemoveUnstructuredLoopExitsIteration(BasicBlock *exiting_block, Loop
+ BasicBlock *new_not_exiting_block = new_exiting_block->splitBasicBlock(new_exiting_block->getFirstNonPHI());
+ new_exiting_block->setName("dx.struct_exit.new_exiting");
+ new_not_exiting_block->setName(old_name);
+- L->addBasicBlockToLoop(new_not_exiting_block, *LI);
++ // Query for new_exiting_block's own loop to add new_not_exiting_block to.
++ // It's possible that new_exiting_block is part of another inner loop
++ // separate from L. If added directly to L, the inner loop(s) will not
++ // contain new_not_exiting_block, making them malformed.
++ Loop *inner_loop_of_exiting_block = LI->getLoopFor(new_exiting_block);
++ inner_loop_of_exiting_block->addBasicBlockToLoop(new_not_exiting_block, *LI);
+
+ // Branch to latch_exit
+ new_exiting_block->getTerminator()->eraseFromParent();
+diff --git a/chromium/third_party/dawn/third_party/dxc/lib/Transforms/Scalar/LoopUnrollPass.cpp b/chromium/third_party/dawn/third_party/dxc/lib/Transforms/Scalar/LoopUnrollPass.cpp
+index dd520f7e57d..b17a5a4a0bc 100644
+--- src/3rdparty/chromium/third_party/dawn/third_party/dxc/lib/Transforms/Scalar/LoopUnrollPass.cpp
++++ src/3rdparty/chromium/third_party/dawn/third_party/dxc/lib/Transforms/Scalar/LoopUnrollPass.cpp
+@@ -155,6 +155,18 @@ namespace {
+ bool UserAllowPartial;
+ bool UserRuntime;
+
++ // HLSL Change - begin
++ // Function overrides that resolve options when used for DxOpt
++ void applyOptions(PassOptions O) override {
++ GetPassOptionBool(O, "StructurizeLoopExits", &StructurizeLoopExits,
++ false);
++ }
++ void dumpConfig(raw_ostream &OS) override {
++ LoopPass::dumpConfig(OS);
++ OS << ",StructurizeLoopExits=" << StructurizeLoopExits;
++ }
++ // HLSL Change - end
++
+ bool runOnLoop(Loop *L, LPPassManager &LPM) override;
+
+ /// This transformation requires natural loop information & requires that
+diff --git a/chromium/third_party/dawn/third_party/dxc/utils/hct/hctdb.py b/chromium/third_party/dawn/third_party/dxc/utils/hct/hctdb.py
+index dcb1923fafe..96da518d1ac 100644
+--- src/3rdparty/chromium/third_party/dawn/third_party/dxc/utils/hct/hctdb.py
++++ src/3rdparty/chromium/third_party/dawn/third_party/dxc/utils/hct/hctdb.py
+@@ -2270,7 +2270,8 @@ def add_pass(name, type_name, doc, opts):
+ {'n':'unroll-count', 'i':'UnrollCount', 't':'unsigned', 'd':'Use this unroll count for all loops including those with unroll_count pragma values, for testing purposes'},
+ {'n':'unroll-allow-partial', 'i':'UnrollAllowPartial', 't':'bool', 'd':'Allows loops to be partially unrolled until -unroll-threshold loop size is reached.'},
+ {'n':'unroll-runtime', 'i':'UnrollRuntime', 't':'bool', 'd':'Unroll loops with run-time trip counts'},
+- {'n':'pragma-unroll-threshold', 'i':'PragmaUnrollThreshold', 't':'unsigned', 'd':'Unrolled size limit for loops with an unroll(full) or unroll_count pragma.'}])
++ {'n':'pragma-unroll-threshold', 'i':'PragmaUnrollThreshold', 't':'unsigned', 'd':'Unrolled size limit for loops with an unroll(full) or unroll_count pragma.'},
++ {'n': 'StructurizeLoopExits', 't': 'bool', 'c': 1, 'd': 'Whether the unroller should try to structurize loop exits first.'}])
+ add_pass('mldst-motion', 'MergedLoadStoreMotion', 'MergedLoadStoreMotion', [])
+ add_pass('gvn', 'GVN', 'Global Value Numbering', [
+ {'n':'noloads', 't':'bool', 'c':1},
+From 453dc7630d1e8457a97a7cbc70b8990afd5bf5e4 Mon Sep 17 00:00:00 2001
+From: Ken Rockot <rockot@google.com>
+Date: Wed, 8 May 2024 15:32:48 +0000
+Subject: [PATCH] [Backport] CVE-2024-4671: Use after free in Visuals
+
+Cherry-pick of patch originally reviewed on
+https://chromium-review.googlesource.com/c/chromium/src/+/5523748:
+Viz: Tolerate SinkGroup destruction during submit
+
+Fixed: 339266700
+Change-Id: I8c0ea8c540948016346b00db64fe33260d2446f0
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5523748
+Reviewed-by: Kyle Charbonneau <kylechar@chromium.org>
+Reviewed-by: Jonathan Ross <jonross@chromium.org>
+Commit-Queue: Ken Rockot <rockot@google.com>
+Cr-Commit-Position: refs/heads/main@{#1298119}
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/560758
+Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
+---
+ .../frame_sinks/frame_sink_bundle_impl.cc | 30 ++++++++++++++-----
+ 1 file changed, 22 insertions(+), 8 deletions(-)
+
+diff --git a/chromium/components/viz/service/frame_sinks/frame_sink_bundle_impl.cc b/chromium/components/viz/service/frame_sinks/frame_sink_bundle_impl.cc
+index e339c23f9cd..2ae2dfe1a8b 100644
+--- src/3rdparty/chromium/components/viz/service/frame_sinks/frame_sink_bundle_impl.cc
++++ src/3rdparty/chromium/components/viz/service/frame_sinks/frame_sink_bundle_impl.cc
+@@ -4,12 +4,15 @@
+
+ #include "components/viz/service/frame_sinks/frame_sink_bundle_impl.h"
+
++#include <map>
+ #include <utility>
+ #include <vector>
+
+ #include "base/check.h"
+ #include "base/functional/bind.h"
++#include "base/memory/raw_ptr.h"
+ #include "base/memory/raw_ref.h"
++#include "base/memory/weak_ptr.h"
+ #include "build/build_config.h"
+ #include "components/viz/service/frame_sinks/compositor_frame_sink_impl.h"
+ #include "components/viz/service/frame_sinks/frame_sink_manager_impl.h"
+@@ -45,6 +48,10 @@ class FrameSinkBundleImpl::SinkGroup : public BeginFrameObserver {
+
+ bool IsEmpty() const { return frame_sinks_.empty(); }
+
++ base::WeakPtr<SinkGroup> GetWeakPtr() {
++ return weak_ptr_factory_.GetWeakPtr();
++ }
++
+ void AddFrameSink(uint32_t sink_id) {
+ frame_sinks_.insert(sink_id);
+
+@@ -206,6 +213,8 @@ class FrameSinkBundleImpl::SinkGroup : public BeginFrameObserver {
+ std::set<uint32_t> unacked_submissions_;
+
+ BeginFrameArgs last_used_begin_frame_args_;
++
++ base::WeakPtrFactory<SinkGroup> weak_ptr_factory_{this};
+ };
+
+ FrameSinkBundleImpl::FrameSinkBundleImpl(
+@@ -276,8 +285,9 @@ void FrameSinkBundleImpl::SetNeedsBeginFrame(uint32_t sink_id,
+
+ void FrameSinkBundleImpl::Submit(
+ std::vector<mojom::BundledFrameSubmissionPtr> submissions) {
+- std::set<SinkGroup*> groups;
+- std::set<SinkGroup*> affected_groups;
++ std::map<raw_ptr<SinkGroup>, base::WeakPtr<SinkGroup>> groups;
++ std::map<raw_ptr<SinkGroup>, base::WeakPtr<SinkGroup>> affected_groups;
++
+ // Count the frame submissions before processing anything. This ensures that
+ // any frames submitted here will be acked together in a batch, and not acked
+ // individually in case they happen to ack synchronously within
+@@ -288,10 +298,10 @@ void FrameSinkBundleImpl::Submit(
+ // through to the client without batching.
+ for (auto& submission : submissions) {
+ if (auto* group = GetSinkGroup(submission->sink_id)) {
+- groups.insert(group);
++ groups.emplace(group, group->GetWeakPtr());
+ if (submission->data->is_frame()) {
+ group->WillSubmitFrame(submission->sink_id);
+- affected_groups.insert(group);
++ affected_groups.emplace(group, group->GetWeakPtr());
+ }
+ }
+ }
+@@ -321,12 +331,16 @@ void FrameSinkBundleImpl::Submit(
+ }
+ }
+
+- for (auto* group : groups) {
+- group->DidFinishFrame();
++ for (const auto& [unsafe_group, weak_group] : groups) {
++ if (weak_group) {
++ weak_group->DidFinishFrame();
++ }
+ }
+
+- for (auto* group : affected_groups) {
+- group->FlushMessages();
++ for (const auto& [unsafe_group, weak_group] : affected_groups) {
++ if (weak_group) {
++ weak_group->FlushMessages();
++ }
+ }
+ }
+
+From 09a04a46a47e57bc423cc37fb95bc66041936940 Mon Sep 17 00:00:00 2001
+From: Shu-yu Guo <syg@chromium.org>
+Date: Thu, 9 May 2024 12:03:28 -0700
+Subject: [PATCH] [Backport] Security bug 339458194
+
+Cherry-pick of patch originally reviewed on
+https://chromium-review.googlesource.com/c/v8/v8/+/5527397
+Only normalize JSObject targets in SetOrCopyDataProperties
+
+Bug: b/339458194
+Change-Id: I4d6eebdd921971fa28d7c474535d978900ba633f
+Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5527397
+Commit-Queue: Shu-yu Guo <syg@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#93811}
+(cherry picked from commit f320600cd1f48ba6bb57c0395823fe0c5e5ec52e)
+Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/560760
+Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
+---
+ chromium/v8/src/objects/js-objects.cc | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/chromium/v8/src/objects/js-objects.cc b/chromium/v8/src/objects/js-objects.cc
+index 6094323ee09..9d104492603 100644
+--- src/3rdparty/chromium/v8/src/objects/js-objects.cc
++++ src/3rdparty/chromium/v8/src/objects/js-objects.cc
+@@ -429,9 +429,7 @@ Maybe<bool> JSReceiver::SetOrCopyDataProperties(
+ Nothing<bool>());
+
+ if (!from->HasFastProperties() && target->HasFastProperties() &&
+- !IsJSGlobalProxy(*target)) {
+- // JSProxy is always in slow-mode.
+- DCHECK(!IsJSProxy(*target));
++ IsJSObject(*target) && !IsJSGlobalProxy(*target)) {
+ // Convert to slow properties if we're guaranteed to overflow the number of
+ // descriptors.
+ int source_length;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_BUILD.gn
index f22c3b6676f2..0f0336991402 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_BUILD.gn
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/BUILD.gn.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/BUILD.gn.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/BUILD.gn
-@@ -61,7 +61,7 @@ declare_args() {
+@@ -62,7 +62,7 @@ declare_args() {
qtwebengine_target = "//tools/gn"
}
@@ -9,25 +9,58 @@
# An official (maximally optimized!) component (optimized for build times)
# build doesn't make sense and usually doesn't work.
assert(!is_component_build)
-@@ -428,7 +428,7 @@ if (!is_qtwebengine){
+@@ -96,7 +96,6 @@ group("gn_all") {
+ "//codelabs",
+ "//components:components_unittests",
+ "//components/gwp_asan:gwp_asan_unittests",
+- "//infra/orchestrator:orchestrator_all",
+ "//net:net_unittests",
+ "//sandbox:sandbox_unittests",
+ "//services:services_unittests",
+@@ -418,7 +417,7 @@ group("gn_all") {
+ }
+ }
+
+- if (is_linux || is_chromeos || is_android) {
++ if ((is_linux && !is_bsd) || is_chromeos || is_android) {
+ deps += [
+ "//third_party/breakpad:breakpad_unittests",
+ "//third_party/breakpad:core-2-minidump",
+@@ -618,6 +617,15 @@ group("gn_all") {
+ }
+ }
+
++ if (is_bsd) {
++ deps -= [
++ "//third_party/breakpad:dump_syms($host_toolchain)",
++ "//third_party/breakpad:microdump_stackwalk($host_toolchain)",
++ "//third_party/breakpad:minidump_dump($host_toolchain)",
++ "//third_party/breakpad:minidump_stackwalk($host_toolchain)",
++ ]
++ }
++
+ if (is_mac) {
+ deps += [
+ "//third_party/breakpad:dump_syms",
+@@ -667,7 +675,7 @@ group("gn_all") {
+ host_os == "win") {
+ deps += [ "//chrome/test/mini_installer:mini_installer_tests" ]
+ }
+- } else if (!is_android && !is_ios && !is_fuchsia) {
++ } else if (!is_android && !is_ios && !is_fuchsia && !is_bsd) {
+ deps += [ "//third_party/breakpad:symupload($host_toolchain)" ]
}
- }
-- if (is_linux || is_chromeos || is_android) {
-+ if ((is_linux && !is_bsd) || is_chromeos || is_android) {
- deps += [
- "//third_party/breakpad:breakpad_unittests",
- "//third_party/breakpad:core-2-minidump",
-@@ -1098,7 +1098,7 @@ if (!is_ios && !is_qtwebengine) {
+@@ -1095,7 +1103,7 @@ if (use_blink && !is_cronet_build) {
]
}
- if (!is_chromeos_ash && !is_ios && !is_fuchsia && !is_android && !is_castos) {
+ if (!is_chromeos_ash && !is_ios && !is_fuchsia && !is_android && !is_castos && !is_bsd) {
- # WPT Webdriver tests runner
- # chrome/test/chromedriver/test/run_webdriver_tests.py
script_test("webdriver_wpt_tests") {
-@@ -1198,7 +1198,7 @@ if (!is_ios && !is_qtwebengine) {
+ script = "//third_party/blink/tools/run_wpt_tests.py"
+ args = [
+@@ -1185,7 +1193,7 @@ if (use_blink && !is_cronet_build) {
data_deps += [ "//content/web_test:web_test_common_mojom_js_data_deps" ]
}
@@ -36,7 +69,7 @@
data_deps +=
[ "//third_party/breakpad:minidump_stackwalk($host_toolchain)" ]
}
-@@ -1207,7 +1207,7 @@ if (!is_ios && !is_qtwebengine) {
+@@ -1194,7 +1202,7 @@ if (use_blink && !is_cronet_build) {
data_deps += [ "//third_party/breakpad:dump_syms($host_toolchain)" ]
}
@@ -45,7 +78,7 @@
data_deps += [ "//third_party/breakpad:dump_syms($host_toolchain)" ]
}
-@@ -1675,7 +1675,7 @@ group("chromium_builder_perf") {
+@@ -1654,7 +1662,7 @@ group("chromium_builder_perf") {
data_deps += [ "//chrome/test:performance_browser_tests" ]
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_BUILD.gn
index 9c2a0f9c2332..07baa903ce0a 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_BUILD.gn
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/base/BUILD.gn.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/base/BUILD.gn.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/base/BUILD.gn
-@@ -189,7 +189,7 @@ buildflag_header("ios_cronet_buildflags") {
+@@ -199,7 +199,7 @@ buildflag_header("ios_cronet_buildflags") {
flags = [ "CRONET_BUILD=$is_cronet_build" ]
}
@@ -9,24 +9,32 @@
buildflag_header("message_pump_buildflags") {
header = "message_pump_buildflags.h"
header_dir = "base/message_loop"
-@@ -1009,7 +1009,6 @@ jumbo_component("base") {
- "threading/thread_type_delegate.cc",
- "threading/thread_type_delegate.h",
- ]
-- jumbo_excluded_sources += [ "process/memory_linux.cc" ]
+@@ -1117,11 +1117,23 @@ jumbo_component("base") {
+ # Needed for <atomic> if using newer C++ library than sysroot, except if
+ # building inside the cros_sdk environment - use host_toolchain as a
+ # more robust check for this.
+- if (!use_sysroot && (is_android || is_chromeos || (is_linux && !is_castos)) &&
++ if (!use_sysroot && (is_android || is_chromeos || (is_linux && !is_castos && !is_bsd)) &&
+ host_toolchain != "//build/toolchain/cros:host") {
+ libs += [ "atomic" ]
}
- if (is_linux || is_chromeos || is_android || is_fuchsia) {
-@@ -1132,7 +1131,7 @@ jumbo_component("base") {
- ]
- configs += [ "//base/allocator:mac_no_default_new_delete_symbols" ]
- }
-- if (is_chromeos || is_linux) {
-+ if (is_chromeos || (is_linux && !is_bsd)) {
- sources += [
- "allocator/partition_allocator/shim/allocator_shim_override_cpp_symbols.h",
- "allocator/partition_allocator/shim/allocator_shim_override_glibc_weak_symbols.h",
-@@ -1173,7 +1172,7 @@ jumbo_component("base") {
++ # *BSD needs libkvm
++ if (is_bsd) {
++ libs += [ "kvm" ]
++ }
++
++ if (is_freebsd) {
++ libs += [
++ "execinfo",
++ "util",
++ ]
++ }
++
+ if (use_allocator_shim) {
+ if (is_apple) {
+ sources += [ "allocator/early_zone_registration_apple.h" ]
+@@ -1141,7 +1153,7 @@ jumbo_component("base") {
# Allow more direct string conversions on platforms with native utf8
# strings
@@ -35,7 +43,30 @@
defines += [ "SYSTEM_NATIVE_UTF8" ]
}
-@@ -2119,6 +2118,43 @@ jumbo_component("base") {
+@@ -2091,6 +2103,22 @@ jumbo_component("base") {
+ ]
+ }
+
++ if (is_openbsd) {
++ sources += [
++ "process/process_handle_openbsd.cc",
++ "process/process_iterator_openbsd.cc",
++ "process/process_metrics_openbsd.cc",
++ "system/sys_info_openbsd.cc",
++ ]
++ } else if (is_freebsd) {
++ sources += [
++ "process/process_handle_freebsd.cc",
++ "process/process_iterator_freebsd.cc",
++ "process/process_metrics_freebsd.cc",
++ "system/sys_info_freebsd.cc",
++ ]
++ }
++
+ # iOS
+ if (is_ios) {
+ sources += [
+@@ -2223,6 +2251,29 @@ jumbo_component("base") {
}
}
@@ -43,43 +74,29 @@
+ sources -= [
+ "files/file_path_watcher_inotify.cc",
+ "files/scoped_file_linux.cc",
-+ "process/process_linux.cc",
+ "system/sys_info_linux.cc",
+ "process/process_iterator_linux.cc",
++ "process/process_linux.cc",
+ "process/process_metrics_linux.cc",
+ "process/process_handle_linux.cc",
+ "profiler/stack_copier_signal.cc",
+ "profiler/stack_copier_signal.h",
+ "profiler/thread_delegate_posix.cc",
+ "profiler/thread_delegate_posix.h",
++ "threading/platform_thread_linux.cc",
+ ]
+ sources += [
+ "files/file_path_watcher_kqueue.cc",
+ "files/file_path_watcher_kqueue.h",
+ "files/file_path_watcher_bsd.cc",
++ "threading/platform_thread_bsd.cc",
+ ]
+ }
+
-+ if (is_openbsd) {
-+ sources += [
-+ "process/process_handle_openbsd.cc",
-+ "process/process_iterator_openbsd.cc",
-+ "process/process_metrics_openbsd.cc",
-+ "system/sys_info_openbsd.cc",
-+ ]
-+ } else if (is_freebsd) {
-+ sources += [
-+ "process/process_handle_freebsd.cc",
-+ "process/process_iterator_freebsd.cc",
-+ "process/process_metrics_freebsd.cc",
-+ "system/sys_info_freebsd.cc",
-+ ]
-+ }
-+
- # iOS
- if (is_ios) {
+ if (use_blink) {
sources += [
-@@ -2214,7 +2250,7 @@ jumbo_component("base") {
+ "files/file_path_watcher.cc",
+@@ -2233,7 +2284,7 @@ jumbo_component("base") {
}
if (dep_libevent) {
@@ -88,7 +105,7 @@
}
if (use_libevent) {
-@@ -3482,7 +3518,7 @@ test("base_unittests") {
+@@ -3607,7 +3658,7 @@ test("base_unittests") {
]
}
@@ -97,7 +114,7 @@
sources += [
"debug/proc_maps_linux_unittest.cc",
"files/scoped_file_linux_unittest.cc",
-@@ -3531,7 +3567,7 @@ test("base_unittests") {
+@@ -3628,7 +3679,7 @@ test("base_unittests") {
"posix/file_descriptor_shuffle_unittest.cc",
"posix/unix_domain_socket_unittest.cc",
]
@@ -106,7 +123,7 @@
sources += [
"profiler/stack_base_address_posix_unittest.cc",
"profiler/stack_copier_signal_unittest.cc",
-@@ -3542,7 +3578,7 @@ test("base_unittests") {
+@@ -3639,7 +3690,7 @@ test("base_unittests") {
# Allow more direct string conversions on platforms with native utf8
# strings
@@ -115,7 +132,7 @@
defines += [ "SYSTEM_NATIVE_UTF8" ]
}
-@@ -3763,7 +3799,7 @@ test("base_unittests") {
+@@ -3895,7 +3946,7 @@ test("base_unittests") {
}
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_dispatcher_tls.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_dispatcher_tls.h
index e0f121f10163..e31181bb5508 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_dispatcher_tls.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_dispatcher_tls.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/base/allocator/dispatcher/tls.h.orig 2023-02-08 09:03:45 UTC
+--- src/3rdparty/chromium/base/allocator/dispatcher/tls.h.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/base/allocator/dispatcher/tls.h
-@@ -51,7 +51,7 @@ struct BASE_EXPORT MMapAllocator {
+@@ -50,7 +50,7 @@ struct BASE_EXPORT MMapAllocator {
partition_alloc::PartitionPageSize();
#elif BUILDFLAG(IS_APPLE)
constexpr static size_t AllocationChunkSize = 16384;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_BUILD.gn
new file mode 100644
index 000000000000..16dc80d6f2e1
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_BUILD.gn
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/base/allocator/partition_allocator/BUILD.gn.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/base/allocator/partition_allocator/BUILD.gn
+@@ -562,7 +562,7 @@ source_set("allocator_shim") {
+ ]
+ configs += [ ":mac_no_default_new_delete_symbols" ]
+ }
+- if (is_chromeos || is_linux) {
++ if ((is_chromeos || is_linux) && !is_bsd) {
+ sources += [
+ "shim/allocator_shim_override_cpp_symbols.h",
+ "shim/allocator_shim_override_glibc_weak_symbols.h",
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_address__space__randomization.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_address__space__randomization.h
index 0b96554c9d5b..c48328b2fae5 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_address__space__randomization.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_address__space__randomization.h
@@ -1,11 +1,11 @@
---- src/3rdparty/chromium/base/allocator/partition_allocator/address_space_randomization.h.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/base/allocator/partition_allocator/address_space_randomization.h.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/base/allocator/partition_allocator/address_space_randomization.h
@@ -38,7 +38,7 @@ AslrMask(uintptr_t bits) {
#if defined(ARCH_CPU_64_BITS)
- #if defined(MEMORY_TOOL_REPLACES_ALLOCATOR)
-+ #if defined(MEMORY_TOOL_REPLACES_ALLOCATOR) && !defined(OS_BSD)
++ #if defined(MEMORY_TOOL_REPLACES_ALLOCATOR) && !BUILDFLAG(IS_BSD)
// We shouldn't allocate system pages at all for sanitizer builds. However,
// we do, and if random hint addresses interfere with address ranges
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_page__allocator.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_page__allocator.h
index 8c4250d7d91e..3eb4f28da567 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_page__allocator.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_page__allocator.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/base/allocator/partition_allocator/page_allocator.h.orig 2022-11-30 08:12:58 UTC
+--- src/3rdparty/chromium/base/allocator/partition_allocator/page_allocator.h.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/base/allocator/partition_allocator/page_allocator.h
-@@ -231,7 +231,7 @@ void DecommitAndZeroSystemPages(void* address, size_t
+@@ -258,7 +258,7 @@ void DecommitAndZeroSystemPages(void* address,
// recommitted. Do not assume that this will not change over time.
constexpr PA_COMPONENT_EXPORT(
PARTITION_ALLOC) bool DecommittedMemoryIsAlwaysZeroed() {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_page__allocator__constants.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_page__allocator__constants.h
index 925000cf8eef..272faad2da2b 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_page__allocator__constants.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_page__allocator__constants.h
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/base/allocator/partition_allocator/page_allocator_constants.h.orig 2022-09-24 10:57:32 UTC
+--- src/3rdparty/chromium/base/allocator/partition_allocator/page_allocator_constants.h.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/base/allocator/partition_allocator/page_allocator_constants.h
@@ -25,7 +25,7 @@
// elimination.
@@ -9,7 +9,7 @@
// This should work for all POSIX (if needed), but currently all other
// supported OS/architecture combinations use either hard-coded values
// (such as x86) or have means to determine these values without needing
-@@ -81,7 +81,7 @@ PageAllocationGranularityShift() {
+@@ -92,7 +92,7 @@ PageAllocationGranularityShift() {
return 14; // 16kB
#elif BUILDFLAG(IS_APPLE) && defined(ARCH_CPU_64_BITS)
return static_cast<size_t>(vm_page_shift);
@@ -18,7 +18,7 @@
// arm64 supports 4kb (shift = 12), 16kb (shift = 14), and 64kb (shift = 16)
// page sizes. Retrieve from or initialize cache.
size_t shift = page_characteristics.shift.load(std::memory_order_relaxed);
-@@ -102,7 +102,7 @@ PageAllocationGranularity() {
+@@ -113,7 +113,7 @@ PageAllocationGranularity() {
// This is literally equivalent to |1 << PageAllocationGranularityShift()|
// below, but was separated out for IS_APPLE to avoid << on a non-constexpr.
return vm_page_size;
@@ -27,8 +27,8 @@
// arm64 supports 4kb, 16kb, and 64kb page sizes. Retrieve from or
// initialize cache.
size_t size = page_characteristics.size.load(std::memory_order_relaxed);
-@@ -141,7 +141,7 @@ SystemPageShift() {
- PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR PA_ALWAYS_INLINE size_t
+@@ -152,7 +152,7 @@ SystemPageShift() {
+ PA_ALWAYS_INLINE PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR size_t
SystemPageSize() {
#if (BUILDFLAG(IS_APPLE) && defined(ARCH_CPU_64_BITS)) || \
- (BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_ARM64))
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_page__allocator__internals__posix.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_page__allocator__internals__posix.h
index 734969897517..b0e1fabca7e2 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_page__allocator__internals__posix.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_page__allocator__internals__posix.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/base/allocator/partition_allocator/page_allocator_internals_posix.h.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/base/allocator/partition_allocator/page_allocator_internals_posix.h.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/base/allocator/partition_allocator/page_allocator_internals_posix.h
-@@ -380,8 +380,12 @@ bool TryRecommitSystemPagesInternal(
+@@ -403,8 +403,12 @@ bool TryRecommitSystemPagesInternal(
void DiscardSystemPagesInternal(uintptr_t address, size_t length) {
void* ptr = reinterpret_cast<void*>(address);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__address__space.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__address__space.cc
index b16f589d70fe..9171c87c625d 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__address__space.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__address__space.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/base/allocator/partition_allocator/partition_address_space.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/base/allocator/partition_allocator/partition_address_space.cc.orig 2023-07-16 15:47:57 UTC
+++ src/3rdparty/chromium/base/allocator/partition_allocator/partition_address_space.cc
-@@ -417,7 +417,7 @@ void PartitionAddressSpace::UninitPkeyPoolForTesting()
+@@ -420,7 +420,7 @@ void PartitionAddressSpace::UninitThreadIsolatedPoolFo
}
#endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc.gni b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc.gni
index e5856f005242..7cf907ee908d 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc.gni
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc.gni
@@ -1,11 +1,11 @@
---- src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc.gni.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc.gni.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc.gni
-@@ -276,7 +276,7 @@ assert(!use_asan_backup_ref_ptr || use_hookable_raw_pt
- "AsanBackupRefPtr requires RawPtrHookableImpl")
-
- declare_args() {
-- enable_pkeys = is_linux && target_cpu == "x64"
-+ enable_pkeys = (is_linux && !is_bsd) && target_cpu == "x64"
+@@ -328,7 +328,7 @@ declare_args() {
+ # pkeys support is explicitly disabled in all Cronet builds, as some test
+ # dependencies that use partition_allocator are compiled in AOSP against a
+ # version of glibc that does not include pkeys syscall numbers.
+- enable_pkeys = is_linux && target_cpu == "x64" && !is_cronet_build
++ enable_pkeys = (is_linux && !is_bsd) && target_cpu == "x64" && !is_cronet_build
}
assert(!enable_pkeys || (is_linux && target_cpu == "x64"),
"Pkeys are only supported on x64 linux")
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc__base_compiler__specific.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc__base_compiler__specific.h
new file mode 100644
index 000000000000..2577bd6e1d7a
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc__base_compiler__specific.h
@@ -0,0 +1,32 @@
+--- src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_base/compiler_specific.h.orig 2023-04-28 17:01:32 UTC
++++ src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_base/compiler_specific.h
+@@ -24,9 +24,9 @@
+ // Annotate a function indicating it should not be inlined.
+ // Use like:
+ // NOINLINE void DoStuff() { ... }
+-#if defined(__clang__) && PA_HAS_ATTRIBUTE(noinline)
++#if defined(__clang__) && (__clang_major__ >= 15) && PA_HAS_ATTRIBUTE(noinline)
+ #define PA_NOINLINE [[clang::noinline]]
+-#elif defined(COMPILER_GCC) && PA_HAS_ATTRIBUTE(noinline)
++#elif (defined(COMPILER_GCC) || defined(__clang__)) && PA_HAS_ATTRIBUTE(noinline)
+ #define PA_NOINLINE __attribute__((noinline))
+ #elif defined(COMPILER_MSVC)
+ #define PA_NOINLINE __declspec(noinline)
+@@ -34,7 +34,7 @@
+ #define PA_NOINLINE
+ #endif
+
+-#if defined(__clang__) && defined(NDEBUG) && PA_HAS_ATTRIBUTE(always_inline)
++#if defined(__clang__) && (__clang_major__ >= 15) && defined(NDEBUG) && PA_HAS_ATTRIBUTE(always_inline)
+ #define PA_ALWAYS_INLINE [[clang::always_inline]] inline
+ #elif defined(COMPILER_GCC) && defined(NDEBUG) && \
+ PA_HAS_ATTRIBUTE(always_inline)
+@@ -53,7 +53,7 @@
+ // prevent code folding, see NO_CODE_FOLDING() in base/debug/alias.h.
+ // Use like:
+ // void NOT_TAIL_CALLED FooBar();
+-#if defined(__clang__) && PA_HAS_ATTRIBUTE(not_tail_called)
++#if defined(__clang__) && (__clang_major__ >= 15) && PA_HAS_ATTRIBUTE(not_tail_called)
+ #define PA_NOT_TAIL_CALLED [[clang::not_tail_called]]
+ #else
+ #define PA_NOT_TAIL_CALLED
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc__base_debug_stack__trace__posix.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc__base_debug_stack__trace__posix.cc
new file mode 100644
index 000000000000..4f82b1eff27f
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc__base_debug_stack__trace__posix.cc
@@ -0,0 +1,34 @@
+--- src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_base/debug/stack_trace_posix.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_base/debug/stack_trace_posix.cc
+@@ -12,11 +12,11 @@
+ #include <string.h>
+ #include <unistd.h>
+
+-#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_APPLE)
++#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD)
+ #include <link.h> // For ElfW() macro.
+ #endif
+
+-#if BUILDFLAG(IS_APPLE)
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
+ #define HAVE_DLADDR
+ #include <dlfcn.h>
+ #endif
+@@ -25,7 +25,7 @@ namespace partition_alloc::internal::base::debug {
+
+ namespace {
+
+-#if !BUILDFLAG(IS_APPLE)
++#if !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD)
+
+ constexpr size_t kBufferSize = 4096u;
+
+@@ -359,7 +359,7 @@ void PrintStackTraceInternal(void* const* trace, size_
+ }
+ #endif // !BUILDFLAG(IS_APPLE)
+
+-#if BUILDFLAG(IS_APPLE)
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
+ // Since /proc/self/maps is not available, use dladdr() to obtain module
+ // names and offsets inside the modules from the given addresses.
+ void PrintStackTraceInternal(void* const* trace, size_t size) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc__base_rand__util__posix.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc__base_rand__util__posix.cc
index 3862972fb3c6..1c070033462d 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc__base_rand__util__posix.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc__base_rand__util__posix.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_base/rand_util_posix.cc.orig 2022-07-22 17:30:31 UTC
+--- src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_base/rand_util_posix.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_base/rand_util_posix.cc
-@@ -86,6 +86,10 @@ void RandBytes(void* output, size_t output_length) {
+@@ -90,6 +90,10 @@ void RandBytes(void* output, size_t output_length) {
if (getentropy(output, output_length) == 0) {
return;
}
@@ -9,5 +9,5 @@
+ return;
+ }
#endif
-
- // If the OS-specific mechanisms didn't work, fall through to reading from
+ // If getrandom(2) above returned with an error and the /dev/urandom fallback
+ // took place on Linux/ChromeOS bots, they would fail with a CHECK in
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc__config.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc__config.h
index fd5c07ae23ed..cd7f463a4040 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc__config.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc__config.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_config.h.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_config.h.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_config.h
-@@ -104,7 +104,7 @@ static_assert(sizeof(void*) != 8, "");
+@@ -94,7 +94,7 @@ static_assert(sizeof(void*) != 8, "");
// POSIX is not only UNIX, e.g. macOS and other OSes. We do use Linux-specific
// features such as futex(2).
#define PA_CONFIG_HAS_LINUX_KERNEL() \
@@ -9,7 +9,7 @@
// On some platforms, we implement locking by spinning in userspace, then going
// into the kernel only if there is contention. This requires platform support,
-@@ -251,7 +251,7 @@ constexpr bool kUseLazyCommit = false;
+@@ -237,7 +237,7 @@ constexpr bool kUseLazyCommit = false;
// On these platforms, lock all the partitions before fork(), and unlock after.
// This may be required on more platforms in the future.
#define PA_CONFIG_HAS_ATFORK_HANDLER() \
@@ -18,7 +18,7 @@
// PartitionAlloc uses PartitionRootEnumerator to acquire all
// PartitionRoots at BeforeFork and to release at AfterFork.
-@@ -296,7 +296,7 @@ constexpr bool kUseLazyCommit = false;
+@@ -284,7 +284,7 @@ constexpr bool kUseLazyCommit = false;
// Also enabled on ARM64 macOS, as the 16kiB pages on this platform lead to
// larger slot spans.
#define PA_CONFIG_PREFER_SMALLER_SLOT_SPANS() \
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc__constants.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc__constants.h
index 7a6ee0bf9191..397135e90aa3 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc__constants.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc__constants.h
@@ -1,20 +1,21 @@
---- src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_constants.h.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_constants.h.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_constants.h
-@@ -92,7 +92,7 @@ PartitionPageShift() {
+@@ -95,7 +95,7 @@ PartitionPageShift() {
return 18; // 256 KiB
}
#elif (BUILDFLAG(IS_APPLE) && defined(ARCH_CPU_64_BITS)) || \
- (BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_ARM64))
+ ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(ARCH_CPU_ARM64))
- PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR PA_ALWAYS_INLINE size_t
+ PA_ALWAYS_INLINE PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR size_t
PartitionPageShift() {
return PageAllocationGranularityShift() + 2;
-@@ -296,7 +296,7 @@ constexpr size_t kNumPools = kMaxPoolHandle - 1;
- // When pointer compression is enabled, we cannot use large pools (at most
+@@ -297,7 +297,8 @@ constexpr size_t kNumPools = kMaxPoolHandle - 1;
// 8GB for each of the glued pools).
#if BUILDFLAG(HAS_64_BIT_POINTERS)
--#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) || PA_CONFIG(POINTER_COMPRESSION)
-+#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) || PA_CONFIG(POINTER_COMPRESSION) || BUILDFLAG(IS_BSD)
+ #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) || \
+- BUILDFLAG(ENABLE_POINTER_COMPRESSION)
++ BUILDFLAG(ENABLE_POINTER_COMPRESSION) || \
++ BUILDFLAG(IS_BSD)
constexpr size_t kPoolMaxSize = 8 * kGiB;
#else
constexpr size_t kPoolMaxSize = 16 * kGiB;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc__forward.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc__forward.h
index a00532114b5f..c3fcc5774afb 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc__forward.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__alloc__forward.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_forward.h.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_forward.h.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_forward.h
-@@ -27,9 +27,13 @@ namespace internal {
+@@ -28,9 +28,13 @@ namespace internal {
// the second one 16. We could technically return something different for
// malloc() and operator new(), but this would complicate things, and most of
// our allocations are presumably coming from operator new() anyway.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__page.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__page.h
deleted file mode 100644
index 7ec258bfe64e..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__page.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/3rdparty/chromium/base/allocator/partition_allocator/partition_page.h.orig 2023-04-05 11:05:06 UTC
-+++ src/3rdparty/chromium/base/allocator/partition_allocator/partition_page.h
-@@ -143,7 +143,7 @@ struct SlotSpanMetadata {
- // PartitionPageSize() is 4 times the OS page size.
- static constexpr size_t kMaxSlotsPerSlotSpan =
- 4 * (1 << 14) / kSmallestBucket;
--#elif BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_ARM64)
-+#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(ARCH_CPU_ARM64)
- // System page size can be 4, 16, or 64 kiB on Linux on arm64. 64 kiB is
- // currently (kMaxSlotsPerSlotSpanBits == 13) not supported by the code,
- // so we use the 16 kiB maximum (64 kiB will crash).
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__page__constants.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__page__constants.h
new file mode 100644
index 000000000000..33c47d3245bc
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__page__constants.h
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/base/allocator/partition_allocator/partition_page_constants.h.orig 2023-08-17 07:33:31 UTC
++++ src/3rdparty/chromium/base/allocator/partition_allocator/partition_page_constants.h
+@@ -16,7 +16,7 @@ namespace partition_alloc::internal {
+ // (1 << 12 or 1 << 14), as checked in PartitionRoot::Init(). And
+ // PartitionPageSize() is 4 times the OS page size.
+ static constexpr size_t kMaxSlotsPerSlotSpan = 4 * (1 << 14) / kSmallestBucket;
+-#elif BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_ARM64)
++#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(ARCH_CPU_ARM64)
+ // System page size can be 4, 16, or 64 kiB on Linux on arm64. 64 kiB is
+ // currently (kMaxSlotsPerSlotSpanBits == 13) not supported by the code,
+ // so we use the 16 kiB maximum (64 kiB will crash).
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__root.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__root.cc
index 6f8d525cdbcc..b925619dd52c 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__root.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_partition__root.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/base/allocator/partition_allocator/partition_root.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/base/allocator/partition_allocator/partition_root.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/base/allocator/partition_allocator/partition_root.cc
-@@ -42,7 +42,7 @@
+@@ -47,7 +47,7 @@
#include "wow64apiset.h"
#endif
@@ -9,7 +9,7 @@
#include <pthread.h>
#endif
-@@ -245,7 +245,7 @@ void PartitionAllocMallocInitOnce() {
+@@ -281,7 +281,7 @@ void PartitionAllocMallocInitOnce() {
return;
}
@@ -18,7 +18,7 @@
// When fork() is called, only the current thread continues to execute in the
// child process. If the lock is held, but *not* by this thread when fork() is
// called, we have a deadlock.
-@@ -339,7 +339,7 @@ static size_t PartitionPurgeSlotSpan(
+@@ -379,7 +379,7 @@ static size_t PartitionPurgeSlotSpan(PartitionRoot* ro
constexpr size_t kMaxSlotCount =
(PartitionPageSize() * kMaxPartitionPagesPerRegularSlotSpan) /
MinPurgeableSlotSize();
@@ -27,7 +27,7 @@
// It's better for slot_usage to be stack-allocated and fixed-size, which
// demands that its size be constexpr. On IS_APPLE and Linux on arm64,
// PartitionPageSize() is always SystemPageSize() << 2, so regardless of
-@@ -811,7 +811,7 @@ void PartitionRoot<thread_safe>::Init(PartitionOptions
+@@ -948,7 +948,7 @@ void PartitionRoot::Init(PartitionOptions opts) {
// apple OSes.
PA_CHECK((internal::SystemPageSize() == (size_t{1} << 12)) ||
(internal::SystemPageSize() == (size_t{1} << 14)));
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_spinning__mutex.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_spinning__mutex.cc
index 8f34cabed102..06cc5fa96143 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_spinning__mutex.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_spinning__mutex.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/base/allocator/partition_allocator/spinning_mutex.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/base/allocator/partition_allocator/spinning_mutex.cc.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/base/allocator/partition_allocator/spinning_mutex.cc
@@ -18,7 +18,16 @@
@@ -17,7 +17,7 @@
#include <sys/syscall.h>
#include <unistd.h>
#endif // PA_CONFIG(HAS_LINUX_KERNEL)
-@@ -107,8 +116,16 @@ void SpinningMutex::FutexWait() {
+@@ -108,8 +117,16 @@ void SpinningMutex::FutexWait() {
// |kLockedContended| anymore. Note that even without spurious wakeups, the
// value of |state_| is not guaranteed when this returns, as another thread
// may get the lock before we get to run.
@@ -34,7 +34,7 @@
if (err) {
// These are programming error, check them.
-@@ -120,8 +137,16 @@ void SpinningMutex::FutexWait() {
+@@ -121,8 +138,16 @@ void SpinningMutex::FutexWait() {
void SpinningMutex::FutexWake() {
int saved_errno = errno;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_starscan_stack_stack.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_starscan_stack_stack.cc
index 1f24d9074f2f..cfa0d433b7e8 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_starscan_stack_stack.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_allocator_partition__allocator_starscan_stack_stack.cc
@@ -1,10 +1,10 @@
---- src/3rdparty/chromium/base/allocator/partition_allocator/starscan/stack/stack.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/base/allocator/partition_allocator/starscan/stack/stack.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/base/allocator/partition_allocator/starscan/stack/stack.cc
@@ -18,6 +18,10 @@
#include <pthread.h>
#endif
-+#if defined(OS_BSD)
++#if BUILDFLAG(IS_BSD)
+#include <pthread_np.h>
+#endif
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_base__switches.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_base__switches.cc
index 49bcb7b5ac66..f5180faeb6f1 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_base__switches.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_base__switches.cc
@@ -1,7 +1,7 @@
---- src/3rdparty/chromium/base/base_switches.cc.orig 2022-08-31 12:19:35 UTC
+--- src/3rdparty/chromium/base/base_switches.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/base/base_switches.cc
-@@ -170,7 +170,7 @@ const char kForceFieldTrialParams[] = "force-fieldtria
-
+@@ -180,7 +180,7 @@ const char kPackageVersionName[] = "package-version-na
+ const char kPackageVersionCode[] = "package-version-code";
#endif
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_base__switches.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_base__switches.h
index 21d5313d8ecf..e3ecb7515a0c 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_base__switches.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_base__switches.h
@@ -1,7 +1,7 @@
---- src/3rdparty/chromium/base/base_switches.h.orig 2022-08-31 12:19:35 UTC
+--- src/3rdparty/chromium/base/base_switches.h.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/base/base_switches.h
-@@ -60,7 +60,7 @@ extern const char kEnableIdleTracing[];
- extern const char kForceFieldTrialParams[];
+@@ -62,7 +62,7 @@ extern const char kPackageVersionName[];
+ extern const char kPackageVersionCode[];
#endif
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_compiler__specific.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_compiler__specific.h
new file mode 100644
index 000000000000..ad3ed85ba102
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_compiler__specific.h
@@ -0,0 +1,35 @@
+--- src/3rdparty/chromium/base/compiler_specific.h.orig 2023-04-28 17:01:32 UTC
++++ src/3rdparty/chromium/base/compiler_specific.h
+@@ -41,9 +41,9 @@
+ // Annotate a function indicating it should not be inlined.
+ // Use like:
+ // NOINLINE void DoStuff() { ... }
+-#if defined(__clang__) && HAS_ATTRIBUTE(noinline)
++#if defined(__clang__) && (__clang_major__ >= 15) && HAS_ATTRIBUTE(noinline)
+ #define NOINLINE [[clang::noinline]]
+-#elif defined(COMPILER_GCC) && HAS_ATTRIBUTE(noinline)
++#elif (defined(COMPILER_GCC) || defined(__clang__)) && HAS_ATTRIBUTE(noinline)
+ #define NOINLINE __attribute__((noinline))
+ #elif defined(COMPILER_MSVC)
+ #define NOINLINE __declspec(noinline)
+@@ -51,9 +51,9 @@
+ #define NOINLINE
+ #endif
+
+-#if defined(__clang__) && defined(NDEBUG) && HAS_ATTRIBUTE(always_inline)
++#if defined(__clang__) && (__clang_major__ >= 15) && defined(NDEBUG) && HAS_ATTRIBUTE(always_inline)
+ #define ALWAYS_INLINE [[clang::always_inline]] inline
+-#elif defined(COMPILER_GCC) && defined(NDEBUG) && HAS_ATTRIBUTE(always_inline)
++#elif (defined(COMPILER_GCC) || defined(__clang__)) && defined(NDEBUG) && HAS_ATTRIBUTE(always_inline)
+ #define ALWAYS_INLINE inline __attribute__((__always_inline__))
+ #elif defined(COMPILER_MSVC) && defined(NDEBUG)
+ #define ALWAYS_INLINE __forceinline
+@@ -69,7 +69,7 @@
+ // prevent code folding, see NO_CODE_FOLDING() in base/debug/alias.h.
+ // Use like:
+ // NOT_TAIL_CALLED void FooBar();
+-#if defined(__clang__) && HAS_ATTRIBUTE(not_tail_called)
++#if defined(__clang__) && (__clang_major__ >= 15) && HAS_ATTRIBUTE(not_tail_called)
+ #define NOT_TAIL_CALLED [[clang::not_tail_called]]
+ #else
+ #define NOT_TAIL_CALLED
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_debug_elf__reader.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_debug_elf__reader.cc
index d4a4722204fd..babce6ea3dbf 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_debug_elf__reader.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_debug_elf__reader.cc
@@ -1,10 +1,10 @@
---- src/3rdparty/chromium/base/debug/elf_reader.cc.orig 2022-08-31 12:19:35 UTC
+--- src/3rdparty/chromium/base/debug/elf_reader.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/base/debug/elf_reader.cc
@@ -78,6 +78,7 @@ size_t ReadElfBuildId(const void* elf_mapped_base,
bool found = false;
while (current_section < section_end) {
current_note = reinterpret_cast<const Nhdr*>(current_section);
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
if (current_note->n_type == NT_GNU_BUILD_ID) {
StringPiece note_name(current_section + sizeof(Nhdr),
current_note->n_namesz);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_debug_stack__trace__posix.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_debug_stack__trace__posix.cc
index c4a64e564a43..5d07bea8c52f 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_debug_stack__trace__posix.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_debug_stack__trace__posix.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/base/debug/stack_trace_posix.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/base/debug/stack_trace_posix.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/base/debug/stack_trace_posix.cc
@@ -41,7 +41,7 @@
// execinfo.h and backtrace(3) are really only present in glibc and in macOS
@@ -18,7 +18,53 @@
#include "base/debug/proc_maps_linux.h"
#endif
-@@ -799,6 +799,9 @@ class SandboxSymbolizeHelper {
+@@ -300,7 +300,7 @@ void PrintToStderr(const char* output) {
+ std::ignore = HANDLE_EINTR(write(STDERR_FILENO, output, strlen(output)));
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ void AlarmSignalHandler(int signal, siginfo_t* info, void* void_context) {
+ // We have seen rare cases on AMD linux where the default signal handler
+ // either does not run or a thread (Probably an AMD driver thread) prevents
+@@ -317,7 +317,11 @@ void AlarmSignalHandler(int signal, siginfo_t* info, v
+ "Warning: Default signal handler failed to terminate process.\n");
+ PrintToStderr("Calling exit_group() directly to prevent timeout.\n");
+ // See: https://man7.org/linux/man-pages/man2/exit_group.2.html
++#if BUILDFLAG(IS_BSD)
++ _exit(EXIT_FAILURE);
++#else
+ syscall(SYS_exit_group, EXIT_FAILURE);
++#endif
+ }
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) ||
+ // BUILDFLAG(IS_CHROMEOS)
+@@ -534,7 +538,7 @@ void StackDumpSignalHandler(int signal, siginfo_t* inf
+ _exit(EXIT_FAILURE);
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Set an alarm to trigger in case the default handler does not terminate
+ // the process. See 'AlarmSignalHandler' for more details.
+ struct sigaction action;
+@@ -559,6 +563,7 @@ void StackDumpSignalHandler(int signal, siginfo_t* inf
+ // signals that do not re-raise autonomously), such as signals delivered via
+ // kill() and asynchronous hardware faults such as SEGV_MTEAERR, which would
+ // otherwise be lost when re-raising the signal via raise().
++#if !BUILDFLAG(IS_BSD)
+ long retval = syscall(SYS_rt_tgsigqueueinfo, getpid(), syscall(SYS_gettid),
+ info->si_signo, info);
+ if (retval == 0) {
+@@ -573,6 +578,7 @@ void StackDumpSignalHandler(int signal, siginfo_t* inf
+ if (errno != EPERM) {
+ _exit(EXIT_FAILURE);
+ }
++#endif
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) ||
+ // BUILDFLAG(IS_CHROMEOS)
+
+@@ -821,6 +827,9 @@ class SandboxSymbolizeHelper {
// for the modules that are loaded in the current process.
// Returns true on success.
bool CacheMemoryRegions() {
@@ -28,7 +74,7 @@
// Reads /proc/self/maps.
std::string contents;
if (!ReadProcMaps(&contents)) {
-@@ -816,6 +819,7 @@ class SandboxSymbolizeHelper {
+@@ -838,6 +847,7 @@ class SandboxSymbolizeHelper {
is_initialized_ = true;
return true;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_files_file__util__posix.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_files_file__util__posix.cc
index f483c647acfb..7f2c78bd85af 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_files_file__util__posix.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_files_file__util__posix.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/base/files/file_util_posix.cc.orig 2022-08-31 12:19:35 UTC
+--- src/3rdparty/chromium/base/files/file_util_posix.cc.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/base/files/file_util_posix.cc
-@@ -700,32 +700,34 @@ bool CreateDirectoryAndGetError(const FilePath& full_p
+@@ -756,32 +756,34 @@ bool CreateDirectoryAndGetError(const FilePath& full_p
File::Error* error) {
ScopedBlockingCall scoped_blocking_call(
FROM_HERE, BlockingType::MAY_BLOCK); // For call to mkdir().
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_i18n_icu__util.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_i18n_icu__util.cc
index a38478c3c072..5451c26e763e 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_i18n_icu__util.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_i18n_icu__util.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/base/i18n/icu_util.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/base/i18n/icu_util.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/base/i18n/icu_util.cc
@@ -51,7 +51,7 @@
#include "third_party/icu/source/common/unicode/unistr.h"
@@ -9,7 +9,7 @@
BUILDFLAG(IS_CHROMEOS) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS))
#include "third_party/icu/source/i18n/unicode/timezone.h"
#endif
-@@ -344,7 +344,7 @@ void InitializeIcuTimeZone() {
+@@ -349,7 +349,7 @@ void InitializeIcuTimeZone() {
FuchsiaIntlProfileWatcher::GetPrimaryTimeZoneIdForIcuInitialization();
icu::TimeZone::adoptDefault(
icu::TimeZone::createTimeZone(icu::UnicodeString::fromUTF8(zone_id)));
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_linux__util.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_linux__util.cc
index 5d034a4c4d1f..c5250c813ac6 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_linux__util.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_linux__util.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/base/linux_util.cc.orig 2022-08-31 12:19:35 UTC
+--- src/3rdparty/chromium/base/linux_util.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/base/linux_util.cc
@@ -15,6 +15,7 @@
@@ -12,7 +12,7 @@
}
bool GetThreadsForProcess(pid_t pid, std::vector<pid_t>* tids) {
-+#if defined(OS_BSD)
++#if BUILDFLAG(IS_BSD)
+ return false;
+#else
// 25 > strlen("/proc//task") + strlen(std::to_string(INT_MAX)) + 1 = 22
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_memory_madv__free__discardable__memory__posix.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_memory_madv__free__discardable__memory__posix.cc
index 47133357042d..65ff5cfba392 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_memory_madv__free__discardable__memory__posix.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_memory_madv__free__discardable__memory__posix.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/base/memory/madv_free_discardable_memory_posix.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/base/memory/madv_free_discardable_memory_posix.cc.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/base/memory/madv_free_discardable_memory_posix.cc
-@@ -299,6 +299,10 @@ bool MadvFreeDiscardableMemoryPosix::IsResident() cons
+@@ -306,6 +306,10 @@ void MadvFreeDiscardableMemoryPosix::SetKeepMemoryForT
bool MadvFreeDiscardableMemoryPosix::IsResident() const {
DFAKE_SCOPED_RECURSIVE_LOCK(thread_collision_warner_);
@@ -11,7 +11,7 @@
#if BUILDFLAG(IS_APPLE)
std::vector<char> vec(allocated_pages_);
#else
-@@ -314,6 +318,7 @@ bool MadvFreeDiscardableMemoryPosix::IsResident() cons
+@@ -321,6 +325,7 @@ bool MadvFreeDiscardableMemoryPosix::IsResident() cons
return false;
}
return true;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_memory_platform__shared__memory__region.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_memory_platform__shared__memory__region.h
index bdc1f9a4b417..30ea9baa2090 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_memory_platform__shared__memory__region.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_memory_platform__shared__memory__region.h
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/base/memory/platform_shared_memory_region.h.orig 2022-06-17 14:20:10 UTC
+--- src/3rdparty/chromium/base/memory/platform_shared_memory_region.h.orig 2023-07-16 15:47:57 UTC
+++ src/3rdparty/chromium/base/memory/platform_shared_memory_region.h
@@ -16,7 +16,7 @@
@@ -18,7 +18,7 @@
// Structure to limit access to executable region creation.
struct ExecutableRegion {
private:
-@@ -211,7 +211,7 @@ class BASE_EXPORT PlatformSharedMemoryRegion {
+@@ -215,7 +215,7 @@ class BASE_EXPORT PlatformSharedMemoryRegion {
CheckPlatformHandlePermissionsCorrespondToMode);
static PlatformSharedMemoryRegion Create(Mode mode,
size_t size
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_process_launch.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_process_launch.h
index 0d027a49424e..a744c9a96f61 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_process_launch.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_process_launch.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/base/process/launch.h.orig 2022-06-17 14:20:10 UTC
+--- src/3rdparty/chromium/base/process/launch.h.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/base/process/launch.h
-@@ -198,7 +198,7 @@ struct BASE_EXPORT LaunchOptions {
+@@ -200,7 +200,7 @@ struct BASE_EXPORT LaunchOptions {
bool clear_environment = false;
#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_process_process__metrics.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_process_process__metrics.cc
index d78f3991d67a..95df631a5545 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_process_process__metrics.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_process_process__metrics.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/base/process/process_metrics.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/base/process/process_metrics.cc.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/base/process/process_metrics.cc
@@ -17,7 +17,7 @@ namespace base {
namespace {
@@ -27,7 +27,7 @@
Value::Dict meminfo = memory_info_.ToDict();
meminfo.Merge(vmstat_info_.ToDict());
res.Set("meminfo", std::move(meminfo));
-@@ -98,7 +98,6 @@ std::unique_ptr<ProcessMetrics> ProcessMetrics::Create
+@@ -100,7 +100,6 @@ std::unique_ptr<ProcessMetrics> ProcessMetrics::Create
#endif // !BUILDFLAG(IS_MAC)
}
@@ -35,7 +35,7 @@
double ProcessMetrics::GetPlatformIndependentCPUUsage(
TimeDelta cumulative_cpu) {
TimeTicks time = TimeTicks::Now();
-@@ -124,7 +123,6 @@ double ProcessMetrics::GetPlatformIndependentCPUUsage(
+@@ -126,7 +125,6 @@ double ProcessMetrics::GetPlatformIndependentCPUUsage(
double ProcessMetrics::GetPlatformIndependentCPUUsage() {
return GetPlatformIndependentCPUUsage(GetCumulativeCPUUsage());
}
@@ -43,7 +43,7 @@
#if BUILDFLAG(IS_WIN)
double ProcessMetrics::GetPreciseCPUUsage(TimeDelta cumulative_cpu) {
-@@ -155,7 +153,7 @@ double ProcessMetrics::GetPreciseCPUUsage() {
+@@ -157,7 +155,7 @@ double ProcessMetrics::GetPreciseCPUUsage() {
#endif // BUILDFLAG(IS_WIN)
#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_process_process__metrics.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_process_process__metrics.h
index 90733ad68e8c..d66d3ffb3d6a 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_process_process__metrics.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_process_process__metrics.h
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/base/process/process_metrics.h.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/base/process/process_metrics.h.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/base/process/process_metrics.h
@@ -37,7 +37,7 @@
#endif
@@ -54,7 +54,7 @@
int CalculateIdleWakeupsPerSecond(uint64_t absolute_idle_wakeups);
#endif
#if BUILDFLAG(IS_APPLE)
-@@ -263,9 +263,7 @@ class BASE_EXPORT ProcessMetrics {
+@@ -266,9 +266,7 @@ class BASE_EXPORT ProcessMetrics {
// Used to store the previous times and CPU usage counts so we can
// compute the CPU usage between calls.
TimeTicks last_cpu_time_;
@@ -64,7 +64,7 @@
#if BUILDFLAG(IS_WIN)
TimeTicks last_cpu_time_for_precise_cpu_usage_;
-@@ -273,7 +271,7 @@ class BASE_EXPORT ProcessMetrics {
+@@ -276,7 +274,7 @@ class BASE_EXPORT ProcessMetrics {
#endif
#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_process_process__metrics__openbsd.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_process_process__metrics__openbsd.cc
index cd614ca55016..85a72669036d 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_process_process__metrics__openbsd.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_process_process__metrics__openbsd.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/base/process/process_metrics_openbsd.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/base/process/process_metrics_openbsd.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/base/process/process_metrics_openbsd.cc
@@ -6,14 +6,23 @@
@@ -83,13 +83,14 @@
size_t GetSystemCommitCharge() {
int mib[] = { CTL_VM, VM_METER };
int pagesize;
-@@ -84,6 +67,129 @@ size_t GetSystemCommitCharge() {
+@@ -84,6 +67,133 @@ size_t GetSystemCommitCharge() {
pagesize = getpagesize();
return mem_total - (mem_free*pagesize) - (mem_inactive*pagesize);
+}
+
+int ProcessMetrics::GetOpenFdCount() const {
++#if 0
+ struct kinfo_file *files;
+ kvm_t *kd = NULL;
+ int total_count = 0;
@@ -108,10 +109,13 @@
+
+out:
+ return total_count;
++#endif
++ return getdtablecount();
+}
+
+int ProcessMetrics::GetOpenFdSoftLimit() const {
-+ return GetMaxFds();
++ return getdtablesize();
++// return GetMaxFds();
+}
+
+uint64_t ProcessMetrics::GetVmSwapBytes() const {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_process_process__metrics__posix.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_process_process__metrics__posix.cc
index 8ef51d87848b..f820e17841e2 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_process_process__metrics__posix.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_process_process__metrics__posix.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/base/process/process_metrics_posix.cc.orig 2022-08-31 12:19:35 UTC
+--- src/3rdparty/chromium/base/process/process_metrics_posix.cc.orig 2023-07-16 15:47:57 UTC
+++ src/3rdparty/chromium/base/process/process_metrics_posix.cc
-@@ -20,6 +20,8 @@
+@@ -21,6 +21,8 @@
#if BUILDFLAG(IS_APPLE)
#include <malloc/malloc.h>
@@ -9,7 +9,7 @@
#else
#include <malloc.h>
#endif
-@@ -135,7 +137,7 @@ size_t ProcessMetrics::GetMallocUsage() {
+@@ -134,7 +136,7 @@ size_t ProcessMetrics::GetMallocUsage() {
return stats.size_in_use;
#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
return GetMallocUsageMallinfo();
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_process_process__posix.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_process_process__posix.cc
index c24ad3485633..f7da874a37ff 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_process_process__posix.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_process_process__posix.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/base/process/process_posix.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/base/process/process_posix.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/base/process/process_posix.cc
@@ -23,10 +23,15 @@
#include "base/trace_event/base_tracing.h"
@@ -9,7 +9,7 @@
#include <sys/event.h>
#endif
-+#if defined(OS_BSD)
++#if BUILDFLAG(IS_BSD)
+#include <sys/types.h>
+#include <sys/sysctl.h>
+#endif
@@ -35,21 +35,21 @@
// On Mac we can wait on non child processes.
return WaitForSingleNonChildProcess(handle, timeout);
#else
-@@ -387,7 +392,55 @@ void Process::Exited(int exit_code) const {
+@@ -387,7 +392,56 @@ void Process::Exited(int exit_code) const {
- int Process::GetPriority() const {
+ int Process::GetOSPriority() const {
DCHECK(IsValid());
+// avoid pledge(2) violation
-+#if defined(OS_BSD)
++#if BUILDFLAG(IS_BSD)
+ return 0;
+#else
return getpriority(PRIO_PROCESS, static_cast<id_t>(process_));
+#endif
-+}
+ }
+
+Time Process::CreationTime() const {
+// avoid ps pledge in the network process
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
+ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(),
+ sizeof(struct kinfo_proc), 0 };
+ struct kinfo_proc *info = nullptr;
@@ -57,7 +57,7 @@
+#endif
+ Time ct = Time();
+
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
+ if (sysctl(mib, std::size(mib), NULL, &info_size, NULL, 0) < 0)
+ goto out;
+
@@ -77,17 +77,18 @@
+ return ct;
+}
+
-+bool Process::IsProcessBackgrounded() const {
-+ return false;
++#if BUILDFLAG(IS_BSD)
++Process::Priority Process::GetPriority() const {
++ return Priority::kUserBlocking;
+}
-+
-+bool Process::SetProcessBackgrounded(bool value) {
++
++bool Process::SetPriority(Priority priority) {
+ return false;
+}
-+
-+// static
-+bool Process::CanBackgroundProcesses() {
++
++bool Process::CanSetPriority() {
+ return false;
- }
++}
++#endif
} // namespace base
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_profiler_module__cache.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_profiler_module__cache.cc
index 58412582057f..b6c3709aa44a 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_profiler_module__cache.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_profiler_module__cache.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/base/profiler/module_cache.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/base/profiler/module_cache.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/base/profiler/module_cache.cc
-@@ -37,7 +37,7 @@ std::string TransformModuleIDToSymbolServerFormat(Stri
+@@ -52,7 +52,7 @@ std::string TransformModuleIDToSymbolServerFormat(Stri
// Android and Linux Chrome builds use the "breakpad" format to index their
// build id, so we transform the build id for these platforms. All other
// platforms keep their symbols indexed by the original build ID.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_profiler_stack__sampling__profiler__test__util.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_profiler_stack__sampling__profiler__test__util.cc
index e4ed87ae163a..aefe2a163bd5 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_profiler_stack__sampling__profiler__test__util.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_profiler_stack__sampling__profiler__test__util.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/base/profiler/stack_sampling_profiler_test_util.cc.orig 2023-02-08 09:03:45 UTC
+--- src/3rdparty/chromium/base/profiler/stack_sampling_profiler_test_util.cc.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/base/profiler/stack_sampling_profiler_test_util.cc
-@@ -33,7 +33,7 @@
+@@ -36,7 +36,7 @@
// Fortunately, it provides _alloca, which functions identically.
#include <malloc.h>
#define alloca _alloca
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_rand__util.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_rand__util.h
index df6405773e53..16eba4061a14 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_rand__util.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_rand__util.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/base/rand_util.h.orig 2022-11-30 08:12:58 UTC
+--- src/3rdparty/chromium/base/rand_util.h.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/base/rand_util.h
-@@ -117,7 +117,7 @@ void RandomShuffle(Itr first, Itr last) {
+@@ -121,7 +121,7 @@ void RandomShuffle(Itr first, Itr last) {
std::shuffle(first, last, RandomBitGenerator());
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_system_sys__info.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_system_sys__info.cc
index 5ae54d0bdd4e..db411e4749cd 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_system_sys__info.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_system_sys__info.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/base/system/sys_info.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/base/system/sys_info.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/base/system/sys_info.cc
-@@ -106,7 +106,7 @@ std::string SysInfo::HardwareModelName() {
+@@ -166,7 +166,7 @@ std::string SysInfo::HardwareModelName() {
#endif
void SysInfo::GetHardwareInfo(base::OnceCallback<void(HardwareInfo)> callback) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_system_sys__info.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_system_sys__info.h
index 226b5a530701..b69d60cc2735 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_system_sys__info.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_system_sys__info.h
@@ -1,15 +1,15 @@
---- src/3rdparty/chromium/base/system/sys_info.h.orig 2023-02-08 09:03:45 UTC
+--- src/3rdparty/chromium/base/system/sys_info.h.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/base/system/sys_info.h
-@@ -246,6 +246,8 @@ class BASE_EXPORT SysInfo {
- static void SetIsCpuSecurityMitigationsEnabled(bool is_enabled);
+@@ -266,6 +266,8 @@ class BASE_EXPORT SysInfo {
+ static void ResetCpuSecurityMitigationsEnabledForTesting();
#endif
+ static uint64_t MaxSharedMemorySize();
+
private:
+ friend class test::ScopedAmountOfPhysicalMemoryOverride;
FRIEND_TEST_ALL_PREFIXES(SysInfoTest, AmountOfAvailablePhysicalMemory);
- FRIEND_TEST_ALL_PREFIXES(debug::SystemMetricsTest, ParseMeminfo);
-@@ -257,7 +259,7 @@ class BASE_EXPORT SysInfo {
+@@ -278,7 +280,7 @@ class BASE_EXPORT SysInfo {
static HardwareInfo GetHardwareInfoSync();
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_system_sys__info__posix.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_system_sys__info__posix.cc
index 9b5a1d6262b0..73a5f9f01a17 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_system_sys__info__posix.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_system_sys__info__posix.cc
@@ -1,21 +1,24 @@
---- src/3rdparty/chromium/base/system/sys_info_posix.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/base/system/sys_info_posix.cc.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/base/system/sys_info_posix.cc
-@@ -165,12 +165,12 @@ int NumberOfProcessors() {
+@@ -117,7 +117,7 @@ bool GetDiskSpaceInfo(const base::FilePath& path,
- } // namespace internal
+ namespace base {
-#if !BUILDFLAG(IS_OPENBSD)
+#if !BUILDFLAG(IS_BSD)
int SysInfo::NumberOfProcessors() {
- static int number_of_processors = internal::NumberOfProcessors();
- return number_of_processors;
+ #if BUILDFLAG(IS_MAC)
+ absl::optional<int> number_of_physical_cores =
+@@ -161,7 +161,7 @@ int SysInfo::NumberOfProcessors() {
+
+ return num_cpus;
}
-#endif // !BUILDFLAG(IS_OPENBSD)
+#endif // !BUILDFLAG(IS_BSD)
// static
uint64_t SysInfo::AmountOfVirtualMemory() {
-@@ -260,6 +260,8 @@ std::string SysInfo::OperatingSystemArchitecture() {
+@@ -251,6 +251,8 @@ std::string SysInfo::OperatingSystemArchitecture() {
arch = "x86";
} else if (arch == "amd64") {
arch = "x86_64";
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_test_test__file__util__linux.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_test_test__file__util__linux.cc
index 49b9ce7d6fbe..0a61f568e7e7 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_test_test__file__util__linux.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_test_test__file__util__linux.cc
@@ -1,10 +1,10 @@
---- src/3rdparty/chromium/base/test/test_file_util_linux.cc.orig 2022-02-28 16:54:41 UTC
+--- src/3rdparty/chromium/base/test/test_file_util_linux.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/base/test/test_file_util_linux.cc
@@ -54,8 +54,10 @@ bool EvictFileFromSystemCache(const FilePath& file) {
return false;
if (fdatasync(fd.get()) != 0)
return false;
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
if (posix_fadvise(fd.get(), 0, 0, POSIX_FADV_DONTNEED) != 0)
return false;
+#endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_threading_hang__watcher.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_threading_hang__watcher.cc
new file mode 100644
index 000000000000..62a5b20ce6c5
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_threading_hang__watcher.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/base/threading/hang_watcher.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/base/threading/hang_watcher.cc
+@@ -331,7 +331,7 @@ void HangWatcher::InitializeOnMainThread(ProcessType p
+
+ bool enable_hang_watcher = base::FeatureList::IsEnabled(kEnableHangWatcher);
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_BSD)
+ if (is_zygote_child) {
+ enable_hang_watcher =
+ enable_hang_watcher &&
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_threading_platform__thread__bsd.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_threading_platform__thread__bsd.cc
new file mode 100644
index 000000000000..d2ea66bf3ea5
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_threading_platform__thread__bsd.cc
@@ -0,0 +1,34 @@
+--- src/3rdparty/chromium/base/threading/platform_thread_bsd.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/base/threading/platform_thread_bsd.cc
+@@ -0,0 +1,31 @@
++// Copyright 2023 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++// Description: These are stubs for *BSD.
++
++#include "base/threading/platform_thread.h"
++
++namespace base {
++namespace internal {
++
++bool CanSetThreadTypeToRealtimeAudio() {
++ return false;
++}
++
++bool SetCurrentThreadTypeForPlatform(ThreadType thread_type,
++ MessagePumpType pump_type_hint) {
++ return false;
++}
++
++absl::optional<ThreadPriorityForTest>
++GetCurrentThreadPriorityForPlatformForTest() {
++ return absl::nullopt;
++}
++} // namespace internal
++
++// static
++void PlatformThreadBase::SetName(const std::string& name) {
++ SetNameCommon(name);
++}
++
++} // namespace base
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_threading_platform__thread__internal__posix.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_threading_platform__thread__internal__posix.cc
new file mode 100644
index 000000000000..7feb2dec502e
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_threading_platform__thread__internal__posix.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/base/threading/platform_thread_internal_posix.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/base/threading/platform_thread_internal_posix.cc
+@@ -41,7 +41,7 @@ ThreadPriorityForTest NiceValueToThreadPriorityForTest
+ }
+
+ int GetCurrentThreadNiceValue() {
+-#if BUILDFLAG(IS_NACL)
++#if BUILDFLAG(IS_NACL) || BUILDFLAG(IS_BSD)
+ NOTIMPLEMENTED();
+ return 0;
+ #else
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_threading_platform__thread__linux.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_threading_platform__thread__linux.cc
deleted file mode 100644
index e7a0ef2e0396..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_threading_platform__thread__linux.cc
+++ /dev/null
@@ -1,84 +0,0 @@
---- src/3rdparty/chromium/base/threading/platform_thread_linux.cc.orig 2023-02-08 09:03:45 UTC
-+++ src/3rdparty/chromium/base/threading/platform_thread_linux.cc
-@@ -30,7 +30,9 @@
-
- #if !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_AIX)
- #include <pthread.h>
-+#if !BUILDFLAG(IS_BSD)
- #include <sys/prctl.h>
-+#endif
- #include <sys/resource.h>
- #include <sys/time.h>
- #include <sys/types.h>
-@@ -139,7 +141,7 @@ long sched_setattr(pid_t pid,
- #endif // !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_AIX)
- #endif // BUILDFLAG(IS_CHROMEOS)
-
--#if !BUILDFLAG(IS_NACL)
-+#if !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_BSD)
- const FilePath::CharType kCgroupDirectory[] =
- FILE_PATH_LITERAL("/sys/fs/cgroup");
-
-@@ -313,7 +315,7 @@ void SetThreadCgroupsForThreadType(PlatformThreadId th
- namespace internal {
-
- namespace {
--#if !BUILDFLAG(IS_NACL)
-+#if !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_BSD)
- const struct sched_param kRealTimePrio = {8};
- #endif
- } // namespace
-@@ -340,7 +342,7 @@ const ThreadTypeToNiceValuePair kThreadTypeToNiceValue
- };
-
- bool CanSetThreadTypeToRealtimeAudio() {
--#if !BUILDFLAG(IS_NACL)
-+#if !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_BSD)
- // A non-zero soft-limit on RLIMIT_RTPRIO is required to be allowed to invoke
- // pthread_setschedparam in SetCurrentThreadTypeForPlatform().
- struct rlimit rlim;
-@@ -352,7 +354,7 @@ bool CanSetThreadTypeToRealtimeAudio() {
-
- bool SetCurrentThreadTypeForPlatform(ThreadType thread_type,
- MessagePumpType pump_type_hint) {
--#if !BUILDFLAG(IS_NACL)
-+#if !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_BSD)
- const PlatformThreadId tid = PlatformThread::CurrentId();
-
- if (g_thread_type_delegate &&
-@@ -378,7 +380,7 @@ bool SetCurrentThreadTypeForPlatform(ThreadType thread
-
- absl::optional<ThreadPriorityForTest>
- GetCurrentThreadPriorityForPlatformForTest() {
--#if !BUILDFLAG(IS_NACL)
-+#if !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_BSD)
- int maybe_sched_rr = 0;
- struct sched_param maybe_realtime_prio = {0};
- if (pthread_getschedparam(pthread_self(), &maybe_sched_rr,
-@@ -397,7 +399,7 @@ GetCurrentThreadPriorityForPlatformForTest() {
- void PlatformThread::SetName(const std::string& name) {
- ThreadIdNameManager::GetInstance()->SetName(name);
-
--#if !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_AIX)
-+#if !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_AIX) && !BUILDFLAG(IS_BSD)
- // On linux we can get the thread names to show up in the debugger by setting
- // the process name for the LWP. We don't want to do this for the main
- // thread because that would rename the process, causing tools like killall
-@@ -417,7 +419,7 @@ void PlatformThread::SetName(const std::string& name)
- #endif // !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_AIX)
- }
-
--#if !BUILDFLAG(IS_NACL)
-+#if !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_BSD)
- // static
- void PlatformThread::SetThreadTypeDelegate(ThreadTypeDelegate* delegate) {
- // A component cannot override a delegate set by another component, thus
-@@ -428,7 +430,7 @@ void PlatformThread::SetThreadTypeDelegate(ThreadTypeD
- }
- #endif
-
--#if !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_AIX)
-+#if !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_AIX) && !BUILDFLAG(IS_BSD)
- // static
- void PlatformThread::SetThreadType(ProcessId process_id,
- PlatformThreadId thread_id,
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_threading_platform__thread__posix.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_threading_platform__thread__posix.cc
index ab57809e0ac0..3e8c5740f048 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_threading_platform__thread__posix.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_threading_platform__thread__posix.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/base/threading/platform_thread_posix.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/base/threading/platform_thread_posix.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/base/threading/platform_thread_posix.cc
-@@ -76,7 +76,7 @@ void* ThreadFunc(void* params) {
+@@ -76,12 +76,12 @@ void* ThreadFunc(void* params) {
if (!thread_params->joinable)
base::DisallowSingleton();
@@ -9,6 +9,21 @@
partition_alloc::internal::PCScan::NotifyThreadCreated(
partition_alloc::internal::GetStackPointer());
#endif
+
+-#if !BUILDFLAG(IS_NACL)
++#if !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_BSD)
+ #if BUILDFLAG(IS_APPLE)
+ PlatformThread::SetCurrentThreadRealtimePeriodValue(
+ delegate->GetRealtimePeriod());
+@@ -353,7 +353,7 @@ void PlatformThreadBase::Detach(PlatformThreadHandle t
+
+ // static
+ bool PlatformThreadBase::CanChangeThreadType(ThreadType from, ThreadType to) {
+-#if BUILDFLAG(IS_NACL)
++#if BUILDFLAG(IS_NACL) || BUILDFLAG(IS_BSD)
+ return false;
+ #else
+ if (from >= to) {
@@ -374,6 +374,9 @@ void SetCurrentThreadTypeImpl(ThreadType thread_type,
MessagePumpType pump_type_hint) {
#if BUILDFLAG(IS_NACL)
@@ -19,3 +34,12 @@
#else
if (internal::SetCurrentThreadTypeForPlatform(thread_type, pump_type_hint))
return;
+@@ -396,7 +399,7 @@ void SetCurrentThreadTypeImpl(ThreadType thread_type,
+
+ // static
+ ThreadPriorityForTest PlatformThreadBase::GetCurrentThreadPriorityForTest() {
+-#if BUILDFLAG(IS_NACL)
++#if BUILDFLAG(IS_NACL) || BUILDFLAG(IS_BSD)
+ NOTIMPLEMENTED();
+ return ThreadPriorityForTest::kNormal;
+ #else
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_trace__event_malloc__dump__provider.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_trace__event_malloc__dump__provider.cc
index 6f4bb60c70b9..dc3be50876aa 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_trace__event_malloc__dump__provider.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_trace__event_malloc__dump__provider.cc
@@ -1,15 +1,15 @@
---- src/3rdparty/chromium/base/trace_event/malloc_dump_provider.cc.orig 2023-02-08 09:03:45 UTC
+--- src/3rdparty/chromium/base/trace_event/malloc_dump_provider.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/base/trace_event/malloc_dump_provider.cc
@@ -25,6 +25,8 @@
#if BUILDFLAG(IS_APPLE)
#include <malloc/malloc.h>
-+#elif defined(OS_BSD)
++#elif BUILDFLAG(IS_BSD)
+#include <stdlib.h>
#else
#include <malloc.h>
#endif
-@@ -187,7 +189,7 @@ void ReportAppleAllocStats(size_t* total_virtual_size,
+@@ -188,7 +190,7 @@ void ReportAppleAllocStats(size_t* total_virtual_size,
#if (BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && BUILDFLAG(IS_ANDROID)) || \
(!BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && !BUILDFLAG(IS_WIN) && \
@@ -18,11 +18,11 @@
void ReportMallinfoStats(ProcessMemoryDump* pmd,
size_t* total_virtual_size,
size_t* resident_size,
-@@ -358,6 +360,9 @@ bool MallocDumpProvider::OnMemoryDump(const MemoryDump
+@@ -359,6 +361,9 @@ bool MallocDumpProvider::OnMemoryDump(const MemoryDump
&allocated_objects_count);
#elif BUILDFLAG(IS_FUCHSIA)
// TODO(fuchsia): Port, see https://crbug.com/706592.
-+#elif defined(OS_BSD)
++#elif BUILDFLAG(IS_BSD)
+ total_virtual_size = 0;
+ allocated_objects_size = 0;
#else
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_trace__event_trace__log.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_trace__event_trace__log.cc
new file mode 100644
index 000000000000..6fe3d1861bc9
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_base_trace__event_trace__log.cc
@@ -0,0 +1,16 @@
+--- src/3rdparty/chromium/base/trace_event/trace_log.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/base/trace_event/trace_log.cc
+@@ -2190,8 +2190,13 @@ void TraceLog::SetTraceBufferForTesting(
+ #if BUILDFLAG(USE_PERFETTO_CLIENT_LIBRARY)
+ void TraceLog::OnSetup(const perfetto::DataSourceBase::SetupArgs& args) {
+ AutoLock lock(track_event_lock_);
++#if defined(__clang__) && (__clang_major__ >= 16)
+ track_event_sessions_.emplace_back(args.internal_instance_index, *args.config,
+ args.backend_type);
++#else
++ track_event_sessions_.emplace_back(TrackEventSession{args.internal_instance_index, *args.config,
++ args.backend_type});
++#endif
+ }
+
+ void TraceLog::OnStart(const perfetto::DataSourceBase::StartArgs&) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_BUILD.gn
index b1f5f44f2f80..a3f30fdd37eb 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_BUILD.gn
@@ -1,22 +1,13 @@
---- src/3rdparty/chromium/build/config/BUILD.gn.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/build/config/BUILD.gn.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/build/config/BUILD.gn
-@@ -222,13 +222,17 @@ config("default_libs") {
- "CoreText.framework",
- "Foundation.framework",
- ]
-- } else if (is_linux || is_chromeos) {
-+ } else if ((is_linux && !is_bsd) || is_chromeos) {
- libs = [
- "dl",
- "pthread",
- "rt",
- ]
-- }
+@@ -218,6 +218,10 @@ config("default_libs") {
+ # Targets should choose to explicitly link frameworks they require. Since
+ # linking can have run-time side effects, nothing should be listed here.
+ libs = []
+ } else if (is_bsd) {
+ libs = [
+ "pthread",
+ ]
-+ }
- }
-
- group("common_deps") {
+ } else if (is_linux || is_chromeos) {
+ libs = [
+ "dl",
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_BUILDCONFIG.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_BUILDCONFIG.gn
index a7e1736e9cce..c9eb9e97a18d 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_BUILDCONFIG.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_BUILDCONFIG.gn
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/build/config/BUILDCONFIG.gn.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/build/config/BUILDCONFIG.gn.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/build/config/BUILDCONFIG.gn
@@ -136,7 +136,8 @@ declare_args() {
is_official_build = false
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_compiler_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_compiler_BUILD.gn
index 85c5c8963128..7945516dc450 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_compiler_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_compiler_BUILD.gn
@@ -1,6 +1,15 @@
---- src/3rdparty/chromium/build/config/compiler/BUILD.gn.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/build/config/compiler/BUILD.gn.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/build/config/compiler/BUILD.gn
-@@ -243,13 +243,16 @@ config("no_unresolved_symbols") {
+@@ -198,7 +198,7 @@ declare_args() {
+ # This greatly reduces the size of debug builds, at the cost of
+ # debugging information which is required by some specialized
+ # debugging tools.
+- simple_template_names = is_clang && !is_nacl && !is_win && !is_apple
++ simple_template_names = is_clang && !is_nacl && !is_win && !is_apple && !is_bsd
+ }
+
+ declare_args() {
+@@ -262,13 +262,16 @@ config("no_unresolved_symbols") {
# Compiler instrumentation can introduce dependencies in DSOs to symbols in
# the executable they are loaded into, so they are unresolved at link-time.
config("no_unresolved_symbols") {
@@ -18,7 +27,7 @@
}
# compiler ---------------------------------------------------------------------
-@@ -513,6 +516,10 @@ config("compiler") {
+@@ -555,6 +558,10 @@ config("compiler") {
}
}
@@ -29,16 +38,16 @@
# Linux-specific compiler flags setup.
# ------------------------------------
if (use_gold) {
-@@ -882,7 +889,7 @@ config("compiler") {
- # * Apple platforms (e.g. MacOS, iPhone, iPad) aren't supported because xcode
- # lldb doesn't have the needed changes yet.
- # TODO(crbug.com/1379070): Remove if the upstream default ever changes.
-- if (is_clang && !is_nacl && !is_win && !is_apple) {
-+ if (is_clang && !is_nacl && !is_win && !is_apple && !is_bsd) {
- cflags_cc += [ "-gsimple-template-names" ]
- }
+@@ -823,7 +830,7 @@ config("compiler") {
-@@ -1065,7 +1072,7 @@ config("compiler_cpu_abi") {
+ ldflags += [ "-Wl,-mllvm,-import-instr-limit=$import_instr_limit" ]
+
+- if (!is_chromeos) {
++ if (!is_chromeos && !is_bsd) {
+ # TODO(https://crbug.com/972449): turn on for ChromeOS when that
+ # toolchain has this flag.
+ # We only use one version of LLVM within a build so there's no need to
+@@ -1170,7 +1177,7 @@ config("compiler_cpu_abi") {
]
}
} else if (current_cpu == "arm") {
@@ -47,7 +56,7 @@
!(is_chromeos_lacros && is_chromeos_device)) {
cflags += [ "--target=arm-linux-gnueabihf" ]
ldflags += [ "--target=arm-linux-gnueabihf" ]
-@@ -1083,7 +1090,7 @@ config("compiler_cpu_abi") {
+@@ -1188,7 +1195,7 @@ config("compiler_cpu_abi") {
cflags += [ "-mtune=$arm_tune" ]
}
} else if (current_cpu == "arm64") {
@@ -56,7 +65,7 @@
!(is_chromeos_lacros && is_chromeos_device)) {
cflags += [ "--target=aarch64-linux-gnu" ]
ldflags += [ "--target=aarch64-linux-gnu" ]
-@@ -1418,7 +1425,7 @@ config("compiler_deterministic") {
+@@ -1523,7 +1530,7 @@ config("compiler_deterministic") {
# different build directory like "out/feature_a" and "out/feature_b" if
# we build same files with same compile flag.
# Other paths are already given in relative, no need to normalize them.
@@ -65,7 +74,7 @@
# TODO(https://crbug.com/1231236): Use -ffile-compilation-dir= here.
cflags += [
"-Xclang",
-@@ -1470,7 +1477,7 @@ config("clang_revision") {
+@@ -1575,7 +1582,7 @@ config("clang_revision") {
}
config("clang_revision") {
@@ -74,7 +83,7 @@
update_args = [
"--print-revision",
"--verify-version=$clang_version",
-@@ -1872,7 +1879,7 @@ config("default_warnings") {
+@@ -2005,7 +2012,7 @@ config("default_warnings") {
"-Wno-ignored-pragma-optimize",
]
@@ -83,7 +92,7 @@
cflags += [
# TODO(crbug.com/1343975) Evaluate and possibly enable.
"-Wno-deprecated-builtins",
-@@ -2054,7 +2061,7 @@ config("no_chromium_code") {
+@@ -2218,7 +2225,7 @@ config("no_chromium_code") {
# third-party libraries.
"-Wno-c++11-narrowing",
]
@@ -92,7 +101,7 @@
cflags += [
# Disabled for similar reasons as -Wunused-variable.
"-Wno-unused-but-set-variable",
-@@ -2570,7 +2577,7 @@ config("afdo") {
+@@ -2736,7 +2743,7 @@ config("afdo") {
# There are some targeted places that AFDO regresses, so we provide a separate
# config to allow AFDO to be disabled per-target.
config("afdo") {
@@ -101,8 +110,8 @@
cflags = []
if (clang_emit_debug_info_for_profiling) {
# Add the following flags to generate debug info for profiling.
-@@ -2589,7 +2596,7 @@ config("afdo") {
- }
+@@ -2763,7 +2770,7 @@ config("afdo") {
+ cflags += [ "-Wno-backend-plugin" ]
inputs = [ _clang_sample_profile ]
}
- } else if (auto_profile_path != "" && is_a_target_toolchain) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_compiler_pgo_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_compiler_pgo_BUILD.gn
new file mode 100644
index 000000000000..e5f736b1a13c
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_compiler_pgo_BUILD.gn
@@ -0,0 +1,19 @@
+--- src/3rdparty/chromium/build/config/compiler/pgo/BUILD.gn.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/build/config/compiler/pgo/BUILD.gn
+@@ -143,13 +143,14 @@ config("pgo_optimization_flags") {
+
+ # Enable basic block layout based on the extended TSP problem. This aims to
+ # improve icache utilization and reduce the binary size.
+- if (use_thin_lto) {
++ # __clang_major__ >= 15
++ if (use_thin_lto && !is_bsd) {
+ if (is_win) {
+ ldflags = [ "-mllvm:-enable-ext-tsp-block-placement=1" ]
+ } else {
+ ldflags = [ "-Wl,-mllvm,-enable-ext-tsp-block-placement=1" ]
+ }
+- } else {
++ } else if (!is_bsd) {
+ cflags += [
+ "-mllvm",
+ "-enable-ext-tsp-block-placement=1",
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_freetype_freetype.gni b/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_freetype_freetype.gni
deleted file mode 100644
index ab30256825eb..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_freetype_freetype.gni
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/3rdparty/chromium/build/config/freetype/freetype.gni.orig 2023-08-23 22:56:29 UTC
-+++ src/3rdparty/chromium/build/config/freetype/freetype.gni
-@@ -10,7 +10,5 @@ declare_args() {
- # than version 2.7.1 and have color bitmap support compiled in. WARNING:
- # System FreeType configurations other than as described WILL INTRODUCE TEXT
- # RENDERING AND SECURITY REGRESSIONS.
-- use_system_freetype = false
-- use_qt_freetype = false
-- qt_freetype_config = ""
-+ use_system_freetype = true
- }
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_linux_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_linux_BUILD.gn
new file mode 100644
index 000000000000..63e443ae5628
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_linux_BUILD.gn
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/build/config/linux/BUILD.gn.orig 2022-05-19 14:06:27 UTC
++++ src/3rdparty/chromium/build/config/linux/BUILD.gn
+@@ -41,7 +41,7 @@ config("runtime_library") {
+ }
+
+ if ((!is_chromeos || default_toolchain != "//build/toolchain/cros:target") &&
+- (!use_custom_libcxx || current_cpu == "mipsel")) {
++ (!use_custom_libcxx || current_cpu == "mipsel") && !is_bsd) {
+ libs = [ "atomic" ]
+ }
+ }
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_linux_pkg-config.py b/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_linux_pkg-config.py
index 5bf1f6d7757d..afea5c617dfa 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_linux_pkg-config.py
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_linux_pkg-config.py
@@ -1,11 +1,11 @@
---- src/3rdparty/chromium/build/config/linux/pkg-config.py.orig 2024-02-10 00:23:21 UTC
+--- src/3rdparty/chromium/build/config/linux/pkg-config.py.orig 2024-01-23 10:07:29 UTC
+++ src/3rdparty/chromium/build/config/linux/pkg-config.py
@@ -108,7 +108,7 @@ def main():
# If this is run on non-Linux platforms, just return nothing and indicate
# success. This allows us to "kind of emulate" a Linux build from other
# platforms.
- if 'linux' not in sys.platform and 'darwin' not in sys.platform:
-+ if not sys.platform.startswith(tuple(['linux', 'openbsd', 'freebsd', 'darwin'])):
++ if not sys.platform.startswith(tuple(['linux', 'darwin', 'freebsd', 'openbsd'])):
print("[[],[],[],[],[]]")
return 0
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_ozone.gni b/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_ozone.gni
index 122af743c6f6..763302535df5 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_ozone.gni
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_ozone.gni
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/build/config/ozone.gni.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/build/config/ozone.gni.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/build/config/ozone.gni
-@@ -90,7 +90,15 @@ declare_args() {
+@@ -87,7 +87,15 @@ declare_args() {
} else if (is_chromeos_lacros) {
ozone_platform = "wayland"
ozone_platform_wayland = true
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_rust.gni b/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_rust.gni
deleted file mode 100644
index c0ed80bc9866..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_config_rust.gni
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/3rdparty/chromium/build/config/rust.gni.orig 2023-04-05 11:05:06 UTC
-+++ src/3rdparty/chromium/build/config/rust.gni
-@@ -135,7 +135,7 @@ if (enable_rust) {
- rust_sysroot = "//third_party/rust-toolchain"
- use_unverified_rust_toolchain = false
- } else {
-- if (host_os != "linux") {
-+ if (host_os != "linux" && host_os != "openbsd" && host_os != "freebsd") {
- assert(false,
- "Attempt to use Android Rust toolchain on an unsupported platform")
- }
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_toolchain_gcc__toolchain.gni b/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_toolchain_gcc__toolchain.gni
index c4d3cef02ebe..a83eea70421e 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_toolchain_gcc__toolchain.gni
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_toolchain_gcc__toolchain.gni
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/build/toolchain/gcc_toolchain.gni.orig 2023-11-20 16:08:07 UTC
+--- src/3rdparty/chromium/build/toolchain/gcc_toolchain.gni.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/build/toolchain/gcc_toolchain.gni
@@ -53,6 +53,13 @@ if (enable_resource_allowlist_generation) {
"enable_resource_allowlist_generation=true does not work for target_os=$target_os")
@@ -14,7 +14,7 @@
# This template defines a toolchain for something that works like gcc
# (including clang).
#
-@@ -839,22 +846,12 @@ template("clang_toolchain") {
+@@ -888,22 +895,12 @@ template("clang_toolchain") {
# use_gold too.
template("clang_toolchain") {
gcc_toolchain(target_name) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_toolchain_toolchain.gni b/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_toolchain_toolchain.gni
new file mode 100644
index 000000000000..ce33cb085585
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_build_toolchain_toolchain.gni
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/build/toolchain/toolchain.gni.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/build/toolchain/toolchain.gni
+@@ -67,7 +67,7 @@ if (host_os == "mac") {
+ host_shlib_extension = ".dylib"
+ } else if (host_os == "win") {
+ host_shlib_extension = ".dll"
+-} else if (host_os == "linux" || host_os == "aix") {
++} else if (is_posix) {
+ host_shlib_extension = ".so"
+ } else {
+ assert(false, "Host platform not supported")
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_cc_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_cc_BUILD.gn
index 36c7ea079dde..416cda0112e3 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_cc_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_cc_BUILD.gn
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/cc/BUILD.gn.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/cc/BUILD.gn.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/cc/BUILD.gn
-@@ -668,7 +668,7 @@ cc_test_static_library("test_support") {
+@@ -674,7 +674,7 @@ cc_test_static_library("test_support") {
if (enable_vulkan) {
deps += [ "//gpu/vulkan/init" ]
}
@@ -8,9 +8,9 @@
+ if (!is_android && !is_bsd) {
data_deps = [ "//third_party/mesa_headers" ]
}
- }
-@@ -913,7 +913,6 @@ cc_test("cc_unittests") {
- data = [ "//components/viz/test/data/" ]
+ if (skia_use_dawn) {
+@@ -929,7 +929,6 @@ cc_test("cc_unittests") {
+ data = [ "//components/test/data/viz/" ]
data_deps = [
"//testing/buildbot/filters:cc_unittests_filters",
- "//third_party/mesa_headers",
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_cc_base_features.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_cc_base_features.cc
new file mode 100644
index 000000000000..17cb349564cb
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_cc_base_features.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/cc/base/features.cc.orig 2023-12-12 22:08:45 UTC
++++ src/3rdparty/chromium/cc/base/features.cc
+@@ -85,7 +85,7 @@ CONSTINIT const base::Feature kUseDMSAAForTiles(
+ // be using a separate flag to control the launch on GL.
+ CONSTINIT const base::Feature kUseDMSAAForTiles(
+ "UseDMSAAForTiles",
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+ base::FEATURE_DISABLED_BY_DEFAULT
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_app__management__strings.grdp b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_app__management__strings.grdp
new file mode 100644
index 000000000000..a336b3f36bc5
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_app__management__strings.grdp
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/chrome/app/app_management_strings.grdp.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/chrome/app/app_management_strings.grdp
+@@ -188,7 +188,7 @@
+ You can open and edit supported files with this app from Finder or other apps. To control which files open this app by default, <ph name="BEGIN_LINK">&lt;a href="#"&gt;</ph>learn how to set default apps on your device<ph name="END_LINK">&lt;/a&gt;</ph>.
+ </message>
+ </if>
+- <if expr="is_fuchsia or is_linux">
++ <if expr="is_fuchsia or is_posix">
+ <message name="IDS_APP_MANAGEMENT_FILE_HANDLING_SET_DEFAULTS_LINK" desc="Further explanation of the File Handling API, including text describing the purpose of the toggle (referencing a generic Linux file browser app) and a link to a learn more link for default filetype associations.">
+ You can open and edit supported files with this app from your file browser or other apps. To control which files open this app by default, <ph name="BEGIN_LINK">&lt;a href="#"&gt;</ph>learn how to set default apps on your device<ph name="END_LINK">&lt;/a&gt;</ph>.
+ </message>
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_chromium__strings.grd b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_chromium__strings.grd
new file mode 100644
index 000000000000..378a00f12881
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_chromium__strings.grd
@@ -0,0 +1,38 @@
+--- src/3rdparty/chromium/chrome/app/chromium_strings.grd.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/chrome/app/chromium_strings.grd
+@@ -315,7 +315,7 @@ If you update this file, be sure also to update google
+ Welcome to Chromium; new browser window opened
+ </message>
+ </if>
+- <if expr="is_macosx or is_linux">
++ <if expr="is_macosx or is_posix">
+ <message name="IDS_FIRST_RUN_DIALOG_WINDOW_TITLE" desc="Window title of First Run dialog on Mac and Linux, displayed in title bar">
+ Welcome to Chromium
+ </message>
+@@ -465,7 +465,7 @@ If you update this file, be sure also to update google
+ To get future Chromium updates, you'll need Windows 10 or later. This computer is using Windows 8.1.
+ </message>
+ </if>
+- <if expr="is_linux">
++ <if expr="is_posix">
+ <message name="IDS_LINUX_OBSOLETE" desc="A message displayed on an at-launch infobar and about:help warning the user that the OS version they are using is no longer supported.">
+ Chromium may not function correctly because it is no longer supported on this Linux distribution
+ </message>
+@@ -870,7 +870,7 @@ Permissions you've already given to websites and apps
+ </message>
+ </if>
+
+- <if expr="is_win or is_macosx or is_linux">
++ <if expr="is_win or is_macosx or is_posix">
+ <message name="IDS_RELAUNCH_TO_UPDATE_ALT" desc="Alternate text label of the relaunch to update Chrome menu item" translateable="false">
+ Not used in Chromium. Placeholder to keep resource maps in sync.
+ </message>
+@@ -1255,7 +1255,7 @@ Permissions you've already given to websites and apps
+ </message>
+ </if>
+
+- <if expr="is_win or is_macosx or is_linux">
++ <if expr="is_win or is_macosx or is_posix">
+ <message name="IDS_UPDATE_RECOMMENDED_DIALOG_TITLE_ALT" desc="Alternate window title for the Update Recommended dialog." translateable="false">
+ Not used in Chromium. Placeholder to keep resource maps in sync.
+ </message>
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_generated__resources.grd b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_generated__resources.grd
new file mode 100644
index 000000000000..185d3fbc661b
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_generated__resources.grd
@@ -0,0 +1,92 @@
+--- src/3rdparty/chromium/chrome/app/generated_resources.grd.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/chrome/app/generated_resources.grd
+@@ -2,7 +2,7 @@
+
+ <!--
+ This file contains definitions of resources that will be translated for each
+-locale. The variables is_win, is_macosx, is_linux, and is_posix are available
++locale. The variables is_win, is_macosx, is_posix, and is_posix are available
+ for making strings OS specific. Other platform defines such as use_titlecase
+ are declared in tools/grit/grit_rule.gni.
+ -->
+@@ -3601,7 +3601,7 @@ are declared in tools/grit/grit_rule.gni.
+ </if>
+
+ <!-- Bluetooth Device Credentials (i.e. PIN/Passkey) dialog -->
+- <if expr="is_win or is_linux">
++ <if expr="is_win or is_posix">
+ <message name="IDS_BLUETOOTH_DEVICE_CREDENTIALS_TITLE" desc="Title of the Bluetooth device credentials prompt dialog.">
+ Device Credentials
+ </message>
+@@ -5432,7 +5432,7 @@ are declared in tools/grit/grit_rule.gni.
+ Read information about your browser, OS, device, installed software, registry values and files
+ </message>
+ </if>
+- <if expr="is_macosx or is_linux">
++ <if expr="is_macosx or is_posix">
+ <message name="IDS_EXTENSION_PROMPT_WARNING_ENTERPRISE_REPORTING_PRIVATE_ENABLED_LINUX_AND_MACOS" desc="Permission string for enterprise private reporting permission on Linux and MacOS.">
+ Read information about your browser, OS, device, installed software and files
+ </message>
+@@ -6145,7 +6145,7 @@ Keep your key file in a safe place. You will need it t
+ Old versions of Chrome Apps won't open on Windows devices after December 2022. Contact your administrator to update to a new version or remove this app.
+ </message>
+ </if>
+- <if expr="is_linux">
++ <if expr="is_posix">
+ <message name="IDS_FORCE_INSTALLED_DEPRECATED_APPS_CONTENT" desc="Content of the force installed deprecated app dialog">
+ Old versions of Chrome Apps won't open on Linux devices after December 2022. Contact your administrator to update to a new version or remove this app.
+ </message>
+@@ -6191,7 +6191,7 @@ Keep your key file in a safe place. You will need it t
+ Old versions of Chrome apps won't open on Windows devices after December 2022. You can check if there's a new version available.
+ </message>
+ </if>
+- <if expr="is_linux">
++ <if expr="is_posix">
+ <message name="IDS_DEPRECATED_APPS_MONITOR_RENDERER" desc="Dialog content that educates users that Chrome Apps will soon no longer launch.">
+ Old versions of Chrome apps won't open on Linux devices after December 2022. You can check if there's a new version available.
+ </message>
+@@ -10396,7 +10396,7 @@ Check your passwords anytime in <ph name="GOOGLE_PASSW
+ <message name="IDS_APP_MENU_BUTTON_UPDATE" desc="Short label next to app-menu button when an update is available.">
+ Update
+ </message>
+- <if expr="is_win or is_macosx or is_linux">
++ <if expr="is_win or is_macosx or is_posix">
+ <message name="IDS_APP_MENU_BUTTON_UPDATE_ALT1" desc="Alternate short label next to app-menu button when an update is available.">
+ Finish update
+ </message>
+@@ -10743,7 +10743,7 @@ Check your passwords anytime in <ph name="GOOGLE_PASSW
+ Google Pay
+ </message>
+
+- <if expr="is_linux">
++ <if expr="is_posix">
+ <message name="IDS_SHOW_WINDOW_DECORATIONS" desc="The label of a radio button in the options dialog for using the system title bar and borders.">
+ Use system title bar and borders
+ </message>
+@@ -11728,7 +11728,7 @@ Check your passwords anytime in <ph name="GOOGLE_PASSW
+ </message>
+
+ <!-- Device Trust Consent dialog -->
+- <if expr="is_win or is_macosx or is_linux or is_chromeos">
++ <if expr="is_win or is_macosx or is_posix or is_chromeos">
+ <message name="IDS_DEVICE_SIGNALS_CONSENT_DIALOG_TITLE" desc="Title of the dialog shown when user consent is required to share device signals.">
+ Share information about your device?
+ </message>
+@@ -12136,7 +12136,7 @@ Please help our engineers fix this problem. Tell us wh
+ Set as default
+ </message>
+
+- <if expr="is_linux">
++ <if expr="is_posix">
+ <message name="IDS_MINIMIZE_WINDOW_MENU" desc="The Linux browser window menu item text for minimizing the window.">
+ Minimize
+ </message>
+@@ -14346,7 +14346,7 @@ Please help our engineers fix this problem. Tell us wh
+ Open Anyway
+ </message>
+
+- <if expr="is_win or is_macosx or is_linux">
++ <if expr="is_win or is_macosx or is_posix">
+ <message name="IDS_UTILITY_PROCESS_SYSTEM_SIGNALS_NAME" desc="The name of the utility process used to collect system signals. Only spawned on Windows, Mac or Linux.">
+ System Signals Utilities
+ </message>
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_google__chrome__strings.grd b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_google__chrome__strings.grd
new file mode 100644
index 000000000000..fdd0c329a1d4
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_google__chrome__strings.grd
@@ -0,0 +1,38 @@
+--- src/3rdparty/chromium/chrome/app/google_chrome_strings.grd.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/chrome/app/google_chrome_strings.grd
+@@ -301,7 +301,7 @@ chromium_strings.grd. -->
+ Welcome to Chrome; new browser window opened
+ </message>
+ </if>
+- <if expr="is_macosx or is_linux">
++ <if expr="is_macosx or is_posix">
+ <message name="IDS_FIRST_RUN_DIALOG_WINDOW_TITLE" desc="Window title of First Run dialog on Mac and Linux, displayed in title bar">
+ Welcome to Google Chrome
+ </message>
+@@ -453,7 +453,7 @@ chromium_strings.grd. -->
+ To get future Google Chrome updates, you'll need Windows 10 or later. This computer is using Windows 8.1.
+ </message>
+ </if>
+- <if expr="is_linux">
++ <if expr="is_posix">
+ <message name="IDS_LINUX_OBSOLETE" desc="A message displayed on an at-launch infobar and about:help warning the user that the OS version they are using is no longer supported.">
+ Google Chrome may not function correctly because it is no longer supported on this Linux distribution
+ </message>
+@@ -855,7 +855,7 @@ Permissions you've already given to websites and apps
+ </if>
+ </if>
+
+- <if expr="is_win or is_macosx or is_linux">
++ <if expr="is_win or is_macosx or is_posix">
+ <if expr="use_titlecase">
+ <message name="IDS_RELAUNCH_TO_UPDATE_ALT" desc="Alternate text label of the relaunch to update Chrome menu item">
+ Relaunch to Update - Your tabs will reopen
+@@ -1278,7 +1278,7 @@ Permissions you've already given to websites and apps
+ </message>
+ </if>
+
+- <if expr="is_win or is_macosx or is_linux">
++ <if expr="is_win or is_macosx or is_posix">
+ <message name="IDS_UPDATE_RECOMMENDED_DIALOG_TITLE_ALT" desc="Alternate window title for the Update Recommended dialog.">
+ Relaunch to finish Chrome update
+ </message>
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_profiles__strings.grdp b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_profiles__strings.grdp
new file mode 100644
index 000000000000..1d8767a94030
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_profiles__strings.grdp
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/chrome/app/profiles_strings.grdp.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/chrome/app/profiles_strings.grdp
+@@ -54,7 +54,7 @@
+ Add Profile...
+ </message>
+ </if>
+- <if expr="is_linux">
++ <if expr="is_posix">
+ <message name="IDS_PROFILES_ADD_PROFILE_LABEL" desc="Menu item for adding a new profile.">
+ Add profile...
+ </message>
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_settings__strings.grdp b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_settings__strings.grdp
new file mode 100644
index 000000000000..09d3a37079d2
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_settings__strings.grdp
@@ -0,0 +1,35 @@
+--- src/3rdparty/chromium/chrome/app/settings_strings.grdp.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/chrome/app/settings_strings.grdp
+@@ -183,12 +183,12 @@
+ Manage accessibility features
+ </message>
+ </if>
+- <if expr="is_win or is_linux or is_macosx">
++ <if expr="is_win or is_posix or is_macosx">
+ <message name="IDS_SETTINGS_OVERSCROLL_HISTORY_NAVIGATION_TITLE" desc="Title for the overscroll history navigation setting, which allows you to navigate back and forward by swiping left or right with a touch device.">
+ Swipe between pages
+ </message>
+ </if>
+- <if expr="is_win or is_linux">
++ <if expr="is_win or is_posix">
+ <message name="IDS_SETTINGS_OVERSCROLL_HISTORY_NAVIGATION_SUBTITLE" desc="Subtitle for the overscroll history navigation setting, which allows you to navigate back and forward by swiping left or right with a touch device.">
+ Navigate back and forward with swipe gesture
+ </message>
+@@ -222,7 +222,7 @@
+ Theme
+ </message>
+ </if>
+- <if expr="is_linux">
++ <if expr="is_posix">
+ <message name="IDS_SETTINGS_GTK_THEME" desc="Text of the label describing the system (GTK) browser theme on Linux">
+ GTK
+ </message>
+@@ -242,7 +242,7 @@
+ Use Classic
+ </message>
+ </if>
+- <if expr="not is_linux or is_chromeos or is_fuchsia">
++ <if expr="not is_posix or is_chromeos or is_fuchsia">
+ <message name="IDS_SETTINGS_RESET_TO_DEFAULT_THEME" desc="Name of the control which resets the browser theme back to the default theme.">
+ Reset to default
+ </message>
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_theme_chrome__unscaled__resources.grd b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_theme_chrome__unscaled__resources.grd
new file mode 100644
index 000000000000..f3ceafba7bcb
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_theme_chrome__unscaled__resources.grd
@@ -0,0 +1,29 @@
+--- src/3rdparty/chromium/chrome/app/theme/chrome_unscaled_resources.grd.orig 2023-07-16 15:47:57 UTC
++++ src/3rdparty/chromium/chrome/app/theme/chrome_unscaled_resources.grd
+@@ -16,7 +16,7 @@
+ <includes>
+ <if expr="_google_chrome">
+ <then>
+- <if expr="is_linux">
++ <if expr="is_posix">
+ <then>
+ <include name="IDR_PRODUCT_LOGO_64" file="google_chrome/linux/product_logo_64.png" type="BINDATA" />
+ <include name="IDR_PRODUCT_LOGO_128" file="google_chrome/linux/product_logo_128.png" type="BINDATA" />
+@@ -61,7 +61,7 @@
+ <else> <!-- not _google_chrome -->
+ <if expr="_is_chrome_for_testing_branded">
+ <then>
+- <if expr="is_linux">
++ <if expr="is_posix">
+ <then>
+ <include name="IDR_PRODUCT_LOGO_64" file="google_chrome/google_chrome_for_testing/linux/product_logo_64.png" type="BINDATA" />
+ <include name="IDR_PRODUCT_LOGO_128" file="google_chrome/google_chrome_for_testing/linux/product_logo_128.png" type="BINDATA" />
+@@ -75,7 +75,7 @@
+ </if>
+ </then>
+ <else> <!-- not _is_chrome_for_testing_branded -->
+- <if expr="is_linux">
++ <if expr="is_posix">
+ <then>
+ <include name="IDR_PRODUCT_LOGO_64" file="chromium/linux/product_logo_64.png" type="BINDATA" />
+ <include name="IDR_PRODUCT_LOGO_128" file="chromium/linux/product_logo_128.png" type="BINDATA" />
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_theme_theme__resources.grd b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_theme_theme__resources.grd
new file mode 100644
index 000000000000..10224bce93ce
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_app_theme_theme__resources.grd
@@ -0,0 +1,59 @@
+--- src/3rdparty/chromium/chrome/app/theme/theme_resources.grd.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/chrome/app/theme/theme_resources.grd
+@@ -146,14 +146,14 @@
+ </if>
+ <if expr="_google_chrome">
+ <then>
+- <if expr="is_linux">
++ <if expr="is_posix">
+ <then>
+ <structure type="chrome_scaled_image" name="IDR_PRODUCT_LOGO_16" file="google_chrome/linux/product_logo_16.png" />
+ <structure type="chrome_scaled_image" name="IDR_PRODUCT_LOGO_32" file="google_chrome/linux/product_logo_32.png" />
+ <structure type="chrome_scaled_image" name="IDR_PRODUCT_LOGO_32_BETA" file="google_chrome/linux/product_logo_32_beta.png" />
+ <structure type="chrome_scaled_image" name="IDR_PRODUCT_LOGO_32_DEV" file="google_chrome/linux/product_logo_32_dev.png" />
+ </then>
+- <else> <!-- not is_linux -->
++ <else> <!-- not is_posix -->
+ <if expr="not is_android">
+ <structure type="chrome_scaled_image" name="IDR_PRODUCT_LOGO_16" file="google_chrome/product_logo_16.png" />
+ <structure type="chrome_scaled_image" name="IDR_PRODUCT_LOGO_32" file="google_chrome/product_logo_32.png" />
+@@ -161,7 +161,7 @@
+ <structure type="chrome_scaled_image" name="IDR_PRODUCT_LOGO_32_BETA" file="google_chrome/product_logo_32_beta.png" />
+ <structure type="chrome_scaled_image" name="IDR_PRODUCT_LOGO_32_DEV" file="google_chrome/product_logo_32_dev.png" />
+ </else>
+- </if> <!-- is_linux -->
++ </if> <!-- is_posix -->
+ <structure type="chrome_scaled_image" name="IDR_PRODUCT_LOGO_32_CANARY" file="google_chrome/product_logo_32_canary.png" />
+ <if expr="not is_android">
+ <structure type="chrome_scaled_image" name="IDR_PRODUCT_LOGO_NAME_22" file="google_chrome/product_logo_name_22.png" />
+@@ -173,7 +173,7 @@
+ <else> <!-- not _google_chrome -->
+ <if expr="_is_chrome_for_testing_branded">
+ <then>
+- <if expr="is_linux">
++ <if expr="is_posix">
+ <then>
+ <structure type="chrome_scaled_image" name="IDR_PRODUCT_LOGO_16" file="google_chrome/google_chrome_for_testing/linux/product_logo_16.png" />
+ <structure type="chrome_scaled_image" name="IDR_PRODUCT_LOGO_32" file="google_chrome/google_chrome_for_testing/linux/product_logo_32.png" />
+@@ -182,10 +182,10 @@
+ <structure type="chrome_scaled_image" name="IDR_PRODUCT_LOGO_16" file="google_chrome/google_chrome_for_testing/product_logo_16.png" />
+ <structure type="chrome_scaled_image" name="IDR_PRODUCT_LOGO_32" file="google_chrome/google_chrome_for_testing/product_logo_32.png" />
+ </else>
+- </if> <!-- is_linux -->
++ </if> <!-- is_posix -->
+ </then>
+ <else> <!-- not _is_chrome_for_testing_branded -->
+- <if expr="is_linux">
++ <if expr="is_posix">
+ <then>
+ <structure type="chrome_scaled_image" name="IDR_PRODUCT_LOGO_16" file="chromium/linux/product_logo_16.png" />
+ <structure type="chrome_scaled_image" name="IDR_PRODUCT_LOGO_32" file="chromium/linux/product_logo_32.png" />
+@@ -194,7 +194,7 @@
+ <structure type="chrome_scaled_image" name="IDR_PRODUCT_LOGO_16" file="chromium/product_logo_16.png" />
+ <structure type="chrome_scaled_image" name="IDR_PRODUCT_LOGO_32" file="chromium/product_logo_32.png" />
+ </else>
+- </if> <!-- is_linux -->
++ </if> <!-- is_posix -->
+ </else>
+ </if> <!-- _is_chrome_for_testing_branded -->
+ <structure type="chrome_scaled_image" name="IDR_PRODUCT_LOGO_NAME_22" file="chromium/product_logo_name_22.png" />
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_BUILD.gn
new file mode 100644
index 000000000000..95970a4cb06a
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_BUILD.gn
@@ -0,0 +1,16 @@
+--- src/3rdparty/chromium/chrome/browser/BUILD.gn.orig 2023-12-12 22:08:45 UTC
++++ src/3rdparty/chromium/chrome/browser/BUILD.gn
+@@ -6312,6 +6312,13 @@ static_library("browser") {
+ }
+ }
+
++ if (is_bsd) {
++ sources -= [
++ "metrics/bluetooth_metrics_provider.cc",
++ "metrics/bluetooth_metrics_provider.h",
++ ]
++ }
++
+ if (is_linux && use_dbus) {
+ sources += [
+ "dbus_memory_pressure_evaluator_linux.cc",
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_custom__handlers_chrome__protocol__handler__registry__delegate.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_custom__handlers_chrome__protocol__handler__registry__delegate.cc
new file mode 100644
index 000000000000..808db0af5867
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_custom__handlers_chrome__protocol__handler__registry__delegate.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/chrome/browser/custom_handlers/chrome_protocol_handler_registry_delegate.cc.orig 2023-12-12 22:08:45 UTC
++++ src/3rdparty/chromium/chrome/browser/custom_handlers/chrome_protocol_handler_registry_delegate.cc
+@@ -77,7 +77,7 @@ bool ChromeProtocolHandlerRegistryDelegate::ShouldRemo
+ // If true default protocol handlers will be removed if the OS level
+ // registration for a protocol is no longer Chrome.
+ bool ChromeProtocolHandlerRegistryDelegate::ShouldRemoveHandlersNotInOS() {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // We don't do this on Linux as the OS registration there is not reliable,
+ // and Chrome OS doesn't have any notion of OS registration.
+ // TODO(benwells): When Linux support is more reliable remove this
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_BUILD.gn
new file mode 100644
index 000000000000..06da7024e1e3
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_BUILD.gn
@@ -0,0 +1,13 @@
+--- src/3rdparty/chromium/chrome/browser/extensions/BUILD.gn.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/chrome/browser/extensions/BUILD.gn
+@@ -1372,6 +1372,10 @@ static_library("extensions") {
+ deps += [ "//chrome/services/printing/public/mojom" ]
+ }
+
++ if (is_bsd) {
++ sources -= [ "api/image_writer_private/removable_storage_provider_linux.cc" ]
++ }
++
+ if (enable_service_discovery) {
+ sources += [
+ "api/mdns/mdns_api.cc",
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_api__browser__context__keyed__service__factories.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_api__browser__context__keyed__service__factories.cc
new file mode 100644
index 000000000000..06a864400955
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_api__browser__context__keyed__service__factories.cc
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/chrome/browser/extensions/api/api_browser_context_keyed_service_factories.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/chrome/browser/extensions/api/api_browser_context_keyed_service_factories.cc
+@@ -43,7 +43,7 @@
+ #include "extensions/browser/api/bluetooth_low_energy/bluetooth_low_energy_api.h"
+ #include "extensions/browser/api/networking_private/networking_private_delegate_factory.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/extensions/api/system_indicator/system_indicator_manager_factory.h"
+ #endif
+
+@@ -108,7 +108,7 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt
+ extensions::SettingsPrivateEventRouterFactory::GetInstance();
+ extensions::SettingsOverridesAPI::GetFactoryInstance();
+ extensions::SidePanelService::GetFactoryInstance();
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ extensions::SystemIndicatorManagerFactory::GetInstance();
+ #endif
+ extensions::TabGroupsEventRouterFactory::GetInstance();
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_enterprise__reporting__private_chrome__desktop__report__request__helper.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_enterprise__reporting__private_chrome__desktop__report__request__helper.cc
new file mode 100644
index 000000000000..5f0523de5f4c
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_enterprise__reporting__private_chrome__desktop__report__request__helper.cc
@@ -0,0 +1,29 @@
+--- src/3rdparty/chromium/chrome/browser/extensions/api/enterprise_reporting_private/chrome_desktop_report_request_helper.cc.orig 2022-07-22 17:30:31 UTC
++++ src/3rdparty/chromium/chrome/browser/extensions/api/enterprise_reporting_private/chrome_desktop_report_request_helper.cc
+@@ -24,7 +24,7 @@
+ #include "base/win/registry.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "base/environment.h"
+ #include "base/nix/xdg_util.h"
+ #endif
+@@ -256,7 +256,7 @@ base::FilePath GetEndpointVerificationDir() {
+ bool got_path = false;
+ #if BUILDFLAG(IS_WIN)
+ got_path = base::PathService::Get(base::DIR_LOCAL_APP_DATA, &path);
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ std::unique_ptr<base::Environment> env(base::Environment::Create());
+ path = base::nix::GetXDGDirectory(env.get(), base::nix::kXdgConfigHomeEnvVar,
+ base::nix::kDotConfigDir);
+@@ -267,7 +267,7 @@ base::FilePath GetEndpointVerificationDir() {
+ if (!got_path)
+ return path;
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ path = path.AppendASCII("google");
+ #else
+ path = path.AppendASCII("Google");
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.cc
new file mode 100644
index 000000000000..277b0a7db4ab
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/chrome/browser/extensions/api/enterprise_reporting_private/conversion_utils.cc.orig 2022-11-30 08:12:58 UTC
++++ src/3rdparty/chromium/chrome/browser/extensions/api/enterprise_reporting_private/conversion_utils.cc
+@@ -8,7 +8,7 @@
+
+ #include "build/build_config.h"
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+
+ #include <memory>
+ #include <utility>
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.h
new file mode 100644
index 000000000000..36906235599b
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.h
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/chrome/browser/extensions/api/enterprise_reporting_private/conversion_utils.h.orig 2022-08-31 12:19:35 UTC
++++ src/3rdparty/chromium/chrome/browser/extensions/api/enterprise_reporting_private/conversion_utils.h
+@@ -7,7 +7,7 @@
+
+ #include "build/build_config.h"
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+
+ #include <vector>
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.cc
new file mode 100644
index 000000000000..971325d39aff
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.cc
@@ -0,0 +1,38 @@
+--- src/3rdparty/chromium/chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_private_api.cc.orig 2023-04-28 17:01:32 UTC
++++ src/3rdparty/chromium/chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_private_api.cc
+@@ -32,7 +32,7 @@
+ #include "components/reporting/util/statusor.h"
+ #endif
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/strings/string_util.h"
+ #include "chrome/browser/enterprise/signals/signals_aggregator_factory.h"
+ #include "chrome/browser/extensions/api/enterprise_reporting_private/conversion_utils.h"
+@@ -149,7 +149,7 @@ api::enterprise_reporting_private::ContextInfo ToConte
+ return info;
+ }
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+
+ device_signals::SignalsAggregationRequest CreateAggregationRequest(
+ device_signals::SignalName signal_name) {
+@@ -210,7 +210,7 @@ EnterpriseReportingPrivateGetDeviceIdFunction::
+
+ // getPersistentSecret
+
+-#if !BUILDFLAG(IS_LINUX)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+
+ EnterpriseReportingPrivateGetPersistentSecretFunction::
+ EnterpriseReportingPrivateGetPersistentSecretFunction() = default;
+@@ -637,7 +637,7 @@ void EnterpriseReportingPrivateEnqueueRecordFunction::
+ }
+ #endif
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+
+ // getFileSystemInfo
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.h
new file mode 100644
index 000000000000..f8809f86b0d8
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.h
@@ -0,0 +1,29 @@
+--- src/3rdparty/chromium/chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_private_api.h.orig 2023-03-09 06:31:50 UTC
++++ src/3rdparty/chromium/chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_private_api.h
+@@ -20,7 +20,7 @@
+ #include "components/reporting/proto/synced/record.pb.h"
+ #include "components/reporting/proto/synced/record_constants.pb.h"
+ #include "components/reporting/util/statusor.h"
+-#elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/time/time.h"
+ #include "components/device_signals/core/browser/signals_types.h"
+ #endif // BUILDFLAG(IS_CHROMEOS)
+@@ -56,7 +56,7 @@ class EnterpriseReportingPrivateGetDeviceIdFunction :
+ ~EnterpriseReportingPrivateGetDeviceIdFunction() override;
+ };
+
+-#if !BUILDFLAG(IS_LINUX)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+
+ class EnterpriseReportingPrivateGetPersistentSecretFunction
+ : public ExtensionFunction {
+@@ -266,7 +266,7 @@ class EnterpriseReportingPrivateEnqueueRecordFunction
+
+ #endif
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+
+ class EnterpriseReportingPrivateGetFileSystemInfoFunction
+ : public ExtensionFunction {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_image__writer__private_removable__storage__provider.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_image__writer__private_removable__storage__provider.cc
new file mode 100644
index 000000000000..87a92318daf3
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_image__writer__private_removable__storage__provider.cc
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/chrome/browser/extensions/api/image_writer_private/removable_storage_provider.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/chrome/browser/extensions/api/image_writer_private/removable_storage_provider.cc
+@@ -20,6 +20,7 @@ static base::LazyInstance<scoped_refptr<StorageDeviceL
+
+ void RemovableStorageProvider::GetAllDevices(DeviceListReadyCallback callback) {
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
++#if !BUILDFLAG(IS_BSD)
+ if (g_test_device_list.Get().get() != nullptr) {
+ base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask(
+ FROM_HERE,
+@@ -33,6 +34,9 @@ void RemovableStorageProvider::GetAllDevices(DeviceLis
+ base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN},
+ base::BindOnce(&RemovableStorageProvider::PopulateDeviceList),
+ std::move(callback));
++#else
++ NOTIMPLEMENTED();
++#endif
+ }
+
+ // static
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_messaging_native__process__launcher__posix.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_messaging_native__process__launcher__posix.cc
new file mode 100644
index 000000000000..91fcc20ed463
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_messaging_native__process__launcher__posix.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/chrome/browser/extensions/api/messaging/native_process_launcher_posix.cc.orig 2022-02-28 16:54:41 UTC
++++ src/3rdparty/chromium/chrome/browser/extensions/api/messaging/native_process_launcher_posix.cc
+@@ -82,7 +82,7 @@ bool NativeProcessLauncher::LaunchNativeProcess(
+
+ // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ // Don't use no_new_privs mode, e.g. in case the host needs to use sudo.
+ options.allow_new_privs = true;
+ #endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_passwords__private_passwords__private__delegate__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_passwords__private_passwords__private__delegate__impl.cc
new file mode 100644
index 000000000000..802634836f97
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_passwords__private_passwords__private__delegate__impl.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl.cc
+@@ -603,7 +603,7 @@ void PasswordsPrivateDelegateImpl::OnFetchingFamilyMem
+ }
+
+ void PasswordsPrivateDelegateImpl::OsReauthTimeoutCall() {
+-#if !BUILDFLAG(IS_LINUX)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+ PasswordsPrivateEventRouter* router =
+ PasswordsPrivateEventRouterFactory::GetForProfile(profile_);
+ if (router) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_runtime_chrome__runtime__api__delegate.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_runtime_chrome__runtime__api__delegate.cc
new file mode 100644
index 000000000000..5c9454eeb598
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_runtime_chrome__runtime__api__delegate.cc
@@ -0,0 +1,13 @@
+--- src/3rdparty/chromium/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc.orig 2023-09-29 10:14:06 UTC
++++ src/3rdparty/chromium/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc
+@@ -280,7 +280,9 @@ bool ChromeRuntimeAPIDelegate::GetPlatformInfo(Platfor
+ } else if (strcmp(os, "linux") == 0) {
+ info->os = extensions::api::runtime::PlatformOs::kLinux;
+ } else if (strcmp(os, "openbsd") == 0) {
+- info->os = extensions::api::runtime::PlatformOs::kOpenbsd;
++ info->os = extensions::api::runtime::PlatformOs::kLinux;
++ } else if (strcmp(os, "freebsd") == 0) {
++ info->os = extensions::api::runtime::PlatformOs::kLinux;
+ } else if (strcmp(os, "fuchsia") == 0) {
+ info->os = extensions::api::runtime::PlatformOs::kFuchsia;
+ } else {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_settings__private_prefs__util.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_settings__private_prefs__util.cc
new file mode 100644
index 000000000000..ab7ab9a7009d
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_settings__private_prefs__util.cc
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/chrome/browser/extensions/api/settings_private/prefs_util.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/chrome/browser/extensions/api/settings_private/prefs_util.cc
+@@ -199,7 +199,7 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlist
+ (*s_allowlist)[::prefs::kSidePanelHorizontalAlignment] =
+ settings_api::PrefType::PREF_TYPE_BOOLEAN;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ (*s_allowlist)[::prefs::kUseCustomChromeFrame] =
+ settings_api::PrefType::PREF_TYPE_BOOLEAN;
+ #endif
+@@ -211,7 +211,7 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlist
+ settings_api::PrefType::PREF_TYPE_STRING;
+ (*s_allowlist)[::prefs::kPolicyThemeColor] =
+ settings_api::PrefType::PREF_TYPE_NUMBER;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ (*s_allowlist)[::prefs::kSystemTheme] =
+ settings_api::PrefType::PREF_TYPE_NUMBER;
+ #endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_tabs_tabs__api.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_tabs_tabs__api.cc
new file mode 100644
index 000000000000..0a42e29cfbed
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_tabs_tabs__api.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/chrome/browser/extensions/api/tabs/tabs_api.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/chrome/browser/extensions/api/tabs/tabs_api.cc
+@@ -860,7 +860,7 @@ ExtensionFunction::ResponseAction WindowsCreateFunctio
+ // ui::SHOW_STATE_MINIMIZED above, on Linux the window is not created as
+ // minimized.
+ // TODO(crbug.com/1410400): Remove this workaround when linux is fixed.
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // TODO(crbug.com/1410400): Find a fix for wayland as well.
+
+ // Must be defined inside IS_LINUX to compile on windows/mac.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_webrtc__logging__private_webrtc__logging__private__api.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_webrtc__logging__private_webrtc__logging__private__api.cc
new file mode 100644
index 000000000000..e0f8858decb5
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_webrtc__logging__private_webrtc__logging__private__api.cc
@@ -0,0 +1,29 @@
+--- src/3rdparty/chromium/chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc.orig 2023-12-12 22:08:45 UTC
++++ src/3rdparty/chromium/chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc
+@@ -31,7 +31,7 @@
+ #include "extensions/browser/process_manager.h"
+ #include "extensions/common/error_utils.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "extensions/common/permissions/permissions_data.h"
+ #endif
+
+@@ -40,7 +40,7 @@ bool CanEnableAudioDebugRecordingsFromExtension(
+ bool CanEnableAudioDebugRecordingsFromExtension(
+ const extensions::Extension* extension) {
+ bool enabled_by_permissions = false;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ if (extension) {
+ enabled_by_permissions =
+ extension->permissions_data()->active_permissions().HasAPIPermission(
+@@ -598,7 +598,7 @@ WebrtcLoggingPrivateGetLogsDirectoryFunction::Run() {
+
+ ExtensionFunction::ResponseAction
+ WebrtcLoggingPrivateGetLogsDirectoryFunction::Run() {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Unlike other WebrtcLoggingPrivate functions that take a RequestInfo object,
+ // this function shouldn't be called by a component extension on behalf of
+ // some web code. It returns a DirectoryEntry for use directly in the calling
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_webstore__private_webstore__private__api.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_webstore__private_webstore__private__api.cc
new file mode 100644
index 000000000000..da9a51a03c39
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_extensions_api_webstore__private_webstore__private__api.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
+@@ -924,7 +924,7 @@ void WebstorePrivateBeginInstallWithManifest3Function:
+ RequestExtensionApproval(contents);
+ return;
+ }
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ // Shows a parental permission dialog directly bypassing the extension
+ // install dialog view. The parental permission dialog contains a superset
+ // of data from the extension install dialog: requested extension
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_gcm_gcm__profile__service__factory.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_gcm_gcm__profile__service__factory.cc
new file mode 100644
index 000000000000..2f92338c3b30
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_gcm_gcm__profile__service__factory.cc
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/chrome/browser/gcm/gcm_profile_service_factory.cc.orig 2023-12-12 22:08:45 UTC
++++ src/3rdparty/chromium/chrome/browser/gcm/gcm_profile_service_factory.cc
+@@ -91,7 +91,7 @@ GCMProfileService* GCMProfileServiceFactory::GetForPro
+ // static
+ GCMProfileService* GCMProfileServiceFactory::GetForProfile(
+ content::BrowserContext* profile) {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // On desktop, incognito profiles are checked with IsIncognitoProfile().
+ // It's possible for non-incognito profiles to also be off-the-record.
+ bool is_profile_supported =
+@@ -131,7 +131,7 @@ KeyedService* GCMProfileServiceFactory::BuildServiceIn
+ KeyedService* GCMProfileServiceFactory::BuildServiceInstanceFor(
+ content::BrowserContext* context) const {
+ Profile* profile = Profile::FromBrowserContext(context);
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ DCHECK(!profile->IsIncognitoProfile());
+ #else
+ DCHECK(!profile->IsOffTheRecord());
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_gcm_instance__id_instance__id__profile__service__factory.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_gcm_instance__id_instance__id__profile__service__factory.cc
new file mode 100644
index 000000000000..de8d94187879
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_gcm_instance__id_instance__id__profile__service__factory.cc
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/chrome/browser/gcm/instance_id/instance_id_profile_service_factory.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/chrome/browser/gcm/instance_id/instance_id_profile_service_factory.cc
+@@ -16,7 +16,7 @@ namespace instance_id {
+ // static
+ InstanceIDProfileService* InstanceIDProfileServiceFactory::GetForProfile(
+ content::BrowserContext* profile) {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // On desktop, the guest profile is actually the primary OTR profile of
+ // the "regular" guest profile. The regular guest profile is never used
+ // directly by users. Also, user are not able to create child OTR profiles
+@@ -61,7 +61,7 @@ InstanceIDProfileServiceFactory::~InstanceIDProfileSer
+ KeyedService* InstanceIDProfileServiceFactory::BuildServiceInstanceFor(
+ content::BrowserContext* context) const {
+ Profile* profile = Profile::FromBrowserContext(context);
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // On desktop, incognito profiles are checked with IsIncognitoProfile().
+ // It's possible for non-incognito profiles to also be off-the-record.
+ bool is_incognito = profile->IsIncognitoProfile();
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_router_discovery_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_router_discovery_BUILD.gn
new file mode 100644
index 000000000000..483961bbc5a5
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_router_discovery_BUILD.gn
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/chrome/browser/media/router/discovery/BUILD.gn.orig 2022-10-24 13:33:33 UTC
++++ src/3rdparty/chromium/chrome/browser/media/router/discovery/BUILD.gn
+@@ -80,7 +80,7 @@ static_library("discovery") {
+ "media_sink_discovery_metrics.h",
+ ]
+
+- if (is_linux || is_chromeos) {
++ if ((is_linux || is_chromeos) && !is_bsd) {
+ sources += [ "discovery_network_list_wifi_linux.cc" ]
+ }
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_webrtc_capture__policy__utils.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_webrtc_capture__policy__utils.cc
index 77d0b039dee3..91903778b113 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_webrtc_capture__policy__utils.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_webrtc_capture__policy__utils.cc
@@ -1,20 +1,20 @@
---- src/3rdparty/chromium/chrome/browser/media/webrtc/capture_policy_utils.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/chrome/browser/media/webrtc/capture_policy_utils.cc.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/chrome/browser/media/webrtc/capture_policy_utils.cc
-@@ -118,7 +118,7 @@ AllowedScreenCaptureLevel GetAllowedCaptureLevel(const
+@@ -139,7 +139,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry
+ }
- bool IsGetDisplayMediaSetSelectAllScreensAllowedForAnySite(
- content::BrowserContext* context) {
+ bool IsGetAllScreensMediaAllowedForAnySite(content::BrowserContext* context) {
-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
Profile* profile = Profile::FromBrowserContext(context);
if (!profile) {
return false;
-@@ -145,7 +145,7 @@ bool IsGetDisplayMediaSetSelectAllScreensAllowedForAny
- bool IsGetDisplayMediaSetSelectAllScreensAllowed(
- content::BrowserContext* context,
- const GURL& url) {
+@@ -174,7 +174,7 @@ bool IsGetAllScreensMediaAllowedForAnySite(content::Br
+
+ bool IsGetAllScreensMediaAllowed(content::BrowserContext* context,
+ const GURL& url) {
-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
Profile* profile = Profile::FromBrowserContext(context);
- if (!profile)
+ if (!profile) {
return false;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_webrtc_chrome__screen__enumerator.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_webrtc_chrome__screen__enumerator.cc
index c53c86c51fbd..e3b515d773a3 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_webrtc_chrome__screen__enumerator.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_webrtc_chrome__screen__enumerator.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/chrome/browser/media/webrtc/chrome_screen_enumerator.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/chrome/browser/media/webrtc/chrome_screen_enumerator.cc.orig 2023-07-16 15:47:57 UTC
+++ src/3rdparty/chromium/chrome/browser/media/webrtc/chrome_screen_enumerator.cc
-@@ -20,7 +20,7 @@
+@@ -21,7 +21,7 @@
#if BUILDFLAG(IS_CHROMEOS_ASH)
#include "ash/shell.h"
#include "ui/aura/window.h"
@@ -9,7 +9,7 @@
#include "base/functional/callback.h"
#include "content/public/browser/desktop_capture.h"
#endif
-@@ -31,7 +31,7 @@ base::LazyInstance<std::vector<aura::Window*>>::Destru
+@@ -32,7 +32,7 @@ base::LazyInstance<std::vector<aura::Window*>>::Destru
root_windows_for_testing_ = LAZY_INSTANCE_INITIALIZER;
} // namespace
@@ -18,7 +18,7 @@
namespace {
base::LazyInstance<std::unique_ptr<webrtc::DesktopCapturer>>::DestructorAtExit
g_desktop_capturer_for_testing = LAZY_INSTANCE_INITIALIZER;
-@@ -77,7 +77,7 @@ blink::mojom::StreamDevicesSetPtr EnumerateScreens(
+@@ -78,7 +78,7 @@ blink::mojom::StreamDevicesSetPtr EnumerateScreens(
return stream_devices_set;
}
@@ -27,7 +27,7 @@
blink::mojom::StreamDevicesSetPtr EnumerateScreens(
blink::mojom::MediaStreamType stream_type) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
-@@ -128,7 +128,7 @@ void ChromeScreenEnumerator::SetRootWindowsForTesting(
+@@ -129,7 +129,7 @@ void ChromeScreenEnumerator::SetRootWindowsForTesting(
root_windows_for_testing_.Get() = std::move(root_windows);
}
@@ -36,9 +36,9 @@
void ChromeScreenEnumerator::SetDesktopCapturerForTesting(
std::unique_ptr<webrtc::DesktopCapturer> capturer) {
g_desktop_capturer_for_testing.Get() = std::move(capturer);
-@@ -144,7 +144,7 @@ void ChromeScreenEnumerator::EnumerateScreens(
- DCHECK(base::FeatureList::IsEnabled(
- features::kGetDisplayMediaSetAutoSelectAllScreens));
+@@ -143,7 +143,7 @@ void ChromeScreenEnumerator::EnumerateScreens(
+ DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
+ DCHECK(base::FeatureList::IsEnabled(blink::features::kGetAllScreensMedia));
-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_webrtc_webrtc__event__log__uploader.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_webrtc_webrtc__event__log__uploader.cc
index 226274e7a074..1997053b0136 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_webrtc_webrtc__event__log__uploader.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_webrtc_webrtc__event__log__uploader.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/chrome/browser/media/webrtc/webrtc_event_log_uploader.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/chrome/browser/media/webrtc/webrtc_event_log_uploader.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/chrome/browser/media/webrtc/webrtc_event_log_uploader.cc
-@@ -43,7 +43,7 @@ const char kProduct[] = "Chrome_ChromeOS";
+@@ -44,7 +44,7 @@ const char kProduct[] = "Chrome_ChromeOS";
const char kProduct[] = "Chrome_Mac";
#elif BUILDFLAG(IS_CHROMEOS_ASH)
const char kProduct[] = "Chrome_ChromeOS";
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_webrtc_webrtc__log__uploader.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_webrtc_webrtc__log__uploader.cc
index 647f9df48f94..de2a37accf04 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_webrtc_webrtc__log__uploader.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_webrtc_webrtc__log__uploader.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/chrome/browser/media/webrtc/webrtc_log_uploader.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/chrome/browser/media/webrtc/webrtc_log_uploader.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/chrome/browser/media/webrtc/webrtc_log_uploader.cc
-@@ -365,6 +365,10 @@ void WebRtcLogUploader::SetupMultipart(
+@@ -375,6 +375,10 @@ void WebRtcLogUploader::SetupMultipart(
const char product[] = "Chrome_ChromeOS";
#elif BUILDFLAG(IS_FUCHSIA)
const char product[] = "Chrome_Fuchsia";
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_webrtc_webrtc__logging__controller.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_webrtc_webrtc__logging__controller.cc
index fdebe744f962..c74047f8bfa1 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_webrtc_webrtc__logging__controller.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_webrtc_webrtc__logging__controller.cc
@@ -1,7 +1,7 @@
---- src/3rdparty/chromium/chrome/browser/media/webrtc/webrtc_logging_controller.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/chrome/browser/media/webrtc/webrtc_logging_controller.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/chrome/browser/media/webrtc/webrtc_logging_controller.cc
-@@ -23,10 +23,10 @@
- #include "content/public/browser/browser_context.h"
+@@ -25,10 +25,10 @@
+ #include "components/webrtc_logging/browser/text_log_list.h"
#include "content/public/browser/render_process_host.h"
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
@@ -13,7 +13,7 @@
using webrtc_event_logging::WebRtcEventLogManager;
-@@ -278,7 +278,7 @@ void WebRtcLoggingController::StartEventLogging(
+@@ -285,7 +285,7 @@ void WebRtcLoggingController::StartEventLogging(
web_app_id, callback);
}
@@ -22,7 +22,7 @@
void WebRtcLoggingController::GetLogsDirectory(
LogsDirectoryCallback callback,
LogsDirectoryErrorCallback error_callback) {
-@@ -323,7 +323,7 @@ void WebRtcLoggingController::GrantLogsDirectoryAccess
+@@ -330,7 +330,7 @@ void WebRtcLoggingController::GrantLogsDirectoryAccess
FROM_HERE,
base::BindOnce(std::move(callback), file_system.id(), registered_name));
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_webrtc_webrtc__logging__controller.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_webrtc_webrtc__logging__controller.h
index 1ba821af9e7a..49b8eb69053c 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_webrtc_webrtc__logging__controller.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_media_webrtc_webrtc__logging__controller.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/chrome/browser/media/webrtc/webrtc_logging_controller.h.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/chrome/browser/media/webrtc/webrtc_logging_controller.h.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/chrome/browser/media/webrtc/webrtc_logging_controller.h
-@@ -137,7 +137,7 @@ class WebRtcLoggingController
+@@ -138,7 +138,7 @@ class WebRtcLoggingController
size_t web_app_id,
const StartEventLoggingCallback& callback);
@@ -9,9 +9,9 @@
// Ensures that the WebRTC Logs directory exists and then grants render
// process access to the 'WebRTC Logs' directory, and invokes |callback| with
// the ids necessary to create a DirectoryEntry object.
-@@ -196,7 +196,7 @@ class WebRtcLoggingController
- bool success,
- const std::string& error_message);
+@@ -203,7 +203,7 @@ class WebRtcLoggingController
+
+ content::BrowserContext* GetBrowserContext() const;
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_net_system__network__context__manager.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_net_system__network__context__manager.cc
new file mode 100644
index 000000000000..f3128071a53f
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_net_system__network__context__manager.cc
@@ -0,0 +1,115 @@
+--- src/3rdparty/chromium/chrome/browser/net/system_network_context_manager.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/chrome/browser/net/system_network_context_manager.cc
+@@ -92,7 +92,7 @@
+
+ // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ #include "chrome/common/chrome_paths_internal.h"
+ #include "chrome/grit/chromium_strings.h"
+ #include "ui/base/l10n/l10n_util.h"
+@@ -183,7 +183,7 @@ network::mojom::HttpAuthDynamicParamsPtr CreateHttpAut
+ auth_dynamic_params->basic_over_http_enabled =
+ local_state->GetBoolean(prefs::kBasicAuthOverHttpEnabled);
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ auth_dynamic_params->delegate_by_kdc_policy =
+ local_state->GetBoolean(prefs::kAuthNegotiateDelegateByKdcPolicy);
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS)
+@@ -241,7 +241,7 @@ NetworkSandboxState IsNetworkSandboxEnabledInternal()
+ if (g_previously_failed_to_launch_sandboxed_service) {
+ return NetworkSandboxState::kDisabledBecauseOfFailedLaunch;
+ }
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ auto* local_state = g_browser_process->local_state();
+ #endif
+
+@@ -262,7 +262,7 @@ NetworkSandboxState IsNetworkSandboxEnabledInternal()
+ }
+ #endif // BUILDFLAG(IS_WIN)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (local_state &&
+ local_state->HasPrefPath(prefs::kNetworkServiceSandboxEnabled)) {
+ return local_state->GetBoolean(prefs::kNetworkServiceSandboxEnabled)
+@@ -457,7 +457,7 @@ void SystemNetworkContextManager::DeleteInstance() {
+ g_system_network_context_manager = nullptr;
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ SystemNetworkContextManager::GssapiLibraryLoadObserver::
+ GssapiLibraryLoadObserver(SystemNetworkContextManager* owner)
+ : owner_(owner) {}
+@@ -515,7 +515,7 @@ SystemNetworkContextManager::SystemNetworkContextManag
+ pref_change_registrar_.Add(prefs::kAllHttpAuthSchemesAllowedForOrigins,
+ auth_pref_callback);
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ pref_change_registrar_.Add(prefs::kAuthNegotiateDelegateByKdcPolicy,
+ auth_pref_callback);
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS)
+@@ -562,7 +562,7 @@ SystemNetworkContextManager::SystemNetworkContextManag
+ #endif // BUILDFLAG(CHROME_ROOT_STORE_POLICY_SUPPORTED)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ pref_change_registrar_.Add(
+ prefs::kEnforceLocalAnchorConstraintsEnabled,
+ base::BindRepeating(&SystemNetworkContextManager::
+@@ -611,7 +611,7 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRe
+ registry->RegisterBooleanPref(prefs::kKerberosEnabled, false);
+ #endif // BUILDFLAG(IS_CHROMEOS_LACROS)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ registry->RegisterBooleanPref(prefs::kAuthNegotiateDelegateByKdcPolicy,
+ false);
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS)
+@@ -640,7 +640,7 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRe
+ registry->RegisterBooleanPref(prefs::kChromeRootStoreEnabled, false);
+ #endif // BUILDFLAG(CHROME_ROOT_STORE_POLICY_SUPPORTED)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ // Note that the default value is not relevant because the pref is only
+ // evaluated when it is managed.
+ registry->RegisterBooleanPref(prefs::kEnforceLocalAnchorConstraintsEnabled,
+@@ -649,11 +649,11 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRe
+
+ registry->RegisterListPref(prefs::kExplicitlyAllowedNetworkPorts);
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ registry->RegisterBooleanPref(prefs::kNetworkServiceSandboxEnabled, true);
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ registry->RegisterBooleanPref(prefs::kReceivedHttpAuthNegotiateHeader, false);
+ #endif // BUILDFLAG(IS_LINUX)
+ }
+@@ -702,7 +702,7 @@ void SystemNetworkContextManager::OnNetworkServiceCrea
+ OnNewHttpAuthDynamicParams(http_auth_dynamic_params);
+ network_service->ConfigureHttpAuthPrefs(std::move(http_auth_dynamic_params));
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ gssapi_library_loader_observer_.Install(network_service);
+ #endif // BUILDFLAG(IS_LINUX)
+
+@@ -1009,7 +1009,7 @@ void SystemNetworkContextManager::UpdateChromeRootStor
+ #endif // BUILDFLAG(CHROME_ROOT_STORE_POLICY_SUPPORTED)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ void SystemNetworkContextManager::UpdateEnforceLocalAnchorConstraintsEnabled() {
+ const PrefService::Preference* enforce_local_anchor_constraints_enabled_pref =
+ local_state_->FindPreference(
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_net_system__network__context__manager.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_net_system__network__context__manager.h
new file mode 100644
index 000000000000..03783d1b1351
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_net_system__network__context__manager.h
@@ -0,0 +1,29 @@
+--- src/3rdparty/chromium/chrome/browser/net/system_network_context_manager.h.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/chrome/browser/net/system_network_context_manager.h
+@@ -185,7 +185,7 @@ class SystemNetworkContextManager {
+ class URLLoaderFactoryForSystem;
+ class NetworkProcessLaunchWatcher;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ class GssapiLibraryLoadObserver
+ : public network::mojom::GssapiLibraryLoadObserver {
+ public:
+@@ -229,7 +229,7 @@ class SystemNetworkContextManager {
+ #endif // BUILDFLAG(CHROME_ROOT_STORE_POLICY_SUPPORTED)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ // Applies the current value of the kEnforceLocalAnchorConstraintsEnabled
+ // pref to the enforcement state.
+ void UpdateEnforceLocalAnchorConstraintsEnabled();
+@@ -275,7 +275,7 @@ class SystemNetworkContextManager {
+
+ static absl::optional<bool> certificate_transparency_enabled_for_testing_;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ GssapiLibraryLoadObserver gssapi_library_loader_observer_{this};
+ #endif // BUILDFLAG(IS_LINUX)
+ };
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_prefs_browser__prefs.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_prefs_browser__prefs.cc
new file mode 100644
index 000000000000..01dbe1ca48f5
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_prefs_browser__prefs.cc
@@ -0,0 +1,69 @@
+--- src/3rdparty/chromium/chrome/browser/prefs/browser_prefs.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/chrome/browser/prefs/browser_prefs.cc
+@@ -478,13 +478,13 @@
+ #endif
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_ASH)
++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ #include "components/device_signals/core/browser/pref_names.h" // nogncheck due to crbug.com/1125897
+ #endif
+
+ // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \
+ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
+ #include "chrome/browser/browser_switcher/browser_switcher_prefs.h"
+ #endif
+@@ -517,7 +517,7 @@
+ #include "chrome/browser/sessions/session_service_log.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/color/system_theme.h"
+ #endif
+
+@@ -662,7 +662,7 @@ const char kPluginsPluginsList[] = "plugins.plugins_li
+ const char kPluginsShowDetails[] = "plugins.show_details";
+
+ // Deprecated 02/2023.
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const char kWebAppsUrlHandlerInfo[] = "web_apps.url_handler_info";
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+
+@@ -948,7 +948,7 @@ void RegisterLocalStatePrefsForMigration(PrefRegistryS
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+
+ // Deprecated 02/2023.
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ registry->RegisterDictionaryPref(kWebAppsUrlHandlerInfo);
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+
+@@ -1863,12 +1863,12 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySync
+ #endif
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_ASH)
++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ device_signals::RegisterProfilePrefs(registry);
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
+ // BUILDFLAG(IS_CHROMEOS_ASH)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ browser_switcher::BrowserSwitcherPrefs::RegisterProfilePrefs(registry);
+ #endif
+
+@@ -2018,7 +2018,7 @@ void MigrateObsoleteLocalStatePrefs(PrefService* local
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+
+ // Added 02/2023
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ local_state->ClearPref(kWebAppsUrlHandlerInfo);
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_prefs_pref__service__incognito__allowlist.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_prefs_pref__service__incognito__allowlist.cc
new file mode 100644
index 000000000000..30ddf9a2ebc9
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_prefs_pref__service__incognito__allowlist.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/chrome/browser/prefs/pref_service_incognito_allowlist.cc.orig 2023-08-17 07:33:31 UTC
++++ src/3rdparty/chromium/chrome/browser/prefs/pref_service_incognito_allowlist.cc
+@@ -168,7 +168,7 @@ const char* const kPersistentPrefNames[] = {
+ prefs::kShowFullscreenToolbar,
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Toggleing custom frames affects all open windows in the profile, hence
+ // should be written to the regular profile when changed in incognito mode.
+ prefs::kUseCustomChromeFrame,
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_printing_print__backend__service__manager.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_printing_print__backend__service__manager.cc
new file mode 100644
index 000000000000..8139fb923780
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_printing_print__backend__service__manager.cc
@@ -0,0 +1,29 @@
+--- src/3rdparty/chromium/chrome/browser/printing/print_backend_service_manager.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/chrome/browser/printing/print_backend_service_manager.cc
+@@ -33,7 +33,7 @@
+ #include "printing/buildflags/buildflags.h"
+ #include "printing/printing_features.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "content/public/common/content_switches.h"
+ #endif
+
+@@ -851,7 +851,7 @@ PrintBackendServiceManager::GetServiceFromBundle(
+ host.BindNewPipeAndPassReceiver(),
+ content::ServiceProcessHost::Options()
+ .WithDisplayName(IDS_UTILITY_PROCESS_PRINT_BACKEND_SERVICE_NAME)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ .WithExtraCommandLineSwitches({switches::kMessageLoopTypeUi})
+ #endif
+ .Pass());
+@@ -1024,7 +1024,7 @@ PrintBackendServiceManager::DetermineIdleTimeoutUpdate
+ return kNoClientsRegisteredResetOnIdleTimeout;
+
+ case ClientType::kQueryWithUi:
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // No need to update if there were other query with UI clients.
+ if (HasQueryWithUiClientForRemoteId(remote_id)) {
+ return absl::nullopt;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_printing_printer__query.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_printing_printer__query.cc
new file mode 100644
index 000000000000..125dba287eaa
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_printing_printer__query.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/chrome/browser/printing/printer_query.cc.orig 2023-12-12 22:08:45 UTC
++++ src/3rdparty/chromium/chrome/browser/printing/printer_query.cc
+@@ -361,7 +361,7 @@ void PrinterQuery::UpdatePrintSettings(base::Value::Di
+ crash_key = std::make_unique<crash_keys::ScopedPrinterInfo>(
+ print_backend->GetPrinterDriverInfo(printer_name));
+
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_CUPS)
++#if (BUILDFLAG(IS_BSD) || BUILDFLAG(IS_LINUX)) && BUILDFLAG(USE_CUPS)
+ PrinterBasicInfo basic_info;
+ if (print_backend->GetPrinterBasicInfo(printer_name, &basic_info) ==
+ mojom::ResultCode::kSuccess) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_resources_sandbox__internals_sandbox__internals.ts b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_resources_sandbox__internals_sandbox__internals.ts
new file mode 100644
index 000000000000..e10b79e480c1
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_resources_sandbox__internals_sandbox__internals.ts
@@ -0,0 +1,29 @@
+--- src/3rdparty/chromium/chrome/browser/resources/sandbox_internals/sandbox_internals.ts.orig 2023-02-08 09:03:45 UTC
++++ src/3rdparty/chromium/chrome/browser/resources/sandbox_internals/sandbox_internals.ts
+@@ -2,7 +2,7 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
+-// <if expr="is_linux or is_chromeos">
++// <if expr="is_posix or is_chromeos">
+ import './strings.m.js';
+
+ import {loadTimeData} from 'chrome://resources/js/load_time_data.js';
+@@ -121,7 +121,7 @@ function androidHandler() {
+ }
+ // </if>
+
+-// <if expr="is_linux or is_chromeos">
++// <if expr="is_posix or is_chromeos">
+
+ /**
+ * Adds a status row that reports either Yes or No.
+@@ -182,7 +182,7 @@ document.addEventListener('DOMContentLoaded', () => {
+ // <if expr="is_android">
+ androidHandler();
+ // </if>
+- // <if expr="is_linux or is_chromeos">
++ // <if expr="is_posix or is_chromeos">
+ linuxHandler();
+ // </if>
+ });
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_resources_signin_signin__shared.css b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_resources_signin_signin__shared.css
new file mode 100644
index 000000000000..1a3008147862
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_resources_signin_signin__shared.css
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/chrome/browser/resources/signin/signin_shared.css.orig 2022-11-30 08:12:58 UTC
++++ src/3rdparty/chromium/chrome/browser/resources/signin/signin_shared.css
+@@ -54,7 +54,7 @@ a {
+ border-radius: var(--scrollbar-width);
+ }
+
+-<if expr="is_macosx or is_linux or is_chromeos">
++<if expr="is_macosx or is_posix or is_chromeos">
+ .action-container {
+ flex-flow: row-reverse;
+ justify-content: flex-start;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_resources_signin_sync__confirmation_sync__confirmation__app.html b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_resources_signin_sync__confirmation_sync__confirmation__app.html
new file mode 100644
index 000000000000..5ec551183f86
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_resources_signin_sync__confirmation_sync__confirmation__app.html
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/chrome/browser/resources/signin/sync_confirmation/sync_confirmation_app.html.orig 2023-07-16 15:47:57 UTC
++++ src/3rdparty/chromium/chrome/browser/resources/signin/sync_confirmation/sync_confirmation_app.html
+@@ -290,7 +290,7 @@
+ autofocus="[[isModalDialog_]]">
+ $i18n{syncConfirmationConfirmLabel}
+ </cr-button>
+- <if expr="is_macosx or is_linux or chromeos_ash or chromeos_lacros">
++ <if expr="is_macosx or is_posix or chromeos_ash or chromeos_lacros">
+ <cr-button id="settingsButton" on-click="onGoToSettings_"
+ disabled="[[anyButtonClicked_]]" consent-confirmation>
+ $i18n{syncConfirmationSettingsLabel}
+@@ -300,7 +300,7 @@
+ disabled="[[anyButtonClicked_]]">
+ $i18n{syncConfirmationUndoLabel}
+ </cr-button>
+- <if expr="not (is_macosx or is_linux or chromeos_ash or chromeos_lacros)">
++ <if expr="not (is_macosx or is_posix or chromeos_ash or chromeos_lacros)">
+ <cr-button id="settingsButton" on-click="onGoToSettings_"
+ disabled="[[anyButtonClicked_]]" consent-confirmation>
+ $i18n{syncConfirmationSettingsLabel}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_about__ui.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_about__ui.cc
new file mode 100644
index 000000000000..565fc76382d7
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_about__ui.cc
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/chrome/browser/ui/webui/about_ui.cc.orig 2023-07-16 15:47:57 UTC
++++ src/3rdparty/chromium/chrome/browser/ui/webui/about_ui.cc
+@@ -635,7 +635,7 @@ std::string ChromeURLs() {
+ return html;
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ std::string AboutLinuxProxyConfig() {
+ std::string data;
+ AppendHeader(&data,
+@@ -689,7 +689,7 @@ void AboutUIHTMLSource::StartDataRequest(
+ response =
+ ui::ResourceBundle::GetSharedInstance().LoadDataResourceString(idr);
+ }
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ } else if (source_name_ == chrome::kChromeUILinuxProxyConfigHost) {
+ response = AboutLinuxProxyConfig();
+ #endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_app__home_app__home__page__handler.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_app__home_app__home__page__handler.cc
new file mode 100644
index 000000000000..a7b61b1f993f
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_app__home_app__home__page__handler.cc
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/chrome/browser/ui/webui/app_home/app_home_page_handler.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/chrome/browser/ui/webui/app_home/app_home_page_handler.cc
+@@ -415,7 +415,7 @@ app_home::mojom::AppInfoPtr AppHomePageHandler::Create
+
+ bool deprecated_app = false;
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ auto* context = extension_system_->extension_service()->GetBrowserContext();
+ deprecated_app =
+ extensions::IsExtensionUnsupportedDeprecatedApp(context, extension->id());
+@@ -478,7 +478,7 @@ void AppHomePageHandler::FillExtensionInfoList(
+ }
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ auto* context = extension_system_->extension_service()->GetBrowserContext();
+ const bool is_deprecated_app =
+ extensions::IsExtensionUnsupportedDeprecatedApp(context,
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc
new file mode 100644
index 000000000000..a717e9efc5ce
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc
@@ -0,0 +1,92 @@
+--- src/3rdparty/chromium/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc.orig 2023-12-12 22:08:45 UTC
++++ src/3rdparty/chromium/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
+@@ -213,7 +213,7 @@
+ #include "chrome/browser/ui/webui/chromeos/chrome_url_disabled/chrome_url_disabled_ui.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/webui/webui_js_error/webui_js_error_ui.h"
+ #endif
+
+@@ -239,17 +239,17 @@
+ #endif
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/webui/discards/discards_ui.h"
+ #endif
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/webui/sandbox/sandbox_internals_ui.h"
+ #endif
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_ASH)
++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/webui/connectors_internals/connectors_internals_ui.h"
+ #endif
+
+@@ -402,7 +402,7 @@ bool IsAboutUI(const GURL& url) {
+ #if !BUILDFLAG(IS_ANDROID)
+ || url.host_piece() == chrome::kChromeUITermsHost
+ #endif
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ || url.host_piece() == chrome::kChromeUILinuxProxyConfigHost
+ #endif
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+@@ -663,7 +663,7 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* we
+ if (url.host_piece() == chrome::kChromeUIMobileSetupHost)
+ return &NewWebUI<ash::cellular_setup::MobileSetupUI>;
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ if (url.host_piece() == chrome::kChromeUIWebUIJsErrorHost)
+ return &NewWebUI<WebUIJsErrorUI>;
+ #endif
+@@ -725,7 +725,7 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* we
+ if (url.host_piece() == chrome::kChromeUINaClHost)
+ return &NewWebUI<NaClUI>;
+ #endif
+-#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \
++#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \
+ defined(TOOLKIT_VIEWS)) || \
+ defined(USE_AURA)
+ if (url.host_piece() == chrome::kChromeUITabModalConfirmDialogHost)
+@@ -794,27 +794,27 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* we
+ }
+ #endif
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ if (url.host_piece() == chrome::kChromeUISandboxHost) {
+ return &NewWebUI<SandboxInternalsUI>;
+ }
+ #endif
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_ASH)
++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ if (url.host_piece() == chrome::kChromeUIConnectorsInternalsHost)
+ return &NewWebUI<enterprise_connectors::ConnectorsInternalsUI>;
+ #endif
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ if (url.host_piece() == chrome::kChromeUIDiscardsHost)
+ return &NewWebUI<DiscardsUI>;
+ #endif
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (url.host_piece() == chrome::kChromeUIBrowserSwitchHost)
+ return &NewWebUI<BrowserSwitchUI>;
+ #endif
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ if (url.host_piece() == chrome::kChromeUIWebAppSettingsHost)
+ return &NewWebUI<WebAppSettingsUI>;
+ #endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_connectors__internals_device__trust__utils.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_connectors__internals_device__trust__utils.cc
new file mode 100644
index 000000000000..1ef21d90c51b
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_connectors__internals_device__trust__utils.cc
@@ -0,0 +1,29 @@
+--- src/3rdparty/chromium/chrome/browser/ui/webui/connectors_internals/device_trust_utils.cc.orig 2023-03-09 06:31:50 UTC
++++ src/3rdparty/chromium/chrome/browser/ui/webui/connectors_internals/device_trust_utils.cc
+@@ -6,7 +6,7 @@
+
+ #include "build/build_config.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ #include "base/base64url.h"
+ #include "chrome/browser/browser_process.h"
+ #include "chrome/browser/policy/chrome_browser_policy_connector.h"
+@@ -24,7 +24,7 @@ namespace utils {
+
+ namespace {
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+
+ connectors_internals::mojom::KeyTrustLevel ParseTrustLevel(
+ BPKUR::KeyTrustLevel trust_level) {
+@@ -92,7 +92,7 @@ connectors_internals::mojom::Int32ValuePtr ToMojomValu
+ } // namespace
+
+ connectors_internals::mojom::KeyInfoPtr GetKeyInfo() {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ auto* key_manager = g_browser_process->browser_policy_connector()
+ ->chrome_browser_cloud_management_controller()
+ ->GetDeviceTrustKeyManager();
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_management_management__ui.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_management_management__ui.cc
new file mode 100644
index 000000000000..c5e532d3d32b
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_management_management__ui.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/chrome/browser/ui/webui/management/management_ui.cc.orig 2023-03-09 06:31:50 UTC
++++ src/3rdparty/chromium/chrome/browser/ui/webui/management/management_ui.cc
+@@ -92,7 +92,7 @@ content::WebUIDataSource* CreateAndAddManagementUIHtml
+ {kManagementOnFileTransferVisibleData,
+ IDS_MANAGEMENT_FILE_TRANSFER_VISIBLE_DATA},
+ #endif // BUILDFLAG(IS_CHROMEOS)
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ {kManagementScreenCaptureEvent, IDS_MANAGEMENT_SCREEN_CAPTURE_EVENT},
+ {kManagementScreenCaptureData, IDS_MANAGEMENT_SCREEN_CAPTURE_DATA},
+ #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_management_management__ui__handler.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_management_management__ui__handler.cc
new file mode 100644
index 000000000000..084248a340c7
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_management_management__ui__handler.cc
@@ -0,0 +1,53 @@
+--- src/3rdparty/chromium/chrome/browser/ui/webui/management/management_ui_handler.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/chrome/browser/ui/webui/management/management_ui_handler.cc
+@@ -94,7 +94,7 @@
+ #include "components/policy/core/common/cloud/user_cloud_policy_manager.h"
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/signals/user_permission_service_factory.h"
+ #include "components/device_signals/core/browser/user_permission_service.h" // nogncheck
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+@@ -190,12 +190,12 @@ enum class ReportingType {
+ kLegacyTech,
+ };
+
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const char kManagementScreenCaptureEvent[] = "managementScreenCaptureEvent";
+ const char kManagementScreenCaptureData[] = "managementScreenCaptureData";
+ #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const char kManagementDeviceSignalsDisclosure[] =
+ "managementDeviceSignalsDisclosure";
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+@@ -773,7 +773,7 @@ void ManagementUIHandler::AddReportingInfo(base::Value
+ GetReportingTypeValue(report_definition.reporting_type));
+ report_sources->Append(std::move(data));
+ }
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Insert the device signals consent disclosure at the end of browser
+ // reporting section.
+ auto* user_permission_service = GetUserPermissionService();
+@@ -1061,7 +1061,7 @@ base::Value::Dict ManagementUIHandler::GetThreatProtec
+ kManagementOnPageVisitedVisibleData, &info);
+ }
+
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (capture_policy::IsGetAllScreensMediaAllowedForAnySite(profile)) {
+ AddThreatProtectionPermission(kManagementScreenCaptureEvent,
+ kManagementScreenCaptureData, &info);
+@@ -1145,7 +1145,7 @@ policy::PolicyService* ManagementUIHandler::GetPolicyS
+ ->policy_service();
+ }
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ device_signals::UserPermissionService*
+ ManagementUIHandler::GetUserPermissionService() {
+ return enterprise_signals::UserPermissionServiceFactory::GetForProfile(
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_management_management__ui__handler.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_management_management__ui__handler.h
new file mode 100644
index 000000000000..fb7c7572967b
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_management_management__ui__handler.h
@@ -0,0 +1,37 @@
+--- src/3rdparty/chromium/chrome/browser/ui/webui/management/management_ui_handler.h.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/chrome/browser/ui/webui/management/management_ui_handler.h
+@@ -24,14 +24,14 @@
+ #include "extensions/common/extension_id.h"
+ #include "url/gurl.h"
+
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Constants defining the IDs for the localized strings sent to the page as
+ // load time data.
+ extern const char kManagementScreenCaptureEvent[];
+ extern const char kManagementScreenCaptureData[];
+ #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ extern const char kManagementDeviceSignalsDisclosure[];
+ #endif // #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+
+@@ -117,7 +117,7 @@ class StatusCollector;
+ class SystemLogUploader;
+ } // namespace policy
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ namespace device_signals {
+ class UserPermissionService;
+ } // namespace device_signals
+@@ -177,7 +177,7 @@ class ManagementUIHandler : public content::WebUIMessa
+ base::Value::List GetManagedWebsitesInfo(Profile* profile) const;
+ base::Value::List GetApplicationsInfo(Profile* profile) const;
+ virtual policy::PolicyService* GetPolicyService();
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ virtual device_signals::UserPermissionService* GetUserPermissionService();
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_ntp_app__launcher__handler.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_ntp_app__launcher__handler.cc
new file mode 100644
index 000000000000..8bf838a52106
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_ntp_app__launcher__handler.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/chrome/browser/ui/webui/ntp/app_launcher_handler.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/chrome/browser/ui/webui/ntp/app_launcher_handler.cc
+@@ -320,7 +320,7 @@ base::Value::Dict AppLauncherHandler::CreateExtensionI
+ bool is_deprecated_app = false;
+ auto* context = extension_service_->GetBrowserContext();
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ is_deprecated_app =
+ extensions::IsExtensionUnsupportedDeprecatedApp(context, extension->id());
+ #endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_realbox_realbox__handler.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_realbox_realbox__handler.cc
new file mode 100644
index 000000000000..286837de110d
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_realbox_realbox__handler.cc
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/chrome/browser/ui/webui/realbox/realbox_handler.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/chrome/browser/ui/webui/realbox/realbox_handler.cc
+@@ -146,7 +146,7 @@ constexpr char kMacShareIconResourceName[] =
+ #elif BUILDFLAG(IS_WIN)
+ constexpr char kWinShareIconResourceName[] =
+ "//resources/cr_components/omnibox/icons/win_share.svg";
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ constexpr char kLinuxShareIconResourceName[] =
+ "//resources/cr_components/omnibox/icons/share.svg";
+ #else
+@@ -745,7 +745,7 @@ std::string RealboxHandler::PedalVectorIconToResourceN
+ icon.name == omnibox::kShareWinChromeRefreshIcon.name) {
+ return kWinShareIconResourceName;
+ }
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (icon.name == omnibox::kShareIcon.name ||
+ icon.name == omnibox::kShareLinuxChromeRefreshIcon.name) {
+ return kLinuxShareIconResourceName;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_settings_appearance__handler.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_settings_appearance__handler.cc
new file mode 100644
index 000000000000..17580c061f6b
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_settings_appearance__handler.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/chrome/browser/ui/webui/settings/appearance_handler.cc.orig 2022-10-24 13:33:33 UTC
++++ src/3rdparty/chromium/chrome/browser/ui/webui/settings/appearance_handler.cc
+@@ -28,7 +28,7 @@ void AppearanceHandler::RegisterMessages() {
+ "useDefaultTheme",
+ base::BindRepeating(&AppearanceHandler::HandleUseTheme,
+ base::Unretained(this), ui::SystemTheme::kDefault));
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ web_ui()->RegisterMessageCallback(
+ "useGtkTheme",
+ base::BindRepeating(&AppearanceHandler::HandleUseTheme,
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_settings_settings__localized__strings__provider.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_settings_settings__localized__strings__provider.cc
new file mode 100644
index 000000000000..e93abe0efa2d
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_settings_settings__localized__strings__provider.cc
@@ -0,0 +1,65 @@
+--- src/3rdparty/chromium/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
+@@ -135,7 +135,7 @@
+ #include "ash/webui/settings/public/constants/routes.mojom.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)
++#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_BSD)
+ #include "ui/display/screen.h"
+ #endif
+
+@@ -155,7 +155,7 @@
+ #include "chrome/browser/ui/webui/certificate_manager_localized_strings_provider.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/linux_ui_factory.h"
+ #include "ui/ozone/public/ozone_platform.h"
+ #endif
+@@ -263,7 +263,7 @@ void AddCommonStrings(content::WebUIDataSource* html_s
+ base::FeatureList::IsEnabled(
+ supervised_user::kClearingCookiesKeepsSupervisedUsersSignedIn));
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool allow_qt_theme = base::FeatureList::IsEnabled(ui::kAllowQt);
+ #else
+ bool allow_qt_theme = false;
+@@ -294,7 +294,7 @@ void AddA11yStrings(content::WebUIDataSource* html_sou
+ {"focusHighlightLabel",
+ IDS_SETTINGS_ACCESSIBILITY_FOCUS_HIGHLIGHT_DESCRIPTION},
+ #endif
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ {"overscrollHistoryNavigationTitle",
+ IDS_SETTINGS_OVERSCROLL_HISTORY_NAVIGATION_TITLE},
+ {"overscrollHistoryNavigationSubtitle",
+@@ -433,7 +433,7 @@ void AddAppearanceStrings(content::WebUIDataSource* ht
+ {"huge", IDS_SETTINGS_HUGE_FONT_SIZE},
+ {"sidePanelAlignLeft", IDS_SETTINGS_SIDE_PANEL_ALIGN_LEFT},
+ {"sidePanelAlignRight", IDS_SETTINGS_SIDE_PANEL_ALIGN_RIGHT},
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ {"gtkTheme", IDS_SETTINGS_GTK_THEME},
+ {"useGtkTheme", IDS_SETTINGS_USE_GTK_THEME},
+ {"qtTheme", IDS_SETTINGS_QT_THEME},
+@@ -443,7 +443,7 @@ void AddAppearanceStrings(content::WebUIDataSource* ht
+ #else
+ {"resetToDefaultTheme", IDS_SETTINGS_RESET_TO_DEFAULT_THEME},
+ #endif
+-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)
++#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_BSD)
+ {"showWindowDecorations", IDS_SHOW_WINDOW_DECORATIONS},
+ #endif
+ #if BUILDFLAG(IS_MAC)
+@@ -468,7 +468,7 @@ void AddAppearanceStrings(content::WebUIDataSource* ht
+
+ // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)
++#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_BSD)
+ bool show_custom_chrome_frame = ui::OzonePlatform::GetInstance()
+ ->GetPlatformRuntimeProperties()
+ .supports_server_side_window_decorations;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_channel__info.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_channel__info.h
new file mode 100644
index 000000000000..2c5c06693e34
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_channel__info.h
@@ -0,0 +1,18 @@
+--- src/3rdparty/chromium/chrome/common/channel_info.h.orig 2023-04-28 17:01:32 UTC
++++ src/3rdparty/chromium/chrome/common/channel_info.h
+@@ -104,13 +104,13 @@ void ClearChannelForTesting();
+ std::string GetChannelSuffixForDataDir();
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ std::string GetChannelSuffixForExtraFlagsEnvVarName();
+ #endif
+
+ // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ // Returns the channel-specific filename of the desktop shortcut used to launch
+ // the browser.
+ std::string GetDesktopName(base::Environment* env);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_channel__info__posix.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_channel__info__posix.cc
new file mode 100644
index 000000000000..e0d82654c4e1
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_channel__info__posix.cc
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/chrome/common/channel_info_posix.cc.orig 2023-04-28 17:01:32 UTC
++++ src/3rdparty/chromium/chrome/common/channel_info_posix.cc
+@@ -92,7 +92,7 @@ std::string GetChannelSuffixForDataDir() {
+ }
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ std::string GetChannelSuffixForExtraFlagsEnvVarName() {
+ #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
+ const auto channel_state = GetChannelImpl();
+@@ -118,7 +118,7 @@ std::string GetChannelSuffixForExtraFlagsEnvVarName()
+
+ // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ std::string GetDesktopName(base::Environment* env) {
+ #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
+ // Google Chrome packaged as a snap is a special case: the application name
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_chrome__features.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_chrome__features.cc
new file mode 100644
index 000000000000..18a04c2ad7dd
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_chrome__features.cc
@@ -0,0 +1,83 @@
+--- src/3rdparty/chromium/chrome/common/chrome_features.cc.orig 2024-01-23 10:07:29 UTC
++++ src/3rdparty/chromium/chrome/common/chrome_features.cc
+@@ -74,7 +74,7 @@ BASE_FEATURE(kAppShimNotificationAttribution,
+
+ // Enables the built-in DNS resolver.
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_ANDROID) || \
+- BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kAsyncDns,
+ "AsyncDns",
+ base::FEATURE_ENABLED_BY_DEFAULT
+@@ -87,7 +87,7 @@ BASE_FEATURE(kAsyncDns,
+ #endif
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ // Enables or disables the Autofill survey triggered by opening a prompt to
+ // save address info.
+ BASE_FEATURE(kAutofillAddressSurvey,
+@@ -105,7 +105,7 @@ BASE_FEATURE(kAutofillPasswordSurvey,
+ base::FEATURE_DISABLED_BY_DEFAULT);
+ #endif
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Enables the Restart background mode optimization. When all Chrome UI is
+ // closed and it goes in the background, allows to restart the browser to
+ // discard memory.
+@@ -301,7 +301,7 @@ BASE_FEATURE(kDesktopPWAsEnforceWebAppSettingsPolicy,
+ base::FEATURE_ENABLED_BY_DEFAULT);
+
+ // Enables or disables Desktop PWAs to be auto-started on OS login.
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kDesktopPWAsRunOnOsLogin,
+ "DesktopPWAsRunOnOsLogin",
+ base::FEATURE_ENABLED_BY_DEFAULT
+@@ -335,7 +335,7 @@ BASE_FEATURE(kDesktopPWAsWebBundles,
+ base::FEATURE_DISABLED_BY_DEFAULT);
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ // Controls whether Chrome Apps are supported. See https://crbug.com/1221251.
+ // If the feature is disabled, Chrome Apps continue to work. If enabled, Chrome
+ // Apps will not launch and will be marked in the UI as deprecated.
+@@ -366,7 +366,7 @@ BASE_FEATURE(kDisruptiveNotificationPermissionRevocati
+
+ // Enable DNS over HTTPS (DoH).
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kDnsOverHttps,
+ "DnsOverHttps",
+ base::FEATURE_ENABLED_BY_DEFAULT
+@@ -387,7 +387,7 @@ const base::FeatureParam<bool> kDnsOverHttpsShowUiPara
+ const base::FeatureParam<bool> kDnsOverHttpsShowUiParam {
+ &kDnsOverHttps, "ShowUi",
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ true
+ #else
+ false
+@@ -875,7 +875,7 @@ BASE_FEATURE(kKAnonymityServiceStorage,
+ "KAnonymityServiceStorage",
+ base::FEATURE_ENABLED_BY_DEFAULT);
+
+-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
++#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) || BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kLinuxLowMemoryMonitor,
+ "LinuxLowMemoryMonitor",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+@@ -888,7 +888,7 @@ constexpr base::FeatureParam<int> kLinuxLowMemoryMonit
+ &kLinuxLowMemoryMonitor, "critical_level", 255};
+ #endif // BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kListWebAppsSwitch,
+ "ListWebAppsSwitch",
+ base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_chrome__features.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_chrome__features.h
new file mode 100644
index 000000000000..033e2af8b846
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_chrome__features.h
@@ -0,0 +1,45 @@
+--- src/3rdparty/chromium/chrome/common/chrome_features.h.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/chrome/common/chrome_features.h
+@@ -61,13 +61,13 @@ BASE_DECLARE_FEATURE(kAppShimNotificationAttribution);
+ COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kAsyncDns);
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kAutofillAddressSurvey);
+ COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kAutofillCardSurvey);
+ COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kAutofillPasswordSurvey);
+ #endif
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(CHROME_FEATURES)
+ BASE_DECLARE_FEATURE(kBackgroundModeAllowRestart);
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+@@ -201,7 +201,7 @@ BASE_DECLARE_FEATURE(kDesktopPWAsTabStripSettings);
+ COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kDesktopPWAsWebBundles);
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kChromeAppsDeprecation);
+ COMPONENT_EXPORT(CHROME_FEATURES)
+ BASE_DECLARE_FEATURE(kKeepForceInstalledPreinstalledApps);
+@@ -499,7 +499,7 @@ BASE_DECLARE_FEATURE(kKAnonymityServiceOHTTPRequests);
+ COMPONENT_EXPORT(CHROME_FEATURES)
+ BASE_DECLARE_FEATURE(kKAnonymityServiceStorage);
+
+-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
++#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kLinuxLowMemoryMonitor);
+ COMPONENT_EXPORT(CHROME_FEATURES)
+ extern const base::FeatureParam<int> kLinuxLowMemoryMonitorModerateLevel;
+@@ -507,7 +507,7 @@ COMPONENT_EXPORT(CHROME_FEATURES)
+ extern const base::FeatureParam<int> kLinuxLowMemoryMonitorCriticalLevel;
+ #endif // BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kListWebAppsSwitch);
+ #endif
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_chrome__paths.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_chrome__paths.cc
new file mode 100644
index 000000000000..5ea4fc7401a8
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_chrome__paths.cc
@@ -0,0 +1,84 @@
+--- src/3rdparty/chromium/chrome/common/chrome_paths.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/chrome/common/chrome_paths.cc
+@@ -30,7 +30,7 @@
+ #include "base/apple/foundation_util.h"
+ #endif
+
+-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
+ #include "components/policy/core/common/policy_paths.h"
+ #endif
+
+@@ -49,14 +49,14 @@
+
+ namespace {
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // The path to the external extension <id>.json files.
+ // /usr/share seems like a good choice, see: http://www.pathname.com/fhs/
+ const base::FilePath::CharType kFilepathSinglePrefExtensions[] =
+ #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
+- FILE_PATH_LITERAL("/usr/share/google-chrome/extensions");
++ FILE_PATH_LITERAL("/usr/local/share/chromium/extensions");
+ #else
+- FILE_PATH_LITERAL("/usr/share/chromium/extensions");
++ FILE_PATH_LITERAL("/usr/local/share/chromium/extensions");
+ #endif // BUILDFLAG(GOOGLE_CHROME_BRANDING)
+
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+@@ -211,7 +211,7 @@ bool PathProvider(int key, base::FilePath* result) {
+ }
+ break;
+ case chrome::DIR_DEFAULT_DOWNLOADS_SAFE:
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ if (!GetUserDownloadsDirectorySafe(&cur)) {
+ return false;
+ }
+@@ -504,7 +504,7 @@ bool PathProvider(int key, base::FilePath* result) {
+ return false;
+ }
+ break;
+-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
+ case chrome::DIR_POLICY_FILES: {
+ cur = base::FilePath(policy::kPolicyPath);
+ break;
+@@ -515,7 +515,7 @@ bool PathProvider(int key, base::FilePath* result) {
+ #if BUILDFLAG(IS_CHROMEOS_ASH) || \
+ ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) && \
+ BUILDFLAG(CHROMIUM_BRANDING)) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ case chrome::DIR_USER_EXTERNAL_EXTENSIONS: {
+ if (!base::PathService::Get(chrome::DIR_USER_DATA, &cur)) {
+ return false;
+@@ -524,7 +524,7 @@ bool PathProvider(int key, base::FilePath* result) {
+ break;
+ }
+ #endif
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ case chrome::DIR_STANDALONE_EXTERNAL_EXTENSIONS: {
+ cur = base::FilePath(kFilepathSinglePrefExtensions);
+ break;
+@@ -571,7 +571,7 @@ bool PathProvider(int key, base::FilePath* result) {
+ break;
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ case chrome::DIR_NATIVE_MESSAGING:
+ #if BUILDFLAG(IS_MAC)
+ #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
+@@ -585,6 +585,9 @@ bool PathProvider(int key, base::FilePath* result) {
+ #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
+ cur = base::FilePath(
+ FILE_PATH_LITERAL("/etc/opt/chrome/native-messaging-hosts"));
++#elif BUILDFLAG(IS_FREEBSD)
++ cur = base::FilePath(FILE_PATH_LITERAL(
++ "/usr/local/etc/chromium/native-messaging-hosts"));
+ #else
+ cur = base::FilePath(
+ FILE_PATH_LITERAL("/etc/chromium/native-messaging-hosts"));
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_chrome__paths.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_chrome__paths.h
new file mode 100644
index 000000000000..7a1e8b1854d5
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_chrome__paths.h
@@ -0,0 +1,29 @@
+--- src/3rdparty/chromium/chrome/common/chrome_paths.h.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/chrome/common/chrome_paths.h
+@@ -57,7 +57,7 @@ enum {
+ #if BUILDFLAG(IS_CHROMEOS_ASH) || \
+ ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) && \
+ BUILDFLAG(CHROMIUM_BRANDING)) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ DIR_USER_EXTERNAL_EXTENSIONS, // Directory for per-user external extensions
+ // on Chrome Mac and Chromium Linux.
+ // On Chrome OS, this path is used for OEM
+@@ -65,7 +65,7 @@ enum {
+ // create it.
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ DIR_STANDALONE_EXTERNAL_EXTENSIONS, // Directory for 'per-extension'
+ // definition manifest files that
+ // describe extensions which are to be
+@@ -123,7 +123,7 @@ enum {
+ // must be cleared on device reboot.
+
+ #endif
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ DIR_NATIVE_MESSAGING, // System directory where native messaging host
+ // manifest files are stored.
+ DIR_USER_NATIVE_MESSAGING, // Directory with Native Messaging Hosts
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_chrome__paths__internal.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_chrome__paths__internal.h
new file mode 100644
index 000000000000..ef783e50e09d
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_chrome__paths__internal.h
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/chrome/common/chrome_paths_internal.h.orig 2023-05-31 08:12:17 UTC
++++ src/3rdparty/chromium/chrome/common/chrome_paths_internal.h
+@@ -43,7 +43,7 @@ void GetUserCacheDirectory(const base::FilePath& profi
+ // Get the path to the user's documents directory.
+ bool GetUserDocumentsDirectory(base::FilePath* result);
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Gets the path to a safe default download directory for a user.
+ bool GetUserDownloadsDirectorySafe(base::FilePath* result);
+ #endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_chrome__switches.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_chrome__switches.cc
new file mode 100644
index 000000000000..a75007a16709
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_chrome__switches.cc
@@ -0,0 +1,19 @@
+--- src/3rdparty/chromium/chrome/common/chrome_switches.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/chrome/common/chrome_switches.cc
+@@ -849,14 +849,14 @@ const char kAllowNaClSocketAPI[] = "allow-nacl-socket-
+ #endif
+
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ const char kEnableNewAppMenuIcon[] = "enable-new-app-menu-icon";
+
+ // Causes the browser to launch directly in guest mode.
+ const char kGuest[] = "guest";
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ // Writes open and installed web apps for each profile to the specified file
+ // without launching a new browser window or tab. Pass a absolute file path to
+ // specify where to output the information. Can be used together with optional
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_chrome__switches.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_chrome__switches.h
new file mode 100644
index 000000000000..409d50bc04d6
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_chrome__switches.h
@@ -0,0 +1,17 @@
+--- src/3rdparty/chromium/chrome/common/chrome_switches.h.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/chrome/common/chrome_switches.h
+@@ -269,12 +269,12 @@ extern const char kAllowNaClSocketAPI[];
+ #endif
+
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ extern const char kEnableNewAppMenuIcon[];
+ extern const char kGuest[];
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ extern const char kListApps[];
+ extern const char kProfileBaseName[];
+ extern const char kProfileManagementAttributes[];
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_extensions_permissions_chrome__permission__message__rules.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_extensions_permissions_chrome__permission__message__rules.cc
new file mode 100644
index 000000000000..495166345ead
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_extensions_permissions_chrome__permission__message__rules.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/chrome/common/extensions/permissions/chrome_permission_message_rules.cc.orig 2023-12-12 22:08:45 UTC
++++ src/3rdparty/chromium/chrome/common/extensions/permissions/chrome_permission_message_rules.cc
+@@ -287,7 +287,7 @@ int GetEnterpriseReportingPrivatePermissionMessageId()
+ #endif
+ #if BUILDFLAG(IS_WIN)
+ return IDS_EXTENSION_PROMPT_WARNING_ENTERPRISE_REPORTING_PRIVATE_ENABLED_WIN;
+-#elif BUILDFLAG(IS_LINUX) or BUILDFLAG(IS_MAC)
++#elif BUILDFLAG(IS_LINUX) or BUILDFLAG(IS_MAC) or BUILDFLAG(IS_BSD)
+ return IDS_EXTENSION_PROMPT_WARNING_ENTERPRISE_REPORTING_PRIVATE_ENABLED_LINUX_AND_MACOS;
+ #else
+ return IDS_EXTENSION_PROMPT_WARNING_ENTERPRISE_REPORTING_PRIVATE;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_media_cdm__host__file__path.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_media_cdm__host__file__path.cc
new file mode 100644
index 000000000000..1ae38d605706
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_media_cdm__host__file__path.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/chrome/common/media/cdm_host_file_path.cc.orig 2023-02-08 09:03:45 UTC
++++ src/3rdparty/chromium/chrome/common/media/cdm_host_file_path.cc
+@@ -90,7 +90,7 @@ void AddCdmHostFilePaths(
+ cdm_host_file_paths->emplace_back(chrome_framework_path,
+ chrome_framework_sig_path);
+
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+
+ base::FilePath chrome_exe_dir;
+ if (!base::PathService::Get(base::DIR_EXE, &chrome_exe_dir))
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_media_cdm__registration.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_media_cdm__registration.cc
new file mode 100644
index 000000000000..e6eee8f508c5
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_media_cdm__registration.cc
@@ -0,0 +1,52 @@
+--- src/3rdparty/chromium/chrome/common/media/cdm_registration.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/chrome/common/media/cdm_registration.cc
+@@ -25,11 +25,11 @@
+
+ #if BUILDFLAG(ENABLE_WIDEVINE)
+ #include "third_party/widevine/cdm/widevine_cdm_common.h" // nogncheck
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "base/native_library.h"
+ #include "chrome/common/chrome_paths.h"
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "base/no_destructor.h"
+ #include "chrome/common/media/component_widevine_cdm_hint_file_linux.h"
+ #include "components/cdm/common/cdm_manifest.h"
+@@ -56,7 +56,7 @@ using Robustness = content::CdmInfo::Robustness;
+ #if BUILDFLAG(ENABLE_WIDEVINE)
+ #if (BUILDFLAG(BUNDLE_WIDEVINE_CDM) || \
+ BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)) && \
+- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD))
+ // Create a CdmInfo for a Widevine CDM, using |version|, |cdm_library_path|, and
+ // |capability|.
+ std::unique_ptr<content::CdmInfo> CreateWidevineCdmInfo(
+@@ -101,7 +101,7 @@ std::unique_ptr<content::CdmInfo> CreateCdmInfoFromWid
+ // BUILDFLAG(IS_CHROMEOS))
+
+ #if BUILDFLAG(BUNDLE_WIDEVINE_CDM) && \
+- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD))
+ // On Linux/ChromeOS we have to preload the CDM since it uses the zygote
+ // sandbox. On Windows and Mac, the bundled CDM is handled by the component
+ // updater.
+@@ -125,7 +125,7 @@ content::CdmInfo* GetBundledWidevine() {
+ // (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
+
+ #if BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT) && \
+- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD))
+ // This code checks to see if a component updated Widevine CDM can be found. If
+ // there is one and it looks valid, return the CdmInfo for that CDM. Otherwise
+ // return nullptr.
+@@ -160,7 +160,7 @@ void AddSoftwareSecureWidevine(std::vector<content::Cd
+ /*supports_sub_key_systems=*/false, kWidevineCdmDisplayName,
+ kWidevineCdmType, base::Version(), base::FilePath());
+
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #if defined(WIDEVINE_CDM_MIN_GLIBC_VERSION)
+ base::Version glibc_version(gnu_get_libc_version());
+ DCHECK(glibc_version.IsValid());
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_media_component__widevine__cdm__hint__file__linux.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_media_component__widevine__cdm__hint__file__linux.h
new file mode 100644
index 000000000000..c5be9ae3d7d6
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_media_component__widevine__cdm__hint__file__linux.h
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/chrome/common/media/component_widevine_cdm_hint_file_linux.h.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/chrome/common/media/component_widevine_cdm_hint_file_linux.h
+@@ -15,7 +15,7 @@
+
+ // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
++#if !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD))
+ #error "This file only applies to desktop Linux and ChromeOS."
+ #endif
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_pref__names.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_pref__names.h
new file mode 100644
index 000000000000..b83fa0c4e311
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_pref__names.h
@@ -0,0 +1,82 @@
+--- src/3rdparty/chromium/chrome/common/pref_names.h.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/chrome/common/pref_names.h
+@@ -1316,7 +1316,7 @@ inline constexpr char kUseAshProxy[] = "lacros.proxy.u
+
+ // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ // Linux specific preference on whether we should match the system theme.
+ inline constexpr char kSystemTheme[] = "extensions.theme.system_theme";
+ #endif
+@@ -1442,7 +1442,7 @@ inline constexpr char kShowUpdatePromotionInfoBar[] =
+ "browser.show_update_promotion_info_bar";
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Boolean that is false if we should show window manager decorations. If
+ // true, we draw a custom chrome frame (thicker title bar and blue border).
+ inline constexpr char kUseCustomChromeFrame[] = "browser.custom_chrome_frame";
+@@ -1986,7 +1986,7 @@ inline constexpr char kDownloadLastCompleteTime[] =
+ "download.last_complete_time";
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ inline constexpr char kOpenPdfDownloadInSystemReader[] =
+ "download.open_pdf_in_system_reader";
+ #endif
+@@ -2392,14 +2392,14 @@ inline constexpr char kMediaStorageIdSalt[] = "media.s
+ inline constexpr char kMediaCdmOriginData[] = "media.cdm.origin_data";
+ #endif // BUILDFLAG(IS_WIN)
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // A boolean pref to determine whether or not the network service is running
+ // sandboxed.
+ inline constexpr char kNetworkServiceSandboxEnabled[] =
+ "net.network_service_sandbox";
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Records whether the user has seen an HTTP auth "negotiate" header.
+ inline constexpr char kReceivedHttpAuthNegotiateHeader[] =
+ "net.received_http_auth_negotiate_headers";
+@@ -2477,7 +2477,7 @@ inline constexpr char kAmbientAuthenticationInPrivateM
+ inline constexpr char kBasicAuthOverHttpEnabled[] =
+ "auth.basic_over_http_enabled";
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Boolean that specifies whether OK-AS-DELEGATE flag from KDC is respected
+ // along with kAuthNegotiateDelegateAllowlist.
+ inline constexpr char kAuthNegotiateDelegateByKdcPolicy[] =
+@@ -3551,7 +3551,7 @@ inline constexpr char kFileOrDirectoryPickerWithoutGes
+ inline constexpr char kSandboxExternalProtocolBlocked[] =
+ "profile.sandbox_external_protocol_blocked";
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Boolean that indicates if system notifications are allowed to be used in
+ // place of Chrome notifications.
+ inline constexpr char kAllowSystemNotifications[] =
+@@ -3607,7 +3607,7 @@ inline constexpr char kCACertificateManagementAllowed[
+ inline constexpr char kChromeRootStoreEnabled[] = "chrome_root_store_enabled";
+ #endif
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ inline constexpr char kEnforceLocalAnchorConstraintsEnabled[] =
+ "enforce_local_anchor_constraints_enabled";
+ #endif
+@@ -3921,7 +3921,7 @@ inline constexpr char kThrottleNonVisibleCrossOriginIf
+ inline constexpr char kNewBaseUrlInheritanceBehaviorAllowed[] =
+ "new_base_url_inheritance_behavior_allowed";
+
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // If this exists and is true, Chrome may run system DNS resolution out of the
+ // network process. If false, Chrome will run system DNS resolution in the
+ // network process. If non-existent, Chrome will decide where to run system DNS
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_url__constants.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_url__constants.cc
new file mode 100644
index 000000000000..4e4c4256a7c0
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_url__constants.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/chrome/common/url_constants.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/chrome/common/url_constants.cc
+@@ -560,7 +560,7 @@ const char kPhoneHubPermissionLearnMoreURL[] =
+ "https://support.google.com/chromebook/?p=multidevice";
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ const char kChromeAppsDeprecationLearnMoreURL[] =
+ "https://support.google.com/chrome/?p=chrome_app_deprecation";
+ #endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_url__constants.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_url__constants.h
new file mode 100644
index 000000000000..f6a5d2a1b0dd
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_url__constants.h
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/chrome/common/url_constants.h.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/chrome/common/url_constants.h
+@@ -537,7 +537,7 @@ extern const char kOutdatedPluginLearnMoreURL[];
+ extern const char kPhoneHubPermissionLearnMoreURL[];
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+
+ // "Learn more" URL for the chrome apps deprecation dialog.
+ extern const char kChromeAppsDeprecationLearnMoreURL[];
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_webui__url__constants.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_webui__url__constants.cc
index d77fe97d96d2..b6a7bd6460f4 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_webui__url__constants.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_webui__url__constants.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/chrome/common/webui_url_constants.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/chrome/common/webui_url_constants.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/chrome/common/webui_url_constants.cc
-@@ -514,18 +514,18 @@ const char kOsUIVersionURL[] = "os://version";
+@@ -503,18 +503,18 @@ const char kOsUIVersionURL[] = "os://version";
const char kOsUIVersionURL[] = "os://version";
#endif
@@ -22,7 +22,7 @@
const char kChromeUIDiscardsHost[] = "discards";
const char kChromeUIDiscardsURL[] = "chrome://discards/";
#endif
-@@ -540,14 +540,14 @@ const char kChromeUILinuxProxyConfigHost[] = "linux-pr
+@@ -529,14 +529,14 @@ const char kChromeUILinuxProxyConfigHost[] = "linux-pr
#endif
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
@@ -39,7 +39,7 @@
const char kChromeUIBrowserSwitchHost[] = "browser-switch";
const char kChromeUIBrowserSwitchURL[] = "chrome://browser-switch/";
const char kChromeUIEnterpriseProfileWelcomeHost[] =
-@@ -564,7 +564,7 @@ const char kChromeUIProfilePickerStartupQuery[] = "sta
+@@ -555,7 +555,7 @@ const char kChromeUIProfilePickerStartupQuery[] = "sta
const char kChromeUIProfilePickerStartupQuery[] = "startup";
#endif
@@ -48,7 +48,7 @@
defined(TOOLKIT_VIEWS)) || \
defined(USE_AURA)
const char kChromeUITabModalConfirmDialogHost[] = "tab-modal-confirm-dialog";
-@@ -644,7 +644,7 @@ const char kPrivacySandboxSubPagePath[] = "/privacySan
+@@ -637,7 +637,7 @@ const char kPrivacySandboxSubPagePath[] = "/privacySan
#endif
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
@@ -57,7 +57,7 @@
const char kChromeUIWebAppSettingsURL[] = "chrome://app-settings/";
const char kChromeUIWebAppSettingsHost[] = "app-settings";
#endif
-@@ -880,7 +880,7 @@ const char* const kChromeDebugURLs[] = {
+@@ -888,7 +888,7 @@ const char* const kChromeDebugURLs[] = {
blink::kChromeUIGpuJavaCrashURL,
kChromeUIJavaCrashURL,
#endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_webui__url__constants.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_webui__url__constants.h
index 595b89b1194f..0d4b951f5af2 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_webui__url__constants.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_common_webui__url__constants.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/chrome/common/webui_url_constants.h.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/chrome/common/webui_url_constants.h.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/chrome/common/webui_url_constants.h
-@@ -433,24 +433,24 @@ extern const char kOsUIVersionURL[];
+@@ -420,24 +420,24 @@ extern const char kOsUIVersionURL[];
extern const char kOsUIVersionURL[];
#endif
@@ -29,7 +29,7 @@
extern const char kChromeUIWebAppSettingsURL[];
extern const char kChromeUIWebAppSettingsHost[];
#endif
-@@ -465,14 +465,14 @@ extern const char kChromeUILinuxProxyConfigHost[];
+@@ -452,7 +452,7 @@ extern const char kChromeUILinuxProxyConfigHost[];
#endif
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
@@ -38,15 +38,16 @@
extern const char kChromeUISandboxHost[];
#endif
+@@ -464,7 +464,7 @@ extern const char kChromeUISearchEngineChoiceHost[];
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FUCHSIA) || \
- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
-+ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_BSD)
extern const char kChromeUIBrowserSwitchHost[];
extern const char kChromeUIBrowserSwitchURL[];
extern const char kChromeUIEnterpriseProfileWelcomeHost[];
-@@ -486,7 +486,7 @@ extern const char kChromeUIProfilePickerStartupQuery[]
+@@ -480,7 +480,7 @@ extern const char kChromeUIProfilePickerStartupQuery[]
extern const char kChromeUIProfilePickerStartupQuery[];
#endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_renderer_chrome__render__frame__observer.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_renderer_chrome__render__frame__observer.cc
new file mode 100644
index 000000000000..92600c40052b
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_renderer_chrome__render__frame__observer.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/chrome/renderer/chrome_render_frame_observer.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/chrome/renderer/chrome_render_frame_observer.cc
+@@ -349,7 +349,7 @@ void ChromeRenderFrameObserver::OnDestruct() {
+
+ void ChromeRenderFrameObserver::DraggableRegionsChanged() {
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Only the main frame is allowed to control draggable regions, to avoid other
+ // frames manipulate the regions in the browser process.
+ if (!render_frame()->IsMainFrame())
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_test_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_test_BUILD.gn
new file mode 100644
index 000000000000..67fbfe0dbd94
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_test_BUILD.gn
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/chrome/test/BUILD.gn.orig 2023-12-12 22:08:45 UTC
++++ src/3rdparty/chromium/chrome/test/BUILD.gn
+@@ -11028,7 +11028,7 @@ test("chrome_app_unittests") {
+ "//components/heap_profiling/in_process",
+ "//components/safe_browsing:buildflags",
+ ]
+- if (!is_fuchsia && !is_mac) {
++ if (!is_fuchsia && !is_mac && !is_bsd) {
+ deps += [ "//third_party/breakpad:client" ]
+ }
+ if (is_android) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_test_chromedriver_chrome__launcher.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_test_chromedriver_chrome__launcher.cc
new file mode 100644
index 000000000000..3445ef9a0d31
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_test_chromedriver_chrome__launcher.cc
@@ -0,0 +1,10 @@
+--- src/3rdparty/chromium/chrome/test/chromedriver/chrome_launcher.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/chrome/test/chromedriver/chrome_launcher.cc
+@@ -69,6 +69,7 @@
+ #include <fcntl.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
++#include <sys/wait.h>
+ #include <unistd.h>
+ #elif BUILDFLAG(IS_WIN)
+ #include <windows.h>
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_test_chromedriver_chrome_chrome__finder.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_test_chromedriver_chrome_chrome__finder.cc
new file mode 100644
index 000000000000..0bdc905691f4
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_test_chromedriver_chrome_chrome__finder.cc
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/chrome/test/chromedriver/chrome/chrome_finder.cc.orig 2023-08-04 12:03:57 UTC
++++ src/3rdparty/chromium/chrome/test/chromedriver/chrome/chrome_finder.cc
+@@ -57,7 +57,7 @@ void GetApplicationDirs(std::vector<base::FilePath>* l
+ installation_locations[i].Append(L"Chromium\\Application"));
+ }
+ }
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ void GetApplicationDirs(std::vector<base::FilePath>* locations) {
+ // TODO: Respect users' PATH variables.
+ // Until then, we use an approximation of the most common defaults.
+@@ -157,7 +157,7 @@ bool FindChrome(base::FilePath* browser_exe) {
+ base::FilePath(chrome::kGoogleChromeForTestingBrowserProcessExecutablePath),
+ base::FilePath(chrome::kGoogleChromeBrowserProcessExecutablePath),
+ base::FilePath(chrome::kChromiumBrowserProcessExecutablePath),
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ base::FilePath(chrome::kBrowserProcessExecutablePath),
+ base::FilePath("chrome"), // Chrome for Testing or Google Chrome
+ base::FilePath("google-chrome"),
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_autofill__payments__strings.grdp b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_autofill__payments__strings.grdp
index 2b6ae7227567..1e0b53511ea1 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_autofill__payments__strings.grdp
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_autofill__payments__strings.grdp
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/components/autofill_payments_strings.grdp.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/components/autofill_payments_strings.grdp.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/components/autofill_payments_strings.grdp
-@@ -118,7 +118,7 @@
+@@ -130,7 +130,7 @@
<message name="IDS_AUTOFILL_FIX_FLOW_PROMPT_SAVE_CARD_LABEL" desc="Text to show on the button to save the card to Google when the fix flow dialog is shown after the Autofill save card prompt." formatter_data="android_java">
Save card
</message>
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_autofill_core_browser_contact__info__sync__util.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_autofill_core_browser_contact__info__sync__util.cc
new file mode 100644
index 000000000000..b80b75fc5ee4
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_autofill_core_browser_contact__info__sync__util.cc
@@ -0,0 +1,18 @@
+--- src/3rdparty/chromium/components/autofill/core/browser/contact_info_sync_util.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/components/autofill/core/browser/contact_info_sync_util.cc
+@@ -174,9 +174,15 @@ class ContactInfoProfileSetter {
+ CHECK(observations.empty());
+ for (const sync_pb::ContactInfoSpecifics::Observation& proto_observation :
+ proto_observations) {
++#if defined(__clang__) && (__clang_major__ >= 15)
+ observations.emplace_back(proto_observation.type(),
+ ProfileTokenQuality::FormSignatureHash(
+ proto_observation.form_hash()));
++#else
++ observations.emplace_back() = { static_cast<unsigned char>(proto_observation.type()),
++ ProfileTokenQuality::FormSignatureHash(
++ proto_observation.form_hash()) };
++#endif
+ }
+ }
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_autofill_core_browser_personal__data__manager.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_autofill_core_browser_personal__data__manager.cc
index 2b1ac7181e5a..69dc752cebd1 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_autofill_core_browser_personal__data__manager.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_autofill_core_browser_personal__data__manager.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/components/autofill/core/browser/personal_data_manager.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/components/autofill/core/browser/personal_data_manager.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/components/autofill/core/browser/personal_data_manager.cc
-@@ -2253,7 +2253,8 @@ bool PersonalDataManager::ShouldShowCardsFromAccountOp
+@@ -2492,7 +2492,8 @@ bool PersonalDataManager::ShouldShowCardsFromAccountOp
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || \
@@ -9,4 +9,4 @@
+ BUILDFLAG(IS_BSD)
// This option should only be shown for users that have not enabled the Sync
// Feature and that have server credit cards available.
- if (!sync_service_ || sync_service_->IsSyncFeatureEnabled() ||
+ // TODO(crbug.com/1462552): Simplify once ConsentLevel::kSync and
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_autofill_core_browser_webdata_autofill__sync__bridge__util.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_autofill_core_browser_webdata_autofill__sync__bridge__util.cc
new file mode 100644
index 000000000000..8e4f33f7ee9e
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_autofill_core_browser_webdata_autofill__sync__bridge__util.cc
@@ -0,0 +1,22 @@
+--- src/3rdparty/chromium/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc
+@@ -553,11 +553,19 @@ ServerCvc AutofillWalletCvcStructDataFromWalletCredent
+ base::StringToInt64(wallet_credential_specifics.instrument_id(),
+ &instrument_id);
+
++#if defined(__clang__) && (__clang_major__ >= 15)
+ return ServerCvc(
+ instrument_id, base::UTF8ToUTF16(wallet_credential_specifics.cvc()),
+ base::Time::UnixEpoch() +
+ base::Milliseconds(wallet_credential_specifics
+ .last_updated_time_unix_epoch_millis()));
++#else
++ return ServerCvc( {
++ instrument_id, base::UTF8ToUTF16(wallet_credential_specifics.cvc()),
++ base::Time::UnixEpoch() +
++ base::Milliseconds(wallet_credential_specifics
++ .last_updated_time_unix_epoch_millis()) });
++#endif
+ }
+
+ VirtualCardUsageData VirtualCardUsageDataFromUsageSpecifics(
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_autofill_core_common_autofill__payments__features.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_autofill_core_common_autofill__payments__features.cc
index 175dce1c3881..a9efef1f1241 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_autofill_core_common_autofill__payments__features.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_autofill_core_common_autofill__payments__features.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/components/autofill/core/common/autofill_payments_features.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/components/autofill/core/common/autofill_payments_features.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/components/autofill/core/common/autofill_payments_features.cc
-@@ -270,7 +270,7 @@ const base::FeatureParam<int>
+@@ -281,7 +281,7 @@ BASE_FEATURE(kEnablePixPayments,
bool ShouldShowImprovedUserConsentForCreditCardSave() {
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_autofill_core_common_autofill__util.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_autofill_core_common_autofill__util.cc
index 45ed3e6c7a57..3050c1af8432 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_autofill_core_common_autofill__util.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_autofill_core_common_autofill__util.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/components/autofill/core/common/autofill_util.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/components/autofill/core/common/autofill_util.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/components/autofill/core/common/autofill_util.cc
-@@ -156,7 +156,7 @@ bool SanitizedFieldIsEmpty(const std::u16string& value
+@@ -153,7 +153,7 @@ bool SanitizedFieldIsEmpty(const std::u16string& value
bool ShouldAutoselectFirstSuggestionOnArrowDown() {
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_commerce__strings.grdp b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_commerce__strings.grdp
new file mode 100644
index 000000000000..c2c2bfd11d9c
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_commerce__strings.grdp
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/commerce_strings.grdp.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/components/commerce_strings.grdp
+@@ -292,7 +292,7 @@
+ <message name="IDS_PRICE_HISTORY_DESCRIPTION" desc="The description of the Price History section in the Shopping Insights side panel explaining how the prices are gathered.">
+ Typical prices are based on stores across the web over the past 90 days.
+ </message>
+- <if expr="is_win or is_linux">
++ <if expr="is_win or is_posix">
+ <then>
+ <message name="IDS_PRICE_HISTORY_GRAPH_ACCESSIBILITY" desc="Accessibility string for the price history graph indicating how users can review the price changes on the graph.">
+ Browse mode, you can change to Forms mode to use the left/right arrow to review price changes on the graph
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_components__chromium__strings.grd b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_components__chromium__strings.grd
index 33e63f90895e..e9a83b5cca65 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_components__chromium__strings.grd
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_components__chromium__strings.grd
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/components/components_chromium_strings.grd.orig 2023-02-08 09:03:45 UTC
+--- src/3rdparty/chromium/components/components_chromium_strings.grd.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/components/components_chromium_strings.grd
-@@ -220,7 +220,7 @@
+@@ -226,7 +226,7 @@
</message>
</if>
<!-- The ChromeOS version of this string is defined in //components/error_page_strings.grdp. -->
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_components__google__chrome__strings.grd b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_components__google__chrome__strings.grd
index d3c31feb7f34..9e9e4e219df3 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_components__google__chrome__strings.grd
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_components__google__chrome__strings.grd
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/components/components_google_chrome_strings.grd.orig 2023-02-08 09:03:45 UTC
+--- src/3rdparty/chromium/components/components_google_chrome_strings.grd.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/components/components_google_chrome_strings.grd
-@@ -220,7 +220,7 @@
+@@ -226,7 +226,7 @@
</message>
</if>
<!-- The ChromeOS version of this string is defined in //components/error_page_strings.grdp. -->
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_crash_core_app_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_crash_core_app_BUILD.gn
index 0a45f6bb117d..0df6ae034759 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_crash_core_app_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_crash_core_app_BUILD.gn
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/components/crash/core/app/BUILD.gn.orig 2022-11-30 08:12:58 UTC
+--- src/3rdparty/chromium/components/crash/core/app/BUILD.gn.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/components/crash/core/app/BUILD.gn
-@@ -52,7 +52,7 @@ static_library("app") {
+@@ -72,7 +72,7 @@ static_library("app") {
"crashpad.h",
]
@@ -9,7 +9,7 @@
sources += [ "crashpad_linux.cc" ]
}
-@@ -65,6 +65,10 @@ static_library("app") {
+@@ -85,6 +85,10 @@ static_library("app") {
]
}
@@ -20,7 +20,7 @@
defines = [ "CRASH_IMPLEMENTATION" ]
public_deps = [ ":lib" ]
-@@ -96,7 +100,7 @@ static_library("app") {
+@@ -113,7 +117,7 @@ static_library("app") {
libs = [ "log" ]
}
@@ -29,7 +29,7 @@
deps += [
"//base:base_static",
"//components/crash/core/common",
-@@ -224,11 +228,6 @@ if (is_mac || is_android || is_linux || is_chromeos) {
+@@ -241,11 +245,6 @@ if (is_mac || is_android || is_linux || is_chromeos) {
# define custom UserStreamDataSources.
executable("chrome_crashpad_handler") {
sources = [ "chrome_crashpad_handler.cc" ]
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_crash_core_app_chrome__crashpad__handler.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_crash_core_app_chrome__crashpad__handler.cc
new file mode 100644
index 000000000000..c8ec0dfb2bf6
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_crash_core_app_chrome__crashpad__handler.cc
@@ -0,0 +1,12 @@
+--- src/3rdparty/chromium/components/crash/core/app/chrome_crashpad_handler.cc.orig 2022-02-07 13:39:41 UTC
++++ src/3rdparty/chromium/components/crash/core/app/chrome_crashpad_handler.cc
+@@ -6,5 +6,9 @@
+ extern "C" int CrashpadHandlerMain(int argc, char* argv[]);
+
+ int main(int argc, char* argv[]) {
++#if defined(__OpenBSD__) || defined(__FreeBSD__)
++ return -1;
++#else
+ return CrashpadHandlerMain(argc, argv);
++#endif
+ }
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_crash_core_browser_crash__upload__list__crashpad.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_crash_core_browser_crash__upload__list__crashpad.cc
new file mode 100644
index 000000000000..52f8cda11e33
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_crash_core_browser_crash__upload__list__crashpad.cc
@@ -0,0 +1,26 @@
+--- src/3rdparty/chromium/components/crash/core/browser/crash_upload_list_crashpad.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/components/crash/core/browser/crash_upload_list_crashpad.cc
+@@ -38,7 +38,9 @@ CrashUploadListCrashpad::~CrashUploadListCrashpad() =
+ std::vector<std::unique_ptr<UploadList::UploadInfo>>
+ CrashUploadListCrashpad::LoadUploadList() {
+ std::vector<crash_reporter::Report> reports;
++#if !BUILDFLAG(IS_BSD)
+ crash_reporter::GetReports(&reports);
++#endif
+
+ std::vector<std::unique_ptr<UploadInfo>> uploads;
+ for (const crash_reporter::Report& report : reports) {
+@@ -52,9 +54,13 @@ CrashUploadListCrashpad::LoadUploadList() {
+
+ void CrashUploadListCrashpad::ClearUploadList(const base::Time& begin,
+ const base::Time& end) {
++#if !BUILDFLAG(IS_BSD)
+ crash_reporter::ClearReportsBetween(begin, end);
++#endif
+ }
+
+ void CrashUploadListCrashpad::RequestSingleUpload(const std::string& local_id) {
++#if !BUILDFLAG(IS_BSD)
+ crash_reporter::RequestSingleCrashUpload(local_id);
++#endif
+ }
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_crash_core_common_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_crash_core_common_BUILD.gn
index f1bbd08b7b3a..71e24e436073 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_crash_core_common_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_crash_core_common_BUILD.gn
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/components/crash/core/common/BUILD.gn.orig 2022-11-30 08:12:58 UTC
+--- src/3rdparty/chromium/components/crash/core/common/BUILD.gn.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/components/crash/core/common/BUILD.gn
-@@ -8,7 +8,7 @@ import("//components/gwp_asan/buildflags/buildflags.gn
+@@ -9,7 +9,7 @@ import("//components/gwp_asan/buildflags/buildflags.gn
declare_args() {
# If set to true, this will stub out and disable the entire crash key system.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_browser_mock__signals__aggregator.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_browser_mock__signals__aggregator.h
new file mode 100644
index 000000000000..c10e886469e8
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_browser_mock__signals__aggregator.h
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/device_signals/core/browser/mock_signals_aggregator.h.orig 2023-07-16 15:47:57 UTC
++++ src/3rdparty/chromium/components/device_signals/core/browser/mock_signals_aggregator.h
+@@ -17,7 +17,7 @@ class MockSignalsAggregator : public SignalsAggregator
+ MockSignalsAggregator();
+ ~MockSignalsAggregator() override;
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ MOCK_METHOD(void,
+ GetSignalsForUser,
+ (const UserContext&,
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_browser_signals__aggregator.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_browser_signals__aggregator.h
new file mode 100644
index 000000000000..8945a39bfae4
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_browser_signals__aggregator.h
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/device_signals/core/browser/signals_aggregator.h.orig 2023-07-16 15:47:57 UTC
++++ src/3rdparty/chromium/components/device_signals/core/browser/signals_aggregator.h
+@@ -22,7 +22,7 @@ class SignalsAggregator : public KeyedService {
+
+ ~SignalsAggregator() override = default;
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Will asynchronously collect signals whose names are specified in the
+ // `request` object, and will also use a `user_context` to validate that the
+ // user has permissions to the device's signals. Invokes `callback` with the
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_browser_signals__aggregator__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_browser_signals__aggregator__impl.cc
new file mode 100644
index 000000000000..b969d8274da0
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_browser_signals__aggregator__impl.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/device_signals/core/browser/signals_aggregator_impl.cc.orig 2023-07-16 15:47:57 UTC
++++ src/3rdparty/chromium/components/device_signals/core/browser/signals_aggregator_impl.cc
+@@ -65,7 +65,7 @@ SignalsAggregatorImpl::SignalsAggregatorImpl(
+
+ SignalsAggregatorImpl::~SignalsAggregatorImpl() = default;
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void SignalsAggregatorImpl::GetSignalsForUser(
+ const UserContext& user_context,
+ const SignalsAggregationRequest& request,
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_browser_signals__aggregator__impl.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_browser_signals__aggregator__impl.h
new file mode 100644
index 000000000000..16687e49a244
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_browser_signals__aggregator__impl.h
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/device_signals/core/browser/signals_aggregator_impl.h.orig 2023-07-16 15:47:57 UTC
++++ src/3rdparty/chromium/components/device_signals/core/browser/signals_aggregator_impl.h
+@@ -29,7 +29,7 @@ class SignalsAggregatorImpl : public SignalsAggregator
+ ~SignalsAggregatorImpl() override;
+
+ // SignalsAggregator:
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void GetSignalsForUser(const UserContext& user_context,
+ const SignalsAggregationRequest& request,
+ GetSignalsCallback callback) override;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_browser_user__permission__service.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_browser_user__permission__service.h
new file mode 100644
index 000000000000..7e4320d11974
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_browser_user__permission__service.h
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/device_signals/core/browser/user_permission_service.h.orig 2023-07-16 15:47:57 UTC
++++ src/3rdparty/chromium/components/device_signals/core/browser/user_permission_service.h
+@@ -57,7 +57,7 @@ class UserPermissionService : public KeyedService {
+ // missing.
+ virtual bool ShouldCollectConsent() const = 0;
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Will verify whether context-aware signals can be collected
+ // on behalf of the user represented by `user_context`. Returns `kGranted` if
+ // collection is allowed.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_browser_user__permission__service__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_browser_user__permission__service__impl.cc
new file mode 100644
index 000000000000..64bcd72f3ed5
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_browser_user__permission__service__impl.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/device_signals/core/browser/user_permission_service_impl.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/components/device_signals/core/browser/user_permission_service_impl.cc
+@@ -92,7 +92,7 @@ bool UserPermissionServiceImpl::ShouldCollectConsent()
+ consent_required_by_dependent_policy;
+ }
+
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ UserPermission UserPermissionServiceImpl::CanUserCollectSignals(
+ const UserContext& user_context) const {
+ // Return "unknown user" if no user ID was given.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_browser_user__permission__service__impl.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_browser_user__permission__service__impl.h
new file mode 100644
index 000000000000..d13ac5ce39bc
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_browser_user__permission__service__impl.h
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/device_signals/core/browser/user_permission_service_impl.h.orig 2023-07-16 15:47:57 UTC
++++ src/3rdparty/chromium/components/device_signals/core/browser/user_permission_service_impl.h
+@@ -39,7 +39,7 @@ class UserPermissionServiceImpl : public UserPermissio
+
+ // UserPermissionService:
+ bool ShouldCollectConsent() const override;
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ UserPermission CanUserCollectSignals(
+ const UserContext& user_context) const override;
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_common_signals__features.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_common_signals__features.cc
new file mode 100644
index 000000000000..e4133bba0bd3
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_common_signals__features.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/device_signals/core/common/signals_features.cc.orig 2023-08-17 07:33:31 UTC
++++ src/3rdparty/chromium/components/device_signals/core/common/signals_features.cc
+@@ -46,7 +46,7 @@ bool IsNewFunctionEnabled(NewEvFunction new_ev_functio
+ }
+
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_CHROMEOS_ASH)
++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ // Enables the triggering of device signals consent dialog when conditions met
+ // This feature also requires UnmanagedDeviceSignalsConsentFlowEnabled policy to
+ // be enabled
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_common_signals__features.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_common_signals__features.h
new file mode 100644
index 000000000000..5dc4cb05216f
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_common_signals__features.h
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/device_signals/core/common/signals_features.h.orig 2023-08-17 07:33:31 UTC
++++ src/3rdparty/chromium/components/device_signals/core/common/signals_features.h
+@@ -28,7 +28,7 @@ enum class NewEvFunction { kFileSystemInfo, kSettings,
+ bool IsNewFunctionEnabled(NewEvFunction new_ev_function);
+
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_CHROMEOS_ASH)
++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ BASE_DECLARE_FEATURE(kDeviceSignalsConsentDialog);
+
+ // Returns true if device signals consent dialog has been enabled for
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_system__signals_platform__delegate.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_system__signals_platform__delegate.cc
new file mode 100644
index 000000000000..ba31ef8c88fa
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_device__signals_core_system__signals_platform__delegate.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/device_signals/core/system_signals/platform_delegate.cc.orig 2022-09-24 10:57:32 UTC
++++ src/3rdparty/chromium/components/device_signals/core/system_signals/platform_delegate.cc
+@@ -11,7 +11,7 @@ namespace device_signals {
+
+ bool CustomFilePathComparator::operator()(const base::FilePath& a,
+ const base::FilePath& b) const {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // On Linux, the file system is case sensitive.
+ return a < b;
+ #else
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_embedder__support_user__agent__utils.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_embedder__support_user__agent__utils.cc
new file mode 100644
index 000000000000..df08ebcae4e2
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_embedder__support_user__agent__utils.cc
@@ -0,0 +1,12 @@
+--- src/3rdparty/chromium/components/embedder_support/user_agent_utils.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/components/embedder_support/user_agent_utils.cc
+@@ -432,6 +432,9 @@ std::string GetPlatformForUAMetadata() {
+ # else
+ return "Chromium OS";
+ # endif
++#elif BUILDFLAG(IS_BSD)
++ // The internet is weird...
++ return "Linux";
+ #else
+ return std::string(version_info::GetOSType());
+ #endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feature__engagement_public_event__constants.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feature__engagement_public_event__constants.cc
new file mode 100644
index 000000000000..45d8fe3c9b29
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feature__engagement_public_event__constants.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/feature_engagement/public/event_constants.cc.orig 2022-02-28 16:54:41 UTC
++++ src/3rdparty/chromium/components/feature_engagement/public/event_constants.cc
+@@ -11,7 +11,7 @@ namespace feature_engagement {
+ namespace events {
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ const char kNewTabOpened[] = "new_tab_opened";
+ const char kSixthTabOpened[] = "sixth_tab_opened";
+ const char kTabGroupCreated[] = "tab_group_created";
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feature__engagement_public_event__constants.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feature__engagement_public_event__constants.h
new file mode 100644
index 000000000000..1c61f2507d9f
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feature__engagement_public_event__constants.h
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/feature_engagement/public/event_constants.h.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/components/feature_engagement/public/event_constants.h
+@@ -14,7 +14,7 @@ namespace events {
+
+ // Desktop
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ // The user has explicitly opened a new tab via an entry point from inside of
+ // Chrome.
+ extern const char kNewTabOpened[];
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feature__engagement_public_feature__configurations.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feature__engagement_public_feature__configurations.cc
new file mode 100644
index 000000000000..eacb45825e24
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feature__engagement_public_feature__configurations.cc
@@ -0,0 +1,21 @@
+--- src/3rdparty/chromium/components/feature_engagement/public/feature_configurations.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/components/feature_engagement/public/feature_configurations.cc
+@@ -46,7 +46,7 @@ FeatureConfig CreateAlwaysTriggerConfig(const base::Fe
+ absl::optional<FeatureConfig> GetClientSideFeatureConfig(
+ const base::Feature* feature) {
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ if (kIPHPasswordsAccountStorageFeature.name == feature->name) {
+ absl::optional<FeatureConfig> config = FeatureConfig();
+ config->valid = true;
+@@ -1336,7 +1336,8 @@ absl::optional<FeatureConfig> GetClientSideFeatureConf
+ #endif // BUILDFLAG(IS_ANDROID)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \
++ BUILDFLAG(IS_BSD)
+
+ if (kIPHAutofillExternalAccountProfileSuggestionFeature.name ==
+ feature->name) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feature__engagement_public_feature__constants.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feature__engagement_public_feature__constants.cc
new file mode 100644
index 000000000000..8dd1aa2f62ed
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feature__engagement_public_feature__constants.cc
@@ -0,0 +1,21 @@
+--- src/3rdparty/chromium/components/feature_engagement/public/feature_constants.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/components/feature_engagement/public/feature_constants.cc
+@@ -21,7 +21,7 @@ BASE_FEATURE(kUseClientConfigIPH,
+ BASE_FEATURE(kIPHDummyFeature, "IPH_Dummy", base::FEATURE_DISABLED_BY_DEFAULT);
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kIPHAutofillFeedbackNewBadgeFeature,
+ "IPH_AutofillFeedbackNewBadge",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+@@ -519,7 +519,8 @@ BASE_FEATURE(kIPHiOSPromoPasswordManagerWidgetFeature,
+ #endif // BUILDFLAG(IS_IOS)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \
++ BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kIPHAutofillExternalAccountProfileSuggestionFeature,
+ "IPH_AutofillExternalAccountProfileSuggestion",
+ base::FEATURE_ENABLED_BY_DEFAULT);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feature__engagement_public_feature__constants.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feature__engagement_public_feature__constants.h
new file mode 100644
index 000000000000..67ad6e46d739
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feature__engagement_public_feature__constants.h
@@ -0,0 +1,21 @@
+--- src/3rdparty/chromium/components/feature_engagement/public/feature_constants.h.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/components/feature_engagement/public/feature_constants.h
+@@ -23,7 +23,7 @@ BASE_DECLARE_FEATURE(kUseClientConfigIPH);
+ BASE_DECLARE_FEATURE(kIPHDummyFeature);
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ BASE_DECLARE_FEATURE(kIPHAutofillFeedbackNewBadgeFeature);
+ BASE_DECLARE_FEATURE(kIPHBatterySaverModeFeature);
+ BASE_DECLARE_FEATURE(kIPHCompanionSidePanelFeature);
+@@ -211,7 +211,8 @@ BASE_DECLARE_FEATURE(kIPHiOSPromoPasswordManagerWidget
+ #endif // BUILDFLAG(IS_IOS)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \
++ BUILDFLAG(IS_BSD)
+ BASE_DECLARE_FEATURE(kIPHAutofillExternalAccountProfileSuggestionFeature);
+ BASE_DECLARE_FEATURE(kIPHAutofillVirtualCardCVCSuggestionFeature);
+ BASE_DECLARE_FEATURE(kIPHAutofillVirtualCardSuggestionFeature);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feature__engagement_public_feature__list.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feature__engagement_public_feature__list.cc
new file mode 100644
index 000000000000..17611addcc17
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feature__engagement_public_feature__list.cc
@@ -0,0 +1,21 @@
+--- src/3rdparty/chromium/components/feature_engagement/public/feature_list.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/components/feature_engagement/public/feature_list.cc
+@@ -139,7 +139,7 @@ const base::Feature* const kAllFeatures[] = {
+ &kIPHiOSPromoPasswordManagerWidgetFeature,
+ #endif // BUILDFLAG(IS_IOS)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ &kIPHAutofillFeedbackNewBadgeFeature,
+ &kIPHBatterySaverModeFeature,
+ &kIPHCompanionSidePanelFeature,
+@@ -186,7 +186,8 @@ const base::Feature* const kAllFeatures[] = {
+ // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \
++ BUILDFLAG(IS_BSD)
+ &kIPHAutofillExternalAccountProfileSuggestionFeature,
+ &kIPHAutofillVirtualCardCVCSuggestionFeature,
+ &kIPHAutofillVirtualCardSuggestionFeature,
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feature__engagement_public_feature__list.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feature__engagement_public_feature__list.h
new file mode 100644
index 000000000000..f39c82c3a1b9
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feature__engagement_public_feature__list.h
@@ -0,0 +1,40 @@
+--- src/3rdparty/chromium/components/feature_engagement/public/feature_list.h.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/components/feature_engagement/public/feature_list.h
+@@ -259,7 +259,7 @@ DEFINE_VARIATION_PARAM(kIPHiOSPromoPasswordManagerWidg
+ #endif // BUILDFLAG(IS_IOS)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ DEFINE_VARIATION_PARAM(kIPHAutofillFeedbackNewBadgeFeature,
+ "IPH_AutofillFeedbackNewBadge");
+ DEFINE_VARIATION_PARAM(kIPHBatterySaverModeFeature, "IPH_BatterySaverMode");
+@@ -335,7 +335,8 @@ DEFINE_VARIATION_PARAM(kIPHBackNavigationMenuFeature,
+ // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \
++ BUILDFLAG(IS_BSD)
+ DEFINE_VARIATION_PARAM(kIPHAutofillExternalAccountProfileSuggestionFeature,
+ "IPH_AutofillExternalAccountProfileSuggestion");
+ DEFINE_VARIATION_PARAM(kIPHAutofillVirtualCardCVCSuggestionFeature,
+@@ -541,7 +542,7 @@ constexpr flags_ui::FeatureEntry::FeatureVariation
+ VARIATION_ENTRY(kIPHiOSPromoPostRestoreDefaultBrowserFeature),
+ VARIATION_ENTRY(kIPHiOSPromoPasswordManagerWidgetFeature),
+ #elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ VARIATION_ENTRY(kIPHAutofillFeedbackNewBadgeFeature),
+ VARIATION_ENTRY(kIPHBatterySaverModeFeature),
+ VARIATION_ENTRY(kIPHCompanionSidePanelFeature),
+@@ -589,7 +590,8 @@ constexpr flags_ui::FeatureEntry::FeatureVariation
+ // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \
++ BUILDFLAG(IS_BSD)
+ VARIATION_ENTRY(kIPHAutofillExternalAccountProfileSuggestionFeature),
+ VARIATION_ENTRY(kIPHAutofillVirtualCardCVCSuggestionFeature),
+ VARIATION_ENTRY(kIPHAutofillVirtualCardSuggestionFeature),
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feed_core_proto_v2_wire_version.proto b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feed_core_proto_v2_wire_version.proto
new file mode 100644
index 000000000000..626494912842
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feed_core_proto_v2_wire_version.proto
@@ -0,0 +1,13 @@
+--- src/3rdparty/chromium/components/feed/core/proto/v2/wire/version.proto.orig 2021-05-12 22:05:49 UTC
++++ src/3rdparty/chromium/components/feed/core/proto/v2/wire/version.proto
+@@ -25,8 +25,8 @@ message Version {
+ BETA = 3;
+ RELEASE = 4;
+ }
+- optional int32 major = 1;
+- optional int32 minor = 2;
++ optional int32 gmajor = 1;
++ optional int32 gminor = 2;
+ optional int32 build = 3;
+ optional int32 revision = 4;
+ optional Architecture architecture = 5;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feed_core_v2_proto__util.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feed_core_v2_proto__util.cc
new file mode 100644
index 000000000000..076274fd9203
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_feed_core_v2_proto__util.cc
@@ -0,0 +1,24 @@
+--- src/3rdparty/chromium/components/feed/core/v2/proto_util.cc.orig 2023-07-16 15:47:57 UTC
++++ src/3rdparty/chromium/components/feed/core/v2/proto_util.cc
+@@ -93,8 +93,8 @@ feedwire::Version GetPlatformVersionMessage() {
+
+ int32_t major, minor, revision;
+ base::SysInfo::OperatingSystemVersionNumbers(&major, &minor, &revision);
+- result.set_major(major);
+- result.set_minor(minor);
++ result.set_gmajor(major);
++ result.set_gminor(minor);
+ result.set_revision(revision);
+ #if BUILDFLAG(IS_ANDROID)
+ result.set_api_version(base::android::BuildInfo::GetInstance()->sdk_int());
+@@ -109,8 +109,8 @@ feedwire::Version GetAppVersionMessage(const ChromeInf
+ // Chrome's version is in the format: MAJOR,MINOR,BUILD,PATCH.
+ const std::vector<uint32_t>& numbers = chrome_info.version.components();
+ if (numbers.size() > 3) {
+- result.set_major(static_cast<int32_t>(numbers[0]));
+- result.set_minor(static_cast<int32_t>(numbers[1]));
++ result.set_gmajor(static_cast<int32_t>(numbers[0]));
++ result.set_gminor(static_cast<int32_t>(numbers[1]));
+ result.set_build(static_cast<int32_t>(numbers[2]));
+ result.set_revision(static_cast<int32_t>(numbers[3]));
+ }
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_flags__ui_flags__state.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_flags__ui_flags__state.cc
index 56dd7feeee6c..4c38ab9ecbd8 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_flags__ui_flags__state.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_flags__ui_flags__state.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/components/flags_ui/flags_state.cc.orig 2022-07-22 17:30:31 UTC
+--- src/3rdparty/chromium/components/flags_ui/flags_state.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/components/flags_ui/flags_state.cc
-@@ -672,7 +672,7 @@ unsigned short FlagsState::GetCurrentPlatform() {
+@@ -741,7 +741,7 @@ unsigned short FlagsState::GetCurrentPlatform() {
return kOsCrOS;
#elif BUILDFLAG(IS_CHROMEOS_LACROS)
return kOsLacros;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_gwp__asan_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_gwp__asan_BUILD.gn
new file mode 100644
index 000000000000..07b7216ee88b
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_gwp__asan_BUILD.gn
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/gwp_asan/BUILD.gn.orig 2022-11-30 08:12:58 UTC
++++ src/3rdparty/chromium/components/gwp_asan/BUILD.gn
+@@ -15,7 +15,7 @@ test("gwp_asan_unittests") {
+ "//testing/gtest",
+ "//third_party/boringssl",
+ ]
+- if (is_win || is_mac || is_linux || is_chromeos || is_android) {
++ if ((is_win || is_mac || is_linux || is_chromeos || is_android) && !is_bsd) {
+ deps += [
+ "//components/gwp_asan/client:unit_tests",
+ "//components/gwp_asan/crash_handler:unit_tests",
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_gwp__asan_client_guarded__page__allocator__posix.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_gwp__asan_client_guarded__page__allocator__posix.cc
new file mode 100644
index 000000000000..b9a40268566b
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_gwp__asan_client_guarded__page__allocator__posix.cc
@@ -0,0 +1,13 @@
+--- src/3rdparty/chromium/components/gwp_asan/client/guarded_page_allocator_posix.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/components/gwp_asan/client/guarded_page_allocator_posix.cc
+@@ -35,8 +35,9 @@ void GuardedPageAllocator::MarkPageInaccessible(void*
+ // mmap() a PROT_NONE page over the address to release it to the system, if
+ // we used mprotect() here the system would count pages in the quarantine
+ // against the RSS.
++ // MAP_ANONYMOUS requires the fd to be -1 on !linux
+ void* err = mmap(ptr, state_.page_size, PROT_NONE,
+- MAP_FIXED | MAP_ANONYMOUS | MAP_PRIVATE, 0, 0);
++ MAP_FIXED | MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
+ PCHECK(err == ptr) << "mmap";
+ }
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_gwp__asan_client_gwp__asan.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_gwp__asan_client_gwp__asan.cc
new file mode 100644
index 000000000000..45ec484e308d
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_gwp__asan_client_gwp__asan.cc
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/components/gwp_asan/client/gwp_asan.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/components/gwp_asan/client/gwp_asan.cc
+@@ -64,7 +64,7 @@ constexpr bool kCpuIs64Bit =
+ // ProcessSamplingBoost is the multiplier to increase the
+ // ProcessSamplingProbability in scenarios where we want to perform additional
+ // testing (e.g., on canary/dev builds).
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ constexpr int kDefaultMaxAllocations = 50;
+ constexpr int kDefaultMaxMetadata = 210;
+ constexpr int kDefaultTotalPages = kCpuIs64Bit ? 2048 : kDefaultMaxMetadata * 2;
+@@ -84,7 +84,7 @@ constexpr int kDefaultProcessSamplingBoost2 = 10;
+ // BUILDFLAG(IS_FUCHSIA)
+
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS_ASH)
++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ constexpr base::FeatureState kDefaultEnabled = base::FEATURE_ENABLED_BY_DEFAULT;
+ #else
+ constexpr base::FeatureState kDefaultEnabled =
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_gwp__asan_crash__handler_crash__analyzer.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_gwp__asan_crash__handler_crash__analyzer.cc
new file mode 100644
index 000000000000..2e677802856f
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_gwp__asan_crash__handler_crash__analyzer.cc
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/components/gwp_asan/crash_handler/crash_analyzer.cc.orig 2023-05-31 08:12:17 UTC
++++ src/3rdparty/chromium/components/gwp_asan/crash_handler/crash_analyzer.cc
+@@ -30,7 +30,7 @@
+ #include "third_party/crashpad/crashpad/snapshot/process_snapshot.h"
+ #include "third_party/crashpad/crashpad/util/process/process_memory.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ #include <signal.h>
+ #elif BUILDFLAG(IS_APPLE)
+ #include <mach/exception_types.h>
+@@ -90,7 +90,7 @@ bool CrashAnalyzer::GetExceptionInfo(
+
+ crashpad::VMAddress CrashAnalyzer::GetAccessAddress(
+ const crashpad::ExceptionSnapshot& exception) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ if (exception.Exception() == SIGSEGV || exception.Exception() == SIGBUS)
+ return exception.ExceptionAddress();
+ #elif BUILDFLAG(IS_APPLE)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_live__caption_caption__util.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_live__caption_caption__util.cc
new file mode 100644
index 000000000000..ce4ef2e65108
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_live__caption_caption__util.cc
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/components/live_caption/caption_util.cc.orig 2023-07-16 15:47:57 UTC
++++ src/3rdparty/chromium/components/live_caption/caption_util.cc
+@@ -145,7 +145,7 @@ bool IsLiveCaptionFeatureSupported() {
+ return false;
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Check if the CPU has the required instruction set to run the Speech
+ // On-Device API (SODA) library.
+ static bool has_sse41 = base::CPU().has_sse41();
+@@ -167,7 +167,7 @@ std::string GetCaptionSettingsUrl() {
+ return "chrome://os-settings/audioAndCaptions";
+ #endif // BUILDFLAG(IS_CHROMEOS)
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return "chrome://settings/captions";
+ #endif // BUILDFLAG(IS_LINUX)
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_live__caption_caption__util.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_live__caption_caption__util.h
new file mode 100644
index 000000000000..8a704f098a16
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_live__caption_caption__util.h
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/live_caption/caption_util.h.orig 2023-07-16 15:47:57 UTC
++++ src/3rdparty/chromium/components/live_caption/caption_util.h
+@@ -14,7 +14,7 @@ class PrefService;
+ namespace captions {
+
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ extern const char kCaptionSettingsUrl[];
+ #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ||
+ // BUILDFLAG(IS_MAC)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_management__strings.grdp b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_management__strings.grdp
new file mode 100644
index 000000000000..e45b81485e41
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_management__strings.grdp
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/management_strings.grdp.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/components/management_strings.grdp
+@@ -346,7 +346,7 @@
+ </if>
+
+ <!-- Strings related to Chrome Enterprise Device Signals Sharing -->
+- <if expr="is_win or is_linux or is_macosx">
++ <if expr="is_win or is_posix or is_macosx">
+ <message name="IDS_MANAGEMENT_DEVICE_SIGNALS_DISCLOSURE" desc="Disclosure message explaining that device signals can be shared.">
+ Information about your browser, OS, device, installed software, and files
+ </message>
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_media__router_common_providers_cast_channel_cast__message__util.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_media__router_common_providers_cast_channel_cast__message__util.cc
new file mode 100644
index 000000000000..68fff7e336fe
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_media__router_common_providers_cast_channel_cast__message__util.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/media_router/common/providers/cast/channel/cast_message_util.cc.orig 2022-11-30 08:12:58 UTC
++++ src/3rdparty/chromium/components/media_router/common/providers/cast/channel/cast_message_util.cc
+@@ -170,7 +170,7 @@ int GetVirtualConnectPlatformValue() {
+ return 4;
+ #elif BUILDFLAG(IS_CHROMEOS_ASH)
+ return 5;
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ return 6;
+ #else
+ return 0;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_metrics_drive__metrics__provider__linux.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_metrics_drive__metrics__provider__linux.cc
index d4aadea8dca0..0fde59efeb73 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_metrics_drive__metrics__provider__linux.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_metrics_drive__metrics__provider__linux.cc
@@ -1,10 +1,10 @@
---- src/3rdparty/chromium/components/metrics/drive_metrics_provider_linux.cc.orig 2021-04-14 18:40:59 UTC
+--- src/3rdparty/chromium/components/metrics/drive_metrics_provider_linux.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/components/metrics/drive_metrics_provider_linux.cc
@@ -4,7 +4,13 @@
#include "components/metrics/drive_metrics_provider.h"
-+#if defined(OS_BSD)
++#if BUILDFLAG(IS_BSD)
+#include <sys/types.h>
+#define MAJOR(dev) major(dev)
+#define MINOR(dev) minor(dev)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_metrics_metrics__log.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_metrics_metrics__log.cc
index 76142e0ff3bf..baa13d124508 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_metrics_metrics__log.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_metrics_metrics__log.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/components/metrics/metrics_log.cc.orig 2023-01-11 09:17:16 UTC
+--- src/3rdparty/chromium/components/metrics/metrics_log.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/components/metrics/metrics_log.cc
@@ -53,7 +53,7 @@
#include "base/win/current_module.h"
@@ -9,7 +9,7 @@
#include "base/environment.h"
#include "base/nix/xdg_util.h"
#endif
-@@ -123,7 +123,7 @@ void RecordCurrentTime(
+@@ -139,7 +139,7 @@ void RecordCurrentTime(
}
}
@@ -18,7 +18,7 @@
metrics::SystemProfileProto::OS::XdgSessionType ToProtoSessionType(
base::nix::SessionType session_type) {
switch (session_type) {
-@@ -375,7 +375,7 @@ void MetricsLog::RecordCoreSystemProfile(
+@@ -399,7 +399,7 @@ void MetricsLog::RecordCoreSystemProfile(
// OperatingSystemVersion refers to the ChromeOS release version.
#if BUILDFLAG(IS_CHROMEOS_ASH)
os->set_kernel_version(base::SysInfo::KernelVersion());
@@ -27,7 +27,7 @@
// Linux operating system version is copied over into kernel version to be
// consistent.
os->set_kernel_version(base::SysInfo::OperatingSystemVersion());
-@@ -392,7 +392,7 @@ void MetricsLog::RecordCoreSystemProfile(
+@@ -416,7 +416,7 @@ void MetricsLog::RecordCoreSystemProfile(
os->set_build_number(base::SysInfo::GetIOSBuildNumber());
#endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_network__session__configurator_browser_network__session__configurator.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_network__session__configurator_browser_network__session__configurator.cc
index 63b224579fe1..9fef706ac19d 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_network__session__configurator_browser_network__session__configurator.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_network__session__configurator_browser_network__session__configurator.cc
@@ -1,11 +1,11 @@
---- src/3rdparty/chromium/components/network_session_configurator/browser/network_session_configurator.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/components/network_session_configurator/browser/network_session_configurator.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/components/network_session_configurator/browser/network_session_configurator.cc
-@@ -807,7 +807,7 @@ net::URLRequestContextBuilder::HttpCacheParams::Type C
- }
- #endif // #if !BUILDFLAG(IS_ANDROID)
-
--#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+@@ -793,7 +793,7 @@ net::URLRequestContextBuilder::HttpCacheParams::Type C
+ // backport, having it behave differently than in stable would be a bigger
+ // problem. TODO: Does this work in later macOS releases?
+ #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
return net::URLRequestContextBuilder::HttpCacheParams::DISK_SIMPLE;
#else
return net::URLRequestContextBuilder::HttpCacheParams::DISK_BLOCKFILE;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_optimization__guide_core_optimization__guide__util.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_optimization__guide_core_optimization__guide__util.cc
new file mode 100644
index 000000000000..50c12084abdd
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_optimization__guide_core_optimization__guide__util.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/optimization_guide/core/optimization_guide_util.cc.orig 2022-10-24 13:33:33 UTC
++++ src/3rdparty/chromium/components/optimization_guide/core/optimization_guide_util.cc
+@@ -27,7 +27,7 @@ optimization_guide::proto::Platform GetPlatform() {
+ return optimization_guide::proto::PLATFORM_CHROMEOS;
+ #elif BUILDFLAG(IS_ANDROID)
+ return optimization_guide::proto::PLATFORM_ANDROID;
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return optimization_guide::proto::PLATFORM_LINUX;
+ #else
+ return optimization_guide::proto::PLATFORM_UNKNOWN;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_optimization__guide_core_tflite__model__executor.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_optimization__guide_core_tflite__model__executor.h
new file mode 100644
index 000000000000..1382842194a0
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_optimization__guide_core_tflite__model__executor.h
@@ -0,0 +1,62 @@
+--- src/3rdparty/chromium/components/optimization_guide/core/tflite_model_executor.h.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/components/optimization_guide/core/tflite_model_executor.h
+@@ -240,7 +240,11 @@ class TFLiteModelExecutor : public ModelExecutor<Outpu
+ void SendForBatchExecution(
+ BatchExecutionCallback callback_on_complete,
+ base::TimeTicks start_time,
++#if defined(__clang__) && (__clang_major__ >= 15)
+ ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
++#else
++ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
++#endif
+ override {
+ DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+@@ -262,7 +266,11 @@ class TFLiteModelExecutor : public ModelExecutor<Outpu
+ // Starts the synchronous execution of the model. Returns model outputs.
+ // Model needs to be loaded. Synchronous calls do not load or unload model.
+ std::vector<absl::optional<OutputType>> SendForBatchExecutionSync(
++#if defined(__clang__) && (__clang_major__ >= 15)
+ ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
++#else
++ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
++#endif
+ override {
+ DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+@@ -417,7 +425,11 @@ class TFLiteModelExecutor : public ModelExecutor<Outpu
+ // executes it on the model execution thread.
+ void LoadModelFileAndBatchExecute(
+ BatchExecutionCallback callback_on_complete,
++#if defined(__clang__) && (__clang_major__ >= 15)
+ ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs) {
++#else
++ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs) {
++#endif
+ DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+
+@@ -434,7 +446,11 @@ class TFLiteModelExecutor : public ModelExecutor<Outpu
+
+ // Batch executes the loaded model for inputs.
+ void BatchExecuteLoadedModel(
++#if defined(__clang__) && (__clang_major__ >= 15)
+ ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
++#else
++ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
++#endif
+ std::vector<absl::optional<OutputType>>* outputs) {
+ DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+@@ -494,7 +510,11 @@ class TFLiteModelExecutor : public ModelExecutor<Outpu
+ // Unloads the model if needed.
+ void BatchExecuteLoadedModelAndRunCallback(
+ BatchExecutionCallback callback_on_complete,
++#if defined(__clang__) && (__clang_major__ >= 15)
+ ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
++#else
++ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
++#endif
+ ExecutionStatus execution_status) {
+ DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_os__crypt_keyring__util__linux.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_os__crypt_keyring__util__linux.cc
deleted file mode 100644
index dc3bd7fb17c4..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_os__crypt_keyring__util__linux.cc
+++ /dev/null
@@ -1,17 +0,0 @@
---- src/3rdparty/chromium/components/os_crypt/keyring_util_linux.cc.orig 2022-04-21 18:48:31 UTC
-+++ src/3rdparty/chromium/components/os_crypt/keyring_util_linux.cc
-@@ -68,12 +68,12 @@ bool GnomeKeyringLoader::LoadGnomeKeyring() {
- if (keyring_loaded)
- return true;
-
-- void* handle = dlopen("libgnome-keyring.so.0", RTLD_NOW | RTLD_GLOBAL);
-+ void* handle = dlopen("libgnome-keyring.so", RTLD_NOW | RTLD_GLOBAL);
- if (!handle) {
- // We wanted to use GNOME Keyring, but we couldn't load it. Warn, because
- // either the user asked for this, or we autodetected it incorrectly. (Or
- // the system has broken libraries, which is also good to warn about.)
-- LOG(WARNING) << "Could not load libgnome-keyring.so.0: " << dlerror();
-+ LOG(WARNING) << "Could not load libgnome-keyring.so: " << dlerror();
- return false;
- }
-
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_os__crypt_libsecret__util__linux.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_os__crypt_libsecret__util__linux.cc
deleted file mode 100644
index 5d331a6d8dcb..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_os__crypt_libsecret__util__linux.cc
+++ /dev/null
@@ -1,18 +0,0 @@
---- src/3rdparty/chromium/components/os_crypt/libsecret_util_linux.cc.orig 2022-06-17 14:20:10 UTC
-+++ src/3rdparty/chromium/components/os_crypt/libsecret_util_linux.cc
-@@ -102,13 +102,13 @@ bool LibsecretLoader::LoadLibsecret() {
- if (libsecret_loaded_)
- return true;
-
-- static void* handle = dlopen("libsecret-1.so.0", RTLD_NOW | RTLD_GLOBAL);
-+ static void* handle = dlopen("libsecret-1.so", RTLD_NOW | RTLD_GLOBAL);
- if (!handle) {
- // We wanted to use libsecret, but we couldn't load it. Warn, because
- // either the user asked for this, or we autodetected it incorrectly. (Or
- // the system has broken libraries, which is also good to warn about.)
- // TODO(crbug.com/607435): Channel this message to the user-facing log
-- VLOG(1) << "Could not load libsecret-1.so.0: " << dlerror();
-+ VLOG(1) << "Could not load libsecret-1.so: " << dlerror();
- return false;
- }
-
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_os__crypt_sync_libsecret__util__linux.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_os__crypt_sync_libsecret__util__linux.cc
new file mode 100644
index 000000000000..82e9cd60a576
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_os__crypt_sync_libsecret__util__linux.cc
@@ -0,0 +1,27 @@
+--- src/3rdparty/chromium/components/os_crypt/sync/libsecret_util_linux.cc.orig 2023-04-28 17:01:32 UTC
++++ src/3rdparty/chromium/components/os_crypt/sync/libsecret_util_linux.cc
+@@ -99,16 +99,22 @@ bool LibsecretLoader::EnsureLibsecretLoaded() {
+
+ // static
+ bool LibsecretLoader::LoadLibsecret() {
++#if BUILDFLAG(IS_BSD)
++ const char* kSecretLib = "libsecret-1.so";
++#else
++ const char* kSecretLib = "libsecret-1.so.0";
++#endif
++
+ if (libsecret_loaded_)
+ return true;
+
+- static void* handle = dlopen("libsecret-1.so.0", RTLD_NOW | RTLD_GLOBAL);
++ static void* handle = dlopen(kSecretLib, RTLD_NOW | RTLD_GLOBAL);
+ if (!handle) {
+ // We wanted to use libsecret, but we couldn't load it. Warn, because
+ // either the user asked for this, or we autodetected it incorrectly. (Or
+ // the system has broken libraries, which is also good to warn about.)
+ // TODO(crbug.com/607435): Channel this message to the user-facing log
+- VLOG(1) << "Could not load libsecret-1.so.0: " << dlerror();
++ VLOG(1) << "Could not load << " << kSecretLib << ": " << dlerror();
+ return false;
+ }
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_os__crypt_os__crypt.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_os__crypt_sync_os__crypt.h
index 948a26a809bc..8bbbbc3083c8 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_os__crypt_os__crypt.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_os__crypt_sync_os__crypt.h
@@ -1,5 +1,5 @@
---- src/3rdparty/chromium/components/os_crypt/os_crypt.h.orig 2023-01-11 09:17:16 UTC
-+++ src/3rdparty/chromium/components/os_crypt/os_crypt.h
+--- src/3rdparty/chromium/components/os_crypt/sync/os_crypt.h.orig 2023-04-28 17:01:32 UTC
++++ src/3rdparty/chromium/components/os_crypt/sync/os_crypt.h
@@ -14,7 +14,7 @@
#include "build/build_config.h"
#include "build/chromecast_buildflags.h"
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_paint__preview_browser_paint__preview__client.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_paint__preview_browser_paint__preview__client.cc
new file mode 100644
index 000000000000..69c6b096d20a
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_paint__preview_browser_paint__preview__client.cc
@@ -0,0 +1,13 @@
+--- src/3rdparty/chromium/components/paint_preview/browser/paint_preview_client.cc.orig 2023-03-09 06:31:50 UTC
++++ src/3rdparty/chromium/components/paint_preview/browser/paint_preview_client.cc
+@@ -310,8 +310,8 @@ void PaintPreviewClient::CapturePaintPreview(
+ metadata->set_url(url.spec());
+ metadata->set_version(kPaintPreviewVersion);
+ auto* chromeVersion = metadata->mutable_chrome_version();
+- chromeVersion->set_major(CHROME_VERSION_MAJOR);
+- chromeVersion->set_minor(CHROME_VERSION_MINOR);
++ chromeVersion->set_gmajor(CHROME_VERSION_MAJOR);
++ chromeVersion->set_gminor(CHROME_VERSION_MINOR);
+ chromeVersion->set_build(CHROME_VERSION_BUILD);
+ chromeVersion->set_patch(CHROME_VERSION_PATCH);
+ document_data.callback = std::move(callback);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_paint__preview_player_player__compositor__delegate.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_paint__preview_player_player__compositor__delegate.cc
new file mode 100644
index 000000000000..43b3203fc18b
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_paint__preview_player_player__compositor__delegate.cc
@@ -0,0 +1,13 @@
+--- src/3rdparty/chromium/components/paint_preview/player/player_compositor_delegate.cc.orig 2023-03-09 06:31:50 UTC
++++ src/3rdparty/chromium/components/paint_preview/player/player_compositor_delegate.cc
+@@ -452,8 +452,8 @@ void PlayerCompositorDelegate::ValidateProtoAndLoadAXT
+ // use the AXTreeUpdate.
+ auto chrome_version = capture_result_->proto.metadata().chrome_version();
+ if (capture_result_->proto.metadata().has_chrome_version() &&
+- chrome_version.major() == CHROME_VERSION_MAJOR &&
+- chrome_version.minor() == CHROME_VERSION_MINOR &&
++ chrome_version.gmajor() == CHROME_VERSION_MAJOR &&
++ chrome_version.gminor() == CHROME_VERSION_MINOR &&
+ chrome_version.build() == CHROME_VERSION_BUILD &&
+ chrome_version.patch() == CHROME_VERSION_PATCH) {
+ paint_preview_service_->GetFileMixin()->GetAXTreeUpdate(
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_password__manager_core_browser_features_password__features.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_password__manager_core_browser_features_password__features.cc
new file mode 100644
index 000000000000..01678c9ccaf3
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_password__manager_core_browser_features_password__features.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/password_manager/core/browser/features/password_features.cc.orig 2023-10-27 05:38:38 UTC
++++ src/3rdparty/chromium/components/password_manager/core/browser/features/password_features.cc
+@@ -27,7 +27,7 @@ BASE_FEATURE(kBiometricTouchToFill,
+ // Delete undecryptable passwords from the store when Sync is active.
+ BASE_FEATURE(kClearUndecryptablePasswordsOnSync,
+ "ClearUndecryptablePasswordsInSync",
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+ base::FEATURE_DISABLED_BY_DEFAULT
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_password__manager_core_browser_sync_password__sync__bridge.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_password__manager_core_browser_sync_password__sync__bridge.cc
new file mode 100644
index 000000000000..93e1c684834f
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_password__manager_core_browser_sync_password__sync__bridge.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/password_manager/core/browser/sync/password_sync_bridge.cc.orig 2023-10-27 05:38:38 UTC
++++ src/3rdparty/chromium/components/password_manager/core/browser/sync/password_sync_bridge.cc
+@@ -197,7 +197,7 @@ bool ShouldRecoverPasswordsDuringMerge() {
+ }
+
+ bool ShouldCleanSyncMetadataDuringStartupWhenDecryptionFails() {
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return ShouldRecoverPasswordsDuringMerge() &&
+ base::FeatureList::IsEnabled(
+ features::kForceInitialSyncWhenDecryptionFails);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_password__manager_core_common_password__manager__features.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_password__manager_core_common_password__manager__features.cc
index 6e905d43147c..a43967c49118 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_password__manager_core_common_password__manager__features.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_password__manager_core_common_password__manager__features.cc
@@ -1,7 +1,7 @@
---- src/3rdparty/chromium/components/password_manager/core/common/password_manager_features.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/components/password_manager/core/common/password_manager_features.cc.orig 2023-10-27 05:38:38 UTC
+++ src/3rdparty/chromium/components/password_manager/core/common/password_manager_features.cc
-@@ -76,7 +76,7 @@ BASE_FEATURE(kFillOnAccountSelect,
- "fill-on-account-select",
+@@ -18,7 +18,7 @@ BASE_FEATURE(kEnableOverwritingPlaceholderUsernames,
+ "EnableOverwritingPlaceholderUsernames",
base::FEATURE_DISABLED_BY_DEFAULT);
-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
@@ -9,12 +9,3 @@
// When enabled, initial sync will be forced during startup if the password
// store has encryption service failures.
BASE_FEATURE(kForceInitialSyncWhenDecryptionFails,
-@@ -197,7 +197,7 @@ BASE_FEATURE(kPasswordStrengthIndicator,
- "PasswordStrengthIndicator",
- base::FEATURE_DISABLED_BY_DEFAULT);
-
--#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
-+#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
- // Displays at least the decryptable and never saved logins in the password
- // manager
- BASE_FEATURE(kSkipUndecryptablePasswords,
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_password__manager_core_common_password__manager__features.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_password__manager_core_common_password__manager__features.h
index 01f51114dce4..38d2d8679d7d 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_password__manager_core_common_password__manager__features.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_password__manager_core_common_password__manager__features.h
@@ -1,20 +1,11 @@
---- src/3rdparty/chromium/components/password_manager/core/common/password_manager_features.h.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/components/password_manager/core/common/password_manager_features.h.orig 2023-10-27 05:38:38 UTC
+++ src/3rdparty/chromium/components/password_manager/core/common/password_manager_features.h
-@@ -35,7 +35,7 @@ BASE_DECLARE_FEATURE(kEnablePasswordGenerationForClear
- BASE_DECLARE_FEATURE(kEnablePasswordManagerWithinFencedFrame);
- BASE_DECLARE_FEATURE(kFillingAcrossAffiliatedWebsites);
- BASE_DECLARE_FEATURE(kFillOnAccountSelect);
+@@ -24,7 +24,7 @@ namespace password_manager::features {
+ // alongside the definition of their values in the .cc file.
+ BASE_DECLARE_FEATURE(kEnableOverwritingPlaceholderUsernames);
+
-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
BASE_DECLARE_FEATURE(kForceInitialSyncWhenDecryptionFails);
#endif
- BASE_DECLARE_FEATURE(kInferConfirmationPasswordField);
-@@ -67,7 +67,7 @@ BASE_DECLARE_FEATURE(kRecoverFromNeverSaveAndroid);
- #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS) // Desktop
- BASE_DECLARE_FEATURE(kRevampedPasswordManagementBubble);
- #endif
--#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
-+#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
- BASE_DECLARE_FEATURE(kSkipUndecryptablePasswords);
- #endif
- #if BUILDFLAG(IS_ANDROID)
+ BASE_DECLARE_FEATURE(kForgotPasswordFormSupport);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_performance__manager_public_features.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_performance__manager_public_features.h
index 4b534d0d55ea..c16bc41b33e8 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_performance__manager_public_features.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_performance__manager_public_features.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/components/performance_manager/public/features.h.orig 2022-11-30 08:12:58 UTC
+--- src/3rdparty/chromium/components/performance_manager/public/features.h.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/components/performance_manager/public/features.h
-@@ -20,7 +20,7 @@ BASE_DECLARE_FEATURE(kRunOnMainThread);
+@@ -28,7 +28,7 @@ BASE_DECLARE_FEATURE(kRunOnDedicatedThreadPoolThread);
#if !BUILDFLAG(IS_ANDROID)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_permissions_prediction__service_prediction__common.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_permissions_prediction__service_prediction__common.cc
new file mode 100644
index 000000000000..67fbbfb894e4
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_permissions_prediction__service_prediction__common.cc
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/components/permissions/prediction_service/prediction_common.cc.orig 2022-08-31 12:19:35 UTC
++++ src/3rdparty/chromium/components/permissions/prediction_service/prediction_common.cc
+@@ -33,7 +33,7 @@ int BucketizeValue(int count) {
+
+ ClientFeatures_Platform GetCurrentPlatformProto() {
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ return permissions::ClientFeatures_Platform_PLATFORM_DESKTOP;
+ #elif BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
+ return permissions::ClientFeatures_Platform_PLATFORM_MOBILE;
+@@ -44,7 +44,7 @@ ClientFeatures_Platform GetCurrentPlatformProto() {
+
+ ClientFeatures_PlatformEnum GetCurrentPlatformEnumProto() {
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_MAC)
++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ return permissions::ClientFeatures_PlatformEnum_PLATFORM_DESKTOP_V2;
+ #elif BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
+ return permissions::ClientFeatures_PlatformEnum_PLATFORM_MOBILE_V2;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_policy_core_browser_policy__pref__mapping__test.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_policy_core_browser_policy__pref__mapping__test.cc
new file mode 100644
index 000000000000..ef087ec77852
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_policy_core_browser_policy__pref__mapping__test.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/policy/core/browser/policy_pref_mapping_test.cc.orig 2023-04-28 17:01:32 UTC
++++ src/3rdparty/chromium/components/policy/core/browser/policy_pref_mapping_test.cc
+@@ -327,7 +327,7 @@ class PolicyTestCase {
+ const std::string os("chromeos_lacros");
+ #elif BUILDFLAG(IS_IOS)
+ const std::string os("ios");
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const std::string os("linux");
+ #elif BUILDFLAG(IS_MAC)
+ const std::string os("mac");
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_policy_core_common_cloud_cloud__policy__client.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_policy_core_common_cloud_cloud__policy__client.cc
new file mode 100644
index 000000000000..54ac5041816a
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_policy_core_common_cloud_cloud__policy__client.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/policy/core/common/cloud/cloud_policy_client.cc.orig 2023-05-31 08:12:17 UTC
++++ src/3rdparty/chromium/components/policy/core/common/cloud/cloud_policy_client.cc
+@@ -455,7 +455,7 @@ void CloudPolicyClient::FetchPolicy() {
+ fetch_request->set_invalidation_payload(invalidation_payload_);
+ }
+ }
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Only set browser device identifier for CBCM Chrome cloud policy on
+ // desktop.
+ if (type_to_fetch.first ==
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_policy_core_common_cloud_cloud__policy__util.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_policy_core_common_cloud_cloud__policy__util.cc
new file mode 100644
index 000000000000..2a5e84693fdb
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_policy_core_common_cloud_cloud__policy__util.cc
@@ -0,0 +1,55 @@
+--- src/3rdparty/chromium/components/policy/core/common/cloud/cloud_policy_util.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/components/policy/core/common/cloud/cloud_policy_util.cc
+@@ -20,7 +20,7 @@
+ #endif
+
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || \
+- BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ #include <pwd.h>
+ #include <sys/types.h>
+ #include <unistd.h>
+@@ -35,10 +35,15 @@
+ #import <SystemConfiguration/SCDynamicStoreCopySpecific.h>
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ #include <limits.h> // For HOST_NAME_MAX
+ #endif
+
++#if BUILDFLAG(IS_FREEBSD)
++#include <sys/param.h>
++#define HOST_NAME_MAX MAXHOSTNAMELEN
++#endif
++
+ #include <algorithm>
+ #include <utility>
+
+@@ -86,7 +91,7 @@ namespace em = enterprise_management;
+
+ std::string GetMachineName() {
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || \
+- BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ char hostname[HOST_NAME_MAX];
+ if (gethostname(hostname, HOST_NAME_MAX) == 0) // Success.
+ return hostname;
+@@ -144,7 +149,7 @@ std::string GetMachineName() {
+
+ std::string GetOSVersion() {
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_APPLE) || \
+- BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ return base::SysInfo::OperatingSystemVersion();
+ #elif BUILDFLAG(IS_WIN)
+ base::win::OSInfo::VersionNumber version_number =
+@@ -167,7 +172,7 @@ std::string GetOSArchitecture() {
+ }
+
+ std::string GetOSUsername() {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_APPLE)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
+ struct passwd* creds = getpwuid(getuid());
+ if (!creds || !creds->pw_name)
+ return std::string();
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_policy_core_common_policy__loader__common.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_policy_core_common_policy__loader__common.cc
new file mode 100644
index 000000000000..9e7c70f6615e
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_policy_core_common_policy__loader__common.cc
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/components/policy/core/common/policy_loader_common.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/components/policy/core/common/policy_loader_common.cc
+@@ -46,7 +46,7 @@ const char* kSensitivePolicies[] = {
+ key::kDefaultSearchProviderEnabled,
+ key::kSafeBrowsingEnabled,
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ key::kAutoOpenFileTypes,
+ key::kSafeBrowsingAllowlistDomains,
+ key::kHomepageIsNewTabPage,
+@@ -55,7 +55,7 @@ const char* kSensitivePolicies[] = {
+ key::kRestoreOnStartup,
+ key::kRestoreOnStartupURLs,
+ #endif
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ key::kCommandLineFlagSecurityWarningsEnabled,
+ #endif
+ #if !BUILDFLAG(IS_IOS)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_policy_core_common_policy__paths.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_policy_core_common_policy__paths.cc
new file mode 100644
index 000000000000..d9ed95b999a8
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_policy_core_common_policy__paths.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/policy/core/common/policy_paths.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/components/policy/core/common/policy_paths.cc
+@@ -16,6 +16,8 @@ namespace policy {
+ #if BUILDFLAG(GOOGLE_CHROME_BRANDING) || \
+ BUILDFLAG(GOOGLE_CHROME_FOR_TESTING_BRANDING)
+ const char kPolicyPath[] = "/etc/opt/chrome/policies";
++#elif BUILDFLAG(IS_FREEBSD)
++const char kPolicyPath[] = "/usr/local/etc/chromium/policies";
+ #else
+ const char kPolicyPath[] = "/etc/chromium/policies";
+ #endif // BUILDFLAG(GOOGLE_CHROME_BRANDING) || \
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_policy_tools_generate__policy__source.py b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_policy_tools_generate__policy__source.py
new file mode 100644
index 000000000000..fb0b794ebdc6
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_policy_tools_generate__policy__source.py
@@ -0,0 +1,14 @@
+--- src/3rdparty/chromium/components/policy/tools/generate_policy_source.py.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/components/policy/tools/generate_policy_source.py
+@@ -37,9 +37,9 @@ PLATFORM_STRINGS = {
+ 'ios': ['ios'],
+ 'fuchsia': ['fuchsia'],
+ 'chrome.win': ['win'],
+- 'chrome.linux': ['linux'],
++ 'chrome.linux': ['linux', 'openbsd', 'freebsd'],
+ 'chrome.mac': ['mac'],
+- 'chrome.*': ['win', 'mac', 'linux'],
++ 'chrome.*': ['win', 'mac', 'linux', 'openbsd', 'freebsd'],
+ 'chrome.win7': ['win'],
+ }
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_power__metrics_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_power__metrics_BUILD.gn
new file mode 100644
index 000000000000..27faeb446ffb
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_power__metrics_BUILD.gn
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/power_metrics/BUILD.gn.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/components/power_metrics/BUILD.gn
+@@ -41,7 +41,7 @@ static_library("power_metrics") {
+ ldflags = [ "/DELAYLOAD:setupapi.dll" ]
+ }
+
+- if (is_linux || is_chromeos) {
++ if ((is_linux && !is_bsd) || is_chromeos) {
+ sources += [
+ "energy_metrics_provider_linux.cc",
+ "energy_metrics_provider_linux.h",
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_power__metrics_energy__metrics__provider.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_power__metrics_energy__metrics__provider.cc
new file mode 100644
index 000000000000..8858d3024b34
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_power__metrics_energy__metrics__provider.cc
@@ -0,0 +1,21 @@
+--- src/3rdparty/chromium/components/power_metrics/energy_metrics_provider.cc.orig 2023-08-17 07:33:31 UTC
++++ src/3rdparty/chromium/components/power_metrics/energy_metrics_provider.cc
+@@ -9,6 +9,8 @@
+ #include "components/power_metrics/energy_metrics_provider_win.h"
+ #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ #include "components/power_metrics/energy_metrics_provider_linux.h"
++#elif BUILDFLAG(IS_BSD)
++#include "base/notreached.h"
+ #endif // BUILDFLAG(IS_WIN)
+
+ namespace power_metrics {
+@@ -22,6 +24,9 @@ std::unique_ptr<EnergyMetricsProvider> EnergyMetricsPr
+ return EnergyMetricsProviderWin::Create();
+ #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ return EnergyMetricsProviderLinux::Create();
++#elif BUILDFLAG(IS_BSD)
++ NOTIMPLEMENTED();
++ return nullptr;
+ #else
+ return nullptr;
+ #endif // BUILDFLAG(IS_WIN)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_safe__browsing_content_resources_gen__file__type__proto.py b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_safe__browsing_content_resources_gen__file__type__proto.py
new file mode 100644
index 000000000000..bdf0bdb12355
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_safe__browsing_content_resources_gen__file__type__proto.py
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/components/safe_browsing/content/resources/gen_file_type_proto.py.orig 2023-01-11 09:17:16 UTC
++++ src/3rdparty/chromium/components/safe_browsing/content/resources/gen_file_type_proto.py
+@@ -38,6 +38,8 @@ def PlatformTypes():
+ "fuchsia":
+ download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_FUCHSIA,
+ "linux": download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_LINUX,
++ "openbsd": download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_LINUX,
++ "freebsd": download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_LINUX,
+ "mac": download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_MAC,
+ "win": download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_WINDOWS,
+ }
+@@ -181,7 +183,7 @@ class DownloadFileTypeProtoGenerator(BinaryProtoGenera
+ '-t',
+ '--type',
+ help='The platform type. One of android, chromeos, ' +
+- 'linux, mac, win')
++ 'linux, mac, win, openbsd, freebsd')
+
+ def AddExtraCommandLineArgsForVirtualEnvRun(self, opts, command):
+ if opts.type is not None:
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_safe__browsing_core_browser_db_v4__protocol__manager__util.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_safe__browsing_core_browser_db_v4__protocol__manager__util.cc
new file mode 100644
index 000000000000..6bfbade8af4e
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_safe__browsing_core_browser_db_v4__protocol__manager__util.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/safe_browsing/core/browser/db/v4_protocol_manager_util.cc.orig 2023-04-28 17:01:32 UTC
++++ src/3rdparty/chromium/components/safe_browsing/core/browser/db/v4_protocol_manager_util.cc
+@@ -117,7 +117,7 @@ std::ostream& operator<<(std::ostream& os, const ListI
+ PlatformType GetCurrentPlatformType() {
+ #if BUILDFLAG(IS_WIN)
+ return WINDOWS_PLATFORM;
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ return LINUX_PLATFORM;
+ #elif BUILDFLAG(IS_IOS)
+ return IOS_PLATFORM;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_safe__browsing_core_browser_realtime_url__lookup__service__base.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_safe__browsing_core_browser_realtime_url__lookup__service__base.cc
new file mode 100644
index 000000000000..a1dc6484a884
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_safe__browsing_core_browser_realtime_url__lookup__service__base.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/safe_browsing/core/browser/realtime/url_lookup_service_base.cc.orig 2022-02-28 16:54:41 UTC
++++ src/3rdparty/chromium/components/safe_browsing/core/browser/realtime/url_lookup_service_base.cc
+@@ -109,7 +109,7 @@ RTLookupRequest::OSType GetRTLookupRequestOSType() {
+ return RTLookupRequest::OS_TYPE_FUCHSIA;
+ #elif BUILDFLAG(IS_IOS)
+ return RTLookupRequest::OS_TYPE_IOS;
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return RTLookupRequest::OS_TYPE_LINUX;
+ #elif BUILDFLAG(IS_MAC)
+ return RTLookupRequest::OS_TYPE_MAC;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_segmentation__platform_embedder_default__model_cross__device__user__segment.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_segmentation__platform_embedder_default__model_cross__device__user__segment.cc
new file mode 100644
index 000000000000..69a7909e2f4e
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_segmentation__platform_embedder_default__model_cross__device__user__segment.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/segmentation_platform/embedder/default_model/cross_device_user_segment.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/components/segmentation_platform/embedder/default_model/cross_device_user_segment.cc
+@@ -179,7 +179,7 @@ void CrossDeviceUserSegment::ExecuteModelWithInput(
+ // Check for current device type and subtract it from the device count
+ // calculation.
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ desktop_count -= 1;
+ #elif BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
+ if (ui::GetDeviceFormFactor() == ui::DEVICE_FORM_FACTOR_TABLET) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.cc
new file mode 100644
index 000000000000..a6c20612bade
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.cc
@@ -0,0 +1,29 @@
+--- src/3rdparty/chromium/components/services/paint_preview_compositor/paint_preview_compositor_collection_impl.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/components/services/paint_preview_compositor/paint_preview_compositor_collection_impl.cc
+@@ -21,7 +21,7 @@
+
+ #if BUILDFLAG(IS_WIN)
+ #include "content/public/child/dwrite_font_proxy_init_win.h"
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "components/services/font/public/cpp/font_loader.h"
+ #endif
+
+@@ -78,7 +78,7 @@ PaintPreviewCompositorCollectionImpl::PaintPreviewComp
+ // Initialize font access for Skia.
+ #if BUILDFLAG(IS_WIN)
+ content::InitializeDWriteFontProxy();
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ mojo::PendingRemote<font_service::mojom::FontService> font_service;
+ content::UtilityThread::Get()->BindHostReceiver(
+ font_service.InitWithNewPipeAndPassReceiver());
+@@ -101,7 +101,7 @@ PaintPreviewCompositorCollectionImpl::PaintPreviewComp
+ base::BindOnce([] { SkFontMgr::RefDefault(); }));
+
+ // Sanity check that fonts are working.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // No WebSandbox is provided on Linux so the local fonts aren't accessible.
+ // This is fine since since the subsetted fonts are provided in the SkPicture.
+ // However, we still need to check that the SkFontMgr starts as it is used by
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.cc
index 23f0ffd45cb3..2e9a316712ba 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/components/services/screen_ai/sandbox/screen_ai_sandbox_hook_linux.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/components/services/screen_ai/sandbox/screen_ai_sandbox_hook_linux.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/components/services/screen_ai/sandbox/screen_ai_sandbox_hook_linux.cc
@@ -53,6 +53,7 @@ bool ScreenAIPreSandboxHook(sandbox::policy::SandboxLi
}
@@ -8,7 +8,7 @@
auto* instance = sandbox::policy::SandboxLinux::GetInstance();
std::vector<BrokerFilePermission> permissions{
-@@ -76,6 +77,7 @@ bool ScreenAIPreSandboxHook(sandbox::policy::SandboxLi
+@@ -82,6 +83,7 @@ bool ScreenAIPreSandboxHook(sandbox::policy::SandboxLi
sandbox::syscall_broker::COMMAND_OPEN}),
permissions, sandbox::policy::SandboxLinux::PreSandboxHook(), options);
instance->EngageNamespaceSandboxIfPossible();
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.h
index 4a345456a725..6b7b6ea44244 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.h
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/components/services/screen_ai/sandbox/screen_ai_sandbox_hook_linux.h.orig 2022-04-21 18:48:31 UTC
+--- src/3rdparty/chromium/components/services/screen_ai/sandbox/screen_ai_sandbox_hook_linux.h.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/components/services/screen_ai/sandbox/screen_ai_sandbox_hook_linux.h
@@ -5,7 +5,13 @@
#ifndef COMPONENTS_SERVICES_SCREEN_AI_SANDBOX_SCREEN_AI_SANDBOX_HOOK_LINUX_H_
@@ -7,7 +7,7 @@
+#include "build/build_config.h"
+
+#if BUILDFLAG(IS_BSD)
-+#include "sandbox/policy/openbsd/sandbox_openbsd.h"
++#include "sandbox/policy/sandbox.h"
+#else
#include "sandbox/policy/linux/sandbox_linux.h"
+#endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_services_screen__ai_screen__ai__library__wrapper.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_services_screen__ai_screen__ai__library__wrapper.cc
new file mode 100644
index 000000000000..60d321baf24c
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_services_screen__ai_screen__ai__library__wrapper.cc
@@ -0,0 +1,29 @@
+--- src/3rdparty/chromium/components/services/screen_ai/screen_ai_library_wrapper.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/components/services/screen_ai/screen_ai_library_wrapper.cc
+@@ -187,7 +187,7 @@ ScreenAILibraryWrapper::PerformOcr(const SkBitmap& ima
+
+ // TODO(crbug.com/1443341): Remove this after fixing the crash issue on Linux
+ // official.
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ free_library_allocated_char_array_(library_buffer.release());
+ #endif
+
+@@ -219,7 +219,7 @@ ScreenAILibraryWrapper::ExtractLayout(const SkBitmap&
+
+ // TODO(crbug.com/1443341): Remove this after fixing the crash issue on Linux
+ // official.
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ free_library_allocated_char_array_(library_buffer.release());
+ #endif
+
+@@ -253,7 +253,7 @@ absl::optional<std::vector<int32_t>> ScreenAILibraryWr
+
+ // TODO(crbug.com/1443341): Remove this after fixing the crash issue on Linux
+ // official.
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ free_library_allocated_int32_array_(library_buffer.release());
+ #endif
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_startup__metric__utils_common_startup__metric__utils.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_startup__metric__utils_common_startup__metric__utils.cc
new file mode 100644
index 000000000000..f1659cc70599
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_startup__metric__utils_common_startup__metric__utils.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/startup_metric_utils/common/startup_metric_utils.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/components/startup_metric_utils/common/startup_metric_utils.cc
+@@ -78,7 +78,7 @@ base::TimeTicks CommonStartupMetricRecorder::StartupTi
+ // Enabling this logic on OS X causes a significant performance regression.
+ // TODO(crbug.com/601270): Remove IS_APPLE ifdef once priority changes are
+ // ignored on Mac main thread.
+-#if !BUILDFLAG(IS_APPLE)
++#if !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD)
+ static bool statics_initialized = false;
+ if (!statics_initialized) {
+ statics_initialized = true;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_storage__monitor_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_storage__monitor_BUILD.gn
index 516f089d4638..1318ba5b920a 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_storage__monitor_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_storage__monitor_BUILD.gn
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/components/storage_monitor/BUILD.gn.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/components/storage_monitor/BUILD.gn.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/components/storage_monitor/BUILD.gn
@@ -75,7 +75,7 @@ jumbo_static_library("storage_monitor") {
deps += [ "//services/device/public/mojom" ]
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_supervised__user_core_browser_proto__fetcher.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_supervised__user_core_browser_proto__fetcher.cc
new file mode 100644
index 000000000000..011f6a2d4585
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_supervised__user_core_browser_proto__fetcher.cc
@@ -0,0 +1,39 @@
+--- src/3rdparty/chromium/components/supervised_user/core/browser/proto_fetcher.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/components/supervised_user/core/browser/proto_fetcher.cc
+@@ -398,8 +398,11 @@ class RetryingFetcherImpl final : public DeferredFetch
+ // Not copyable.
+ RetryingFetcherImpl(const RetryingFetcherImpl&) = delete;
+ RetryingFetcherImpl& operator=(const RetryingFetcherImpl&) = delete;
+-
++#if defined(__clang__) && (__clang_major__ >= 15)
+ void Start(ProtoFetcher<Response>::Callback callback) override {
++#else
++ void Start(typename ProtoFetcher<Response>::Callback callback) override {
++#endif
+ callback_ = std::move(callback);
+ Retry();
+ }
+@@ -435,7 +438,11 @@ class RetryingFetcherImpl final : public DeferredFetch
+ }
+
+ // Client callback.
++#if defined(__clang__) && (__clang_major__ >= 15)
+ ProtoFetcher<Response>::Callback callback_;
++#else
++ typename ProtoFetcher<Response>::Callback callback_;
++#endif
+
+ // Retry controls.
+ base::OneShotTimer timer_;
+@@ -578,7 +585,11 @@ ParallelFetchManager<Request, Response>::ParallelFetch
+ template <typename Request, typename Response>
+ void ParallelFetchManager<Request, Response>::Fetch(
+ const Request& request,
++#if defined(__clang__) && (__clang_major__ >= 15)
+ Fetcher::Callback callback) {
++#else
++ typename Fetcher::Callback callback) {
++#endif
+ CHECK(callback) << "Use base::DoNothing() instead of empty callback.";
+ KeyType key = requests_in_flight_.Add(MakeFetcher(request));
+ requests_in_flight_.Lookup(key)->Start(
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_supervised__user_core_browser_proto__fetcher.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_supervised__user_core_browser_proto__fetcher.h
new file mode 100644
index 000000000000..e84de128d3f5
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_supervised__user_core_browser_proto__fetcher.h
@@ -0,0 +1,21 @@
+--- src/3rdparty/chromium/components/supervised_user/core/browser/proto_fetcher.h.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/components/supervised_user/core/browser/proto_fetcher.h
+@@ -165,10 +165,18 @@ class ParallelFetchManager {
+
+ // Starts the fetch. Underlying fetcher is stored internally, and will be
+ // cleaned up after finish or when this manager is destroyed.
++#if defined(__clang__) && (__clang_major__ >= 15)
+ void Fetch(const Request& request, Fetcher::Callback callback);
++#else
++ void Fetch(const Request& request, typename Fetcher::Callback callback);
++#endif
+
+ private:
++#if defined(__clang__) && (__clang_major__ >= 15)
+ using KeyType = base::IDMap<std::unique_ptr<Fetcher>>::KeyType;
++#else
++ using KeyType = typename base::IDMap<std::unique_ptr<Fetcher>>::KeyType;
++#endif
+
+ // Remove fetcher under key from requests_in_flight_.
+ void Remove(KeyType key);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_supervised__user_core_browser_supervised__user__service.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_supervised__user_core_browser_supervised__user__service.cc
new file mode 100644
index 000000000000..eac3cbdb5091
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_supervised__user_core_browser_supervised__user__service.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/supervised_user/core/browser/supervised_user_service.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/components/supervised_user/core/browser/supervised_user_service.cc
+@@ -206,7 +206,7 @@ FirstTimeInterstitialBannerState SupervisedUserService
+ const FirstTimeInterstitialBannerState original_state) {
+ FirstTimeInterstitialBannerState target_state = original_state;
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_IOS)
++ BUILDFLAG(IS_IOS) || BUILDFLAG(IS_BSD)
+ if (supervised_user::CanDisplayFirstTimeInterstitialBanner()) {
+ if (original_state != FirstTimeInterstitialBannerState::kSetupComplete &&
+ can_show_first_time_interstitial_banner_) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_sync__device__info_local__device__info__util.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_sync__device__info_local__device__info__util.cc
new file mode 100644
index 000000000000..4c825d79ccdb
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_sync__device__info_local__device__info__util.cc
@@ -0,0 +1,29 @@
+--- src/3rdparty/chromium/components/sync_device_info/local_device_info_util.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/components/sync_device_info/local_device_info_util.cc
+@@ -82,7 +82,7 @@ void OnMachineStatisticsLoaded(LocalDeviceNameInfo* na
+ sync_pb::SyncEnums::DeviceType GetLocalDeviceType() {
+ #if BUILDFLAG(IS_CHROMEOS)
+ return sync_pb::SyncEnums_DeviceType_TYPE_CROS;
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return sync_pb::SyncEnums_DeviceType_TYPE_LINUX;
+ #elif BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
+ switch (ui::GetDeviceFormFactor()) {
+@@ -107,7 +107,7 @@ DeviceInfo::OsType GetLocalDeviceOSType() {
+ return DeviceInfo::OsType::kChromeOsAsh;
+ #elif BUILDFLAG(IS_CHROMEOS_LACROS)
+ return DeviceInfo::OsType::kChromeOsLacros;
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return DeviceInfo::OsType::kLinux;
+ #elif BUILDFLAG(IS_ANDROID)
+ return DeviceInfo::OsType::kAndroid;
+@@ -126,7 +126,7 @@ DeviceInfo::OsType GetLocalDeviceOSType() {
+
+ DeviceInfo::FormFactor GetLocalDeviceFormFactor() {
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+- BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ return DeviceInfo::FormFactor::kDesktop;
+ #elif BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
+ return ui::GetDeviceFormFactor() == ui::DEVICE_FORM_FACTOR_TABLET
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_sync__device__info_local__device__info__util__linux.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_sync__device__info_local__device__info__util__linux.cc
new file mode 100644
index 000000000000..7ce16715d205
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_sync__device__info_local__device__info__util__linux.cc
@@ -0,0 +1,14 @@
+--- src/3rdparty/chromium/components/sync_device_info/local_device_info_util_linux.cc.orig 2022-09-24 10:57:32 UTC
++++ src/3rdparty/chromium/components/sync_device_info/local_device_info_util_linux.cc
+@@ -9,6 +9,11 @@
+
+ #include "base/linux_util.h"
+
++#if defined(__FreeBSD__)
++#include <sys/param.h>
++#define HOST_NAME_MAX MAXHOSTNAMELEN
++#endif
++
+ namespace syncer {
+
+ std::string GetPersonalizableDeviceNameInternal() {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_update__client_update__query__params.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_update__client_update__query__params.cc
new file mode 100644
index 000000000000..8e39f14d2c90
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_update__client_update__query__params.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/update_client/update_query_params.cc.orig 2023-07-16 15:47:57 UTC
++++ src/3rdparty/chromium/components/update_client/update_query_params.cc
+@@ -42,6 +42,8 @@ const char kOs[] =
+ "fuchsia";
+ #elif BUILDFLAG(IS_OPENBSD)
+ "openbsd";
++#elif defined(OS_FREEBSD)
++ "freebsd";
+ #else
+ #error "unknown os"
+ #endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_url__formatter_spoof__checks_idn__spoof__checker.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_url__formatter_spoof__checks_idn__spoof__checker.cc
index 844f2cc5b7d5..ffe19ad21e15 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_url__formatter_spoof__checks_idn__spoof__checker.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_url__formatter_spoof__checks_idn__spoof__checker.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/components/url_formatter/spoof_checks/idn_spoof_checker.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/components/url_formatter/spoof_checks/idn_spoof_checker.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/components/url_formatter/spoof_checks/idn_spoof_checker.cc
-@@ -292,7 +292,7 @@ IDNSpoofChecker::IDNSpoofChecker() {
+@@ -293,7 +293,7 @@ IDNSpoofChecker::IDNSpoofChecker() {
// The ideal fix would be to change the omnibox font used for Thai. In
// that case, the Linux-only list should be revisited and potentially
// removed.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_user__education_views_help__bubble__view.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_user__education_views_help__bubble__view.cc
new file mode 100644
index 000000000000..bb21c601c3c9
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_user__education_views_help__bubble__view.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/user_education/views/help_bubble_view.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/components/user_education/views/help_bubble_view.cc
+@@ -991,7 +991,7 @@ gfx::Rect HelpBubbleView::GetAnchorRect() const {
+ void HelpBubbleView::OnBeforeBubbleWidgetInit(views::Widget::InitParams* params,
+ views::Widget* widget) const {
+ BubbleDialogDelegateView::OnBeforeBubbleWidgetInit(params, widget);
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Help bubbles anchored to menus may be clipped to their anchors' bounds,
+ // resulting in visual errors, unless they use accelerated rendering. See
+ // crbug.com/1445770 for details.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_variations_service_google__groups__updater__service.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_variations_service_google__groups__updater__service.cc
new file mode 100644
index 000000000000..3086aa685276
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_variations_service_google__groups__updater__service.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/variations/service/google_groups_updater_service.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/components/variations/service/google_groups_updater_service.cc
+@@ -15,7 +15,7 @@
+ // information from per-profile data to local-state.
+ BASE_FEATURE(kVariationsGoogleGroupFiltering,
+ "VariationsGoogleGroupFiltering",
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+ // TODO(b/286365351): launch on Android, iOS and ChromeOS.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_variations_service_variations__service.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_variations_service_variations__service.cc
new file mode 100644
index 000000000000..7b28e911fd3e
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_variations_service_variations__service.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/components/variations/service/variations_service.cc.orig 2023-05-31 08:12:17 UTC
++++ src/3rdparty/chromium/components/variations/service/variations_service.cc
+@@ -95,7 +95,7 @@ std::string GetPlatformString() {
+ return "android";
+ #elif BUILDFLAG(IS_FUCHSIA)
+ return "fuchsia";
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || BUILDFLAG(IS_SOLARIS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || BUILDFLAG(IS_SOLARIS) || BUILDFLAG(IS_BSD)
+ // Default BSD and SOLARIS to Linux to not break those builds, although these
+ // platforms are not officially supported by Chrome.
+ return "linux";
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_common_gpu_dawn__context__provider.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_common_gpu_dawn__context__provider.cc
deleted file mode 100644
index b67426e510f3..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_common_gpu_dawn__context__provider.cc
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/3rdparty/chromium/components/viz/common/gpu/dawn_context_provider.cc.orig 2022-02-28 16:54:41 UTC
-+++ src/3rdparty/chromium/components/viz/common/gpu/dawn_context_provider.cc
-@@ -20,7 +20,7 @@ namespace {
- wgpu::BackendType GetDefaultBackendType() {
- #if BUILDFLAG(IS_WIN)
- return wgpu::BackendType::D3D12;
--#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- return wgpu::BackendType::Vulkan;
- #else
- NOTREACHED();
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_host_renderer__settings__creation.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_host_renderer__settings__creation.cc
deleted file mode 100644
index b6ddc3aeb62c..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_host_renderer__settings__creation.cc
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/3rdparty/chromium/components/viz/host/renderer_settings_creation.cc.orig 2022-02-28 16:54:41 UTC
-+++ src/3rdparty/chromium/components/viz/host/renderer_settings_creation.cc
-@@ -52,7 +52,7 @@ RendererSettings CreateRendererSettings() {
- renderer_settings.partial_swap_enabled =
- !command_line->HasSwitch(switches::kUIDisablePartialSwap);
-
--#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX)
-+#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
- // Simple frame rate throttling only works on macOS and Linux
- renderer_settings.apply_simple_frame_rate_throttling =
- features::IsSimpleFrameRateThrottlingEnabled();
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_service_display__embedder_skia__output__surface__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_service_display__embedder_skia__output__surface__impl.cc
index d94d56e6ed9a..fc18626498c3 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_service_display__embedder_skia__output__surface__impl.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_service_display__embedder_skia__output__surface__impl.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/components/viz/service/display_embedder/skia_output_surface_impl.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/components/viz/service/display_embedder/skia_output_surface_impl.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/components/viz/service/display_embedder/skia_output_surface_impl.cc
-@@ -1259,7 +1259,7 @@ GrBackendFormat SkiaOutputSurfaceImpl::GetGrBackendFor
+@@ -1485,7 +1485,7 @@ GrBackendFormat SkiaOutputSurfaceImpl::GetGrBackendFor
->GetDeviceQueue()
->GetVulkanPhysicalDevice(),
VK_IMAGE_TILING_OPTIMAL, ycbcr_info);
@@ -8,4 +8,4 @@
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
// Textures that were allocated _on linux_ with ycbcr info came from
// VaapiVideoDecoder, which exports using DRM format modifiers.
- return GrBackendFormat::MakeVk(gr_ycbcr_info,
+ return GrBackendFormats::MakeVk(gr_ycbcr_info,
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_service_display__embedder_skia__output__surface__impl__on__gpu.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_service_display__embedder_skia__output__surface__impl__on__gpu.cc
new file mode 100644
index 000000000000..edde402f0b2b
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_service_display__embedder_skia__output__surface__impl__on__gpu.cc
@@ -0,0 +1,16 @@
+--- src/3rdparty/chromium/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.orig 2023-12-12 22:08:45 UTC
++++ src/3rdparty/chromium/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
+@@ -1521,7 +1521,12 @@ void SkiaOutputSurfaceImplOnGpu::CopyOutputNV12(
+
+ // Issue readbacks from the surfaces:
+ for (size_t i = 0; i < CopyOutputResult::kNV12MaxPlanes; ++i) {
+- SkISize size{plane_surfaces[i]->width(), plane_surfaces[i]->height()};
++#if defined(__clang__) && (__clang_major__ >= 16)
++ SkISize size(plane_surfaces[i]->width(), plane_surfaces[i]->height());
++#else
++ SkISize s = { plane_surfaces[i]->width(), plane_surfaces[i]->height() };
++ SkISize size(s);
++#endif
+ SkImageInfo dst_info = SkImageInfo::Make(
+ size, (i == 0) ? kAlpha_8_SkColorType : kR8G8_unorm_SkColorType,
+ kUnpremul_SkAlphaType);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_service_display_skia__renderer.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_service_display_skia__renderer.cc
index 01be933c151f..a82120f17057 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_service_display_skia__renderer.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_service_display_skia__renderer.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/components/viz/service/display/skia_renderer.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/components/viz/service/display/skia_renderer.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/components/viz/service/display/skia_renderer.cc
-@@ -1149,7 +1149,7 @@ void SkiaRenderer::ClearFramebuffer() {
+@@ -1218,7 +1218,7 @@ void SkiaRenderer::ClearFramebuffer() {
if (current_frame()->current_render_pass->has_transparent_background) {
ClearCanvas(SkColors::kTransparent);
} else {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_service_frame__sinks_root__compositor__frame__sink__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_service_frame__sinks_root__compositor__frame__sink__impl.cc
index e8f179652c9a..d56254e6b6a5 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_service_frame__sinks_root__compositor__frame__sink__impl.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_service_frame__sinks_root__compositor__frame__sink__impl.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc
-@@ -98,7 +98,7 @@ RootCompositorFrameSinkImpl::Create(
+@@ -110,7 +110,7 @@ RootCompositorFrameSinkImpl::Create(
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
@@ -9,7 +9,7 @@
// For X11, we need notify client about swap completion after resizing, so the
// client can use it for synchronize with X11 WM.
output_surface->SetNeedsSwapSizeNotifications(true);
-@@ -585,7 +585,7 @@ void RootCompositorFrameSinkImpl::DisplayDidCompleteSw
+@@ -709,7 +709,7 @@ void RootCompositorFrameSinkImpl::DisplayDidCompleteSw
display_client_->DidCompleteSwapWithSize(pixel_size);
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_service_frame__sinks_root__compositor__frame__sink__impl.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_service_frame__sinks_root__compositor__frame__sink__impl.h
index 817f9307c9f1..c33ac3839d6f 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_service_frame__sinks_root__compositor__frame__sink__impl.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_components_viz_service_frame__sinks_root__compositor__frame__sink__impl.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.h.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.h.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.h
-@@ -200,7 +200,7 @@ class VIZ_SERVICE_EXPORT RootCompositorFrameSinkImpl
+@@ -211,7 +211,7 @@ class VIZ_SERVICE_EXPORT RootCompositorFrameSinkImpl
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_app_content__main.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_app_content__main.cc
index 9df54ad2e565..e3db4f3c8780 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_app_content__main.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_app_content__main.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/content/app/content_main.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/content/app/content_main.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/content/app/content_main.cc
@@ -207,7 +207,7 @@ RunContentProcess(ContentMainParams params,
base::EnableTerminationOnOutOfMemory();
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_app_content__main__runner__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_app_content__main__runner__impl.cc
index 453c8ae225c4..242f9043efcc 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_app_content__main__runner__impl.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_app_content__main__runner__impl.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/content/app/content_main_runner_impl.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/content/app/content_main_runner_impl.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/content/app/content_main_runner_impl.cc
-@@ -139,13 +139,13 @@
+@@ -142,13 +142,13 @@
#include "content/browser/posix_file_descriptor_info_impl.h"
#include "content/public/common/content_descriptors.h"
@@ -16,21 +16,16 @@
#include "base/files/file_path_watcher_inotify.h"
#include "base/native_library.h"
#include "base/rand_util.h"
-@@ -170,6 +170,11 @@
- #include "content/public/common/content_client.h"
+@@ -183,12 +183,16 @@
+ #include "content/public/common/zygote/zygote_handle.h"
+ #include "content/zygote/zygote_main.h"
+ #include "media/base/media_switches.h"
++#endif // BUILDFLAG(USE_ZYGOTE_HANDLE)
+
+ #if BUILDFLAG(ENABLE_WEBRTC)
+ #include "third_party/webrtc_overrides/init_webrtc.h" // nogncheck
#endif
-
-+//XXX
-+#if BUILDFLAG(ENABLE_WEBRTC)
-+#include "third_party/webrtc_overrides/init_webrtc.h" // nogncheck
-+#endif
-+
- #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-
- #if BUILDFLAG(USE_ZYGOTE)
-@@ -189,6 +194,10 @@
- #endif
- #endif // BUILDFLAG(USE_ZYGOTE_HANDLE)
+-#endif // BUILDFLAG(USE_ZYGOTE_HANDLE)
+#if BUILDFLAG(IS_BSD)
+#include "base/system/sys_info.h"
@@ -39,7 +34,7 @@
#if BUILDFLAG(IS_ANDROID)
#include "base/system/sys_info.h"
#include "content/browser/android/battery_metrics.h"
-@@ -377,7 +386,7 @@ void InitializeZygoteSandboxForBrowserProcess(
+@@ -378,7 +382,7 @@ void InitializeZygoteSandboxForBrowserProcess(
}
#endif // BUILDFLAG(USE_ZYGOTE)
@@ -48,17 +43,26 @@
#if BUILDFLAG(ENABLE_PPAPI)
// Loads the (native) libraries but does not initialize them (i.e., does not
-@@ -413,15 +422,17 @@ void PreloadLibraryCdms() {
- }
- #endif // BUILDFLAG(ENABLE_LIBRARY_CDMS)
+@@ -416,7 +420,10 @@ void PreSandboxInit() {
--#if BUILDFLAG(USE_ZYGOTE)
-+#if BUILDFLAG(USE_ZYGOTE) || BUILDFLAG(IS_BSD)
void PreSandboxInit() {
- // Pre-acquire resources needed by BoringSSL. See
+ // Ensure the /dev/urandom is opened.
++ // we use arc4random
++#if !BUILDFLAG(IS_BSD)
+ base::GetUrandomFD();
++#endif
+
+ // May use sysinfo(), sched_getaffinity(), and open various /sys/ and /proc/
+ // files.
+@@ -427,9 +434,16 @@ void PreSandboxInit() {
// https://boringssl.googlesource.com/boringssl/+/HEAD/SANDBOXING.md
CRYPTO_pre_sandbox_init();
++#if BUILDFLAG(IS_BSD)
++ // "cache" the amount of physical memory before pledge(2)
++ base::SysInfo::AmountOfPhysicalMemoryMB();
++#endif
++
+#if !BUILDFLAG(IS_BSD)
// Pre-read /proc/sys/fs/inotify/max_user_watches so it doesn't have to be
// allowed by the sandbox.
@@ -67,28 +71,7 @@
#if BUILDFLAG(ENABLE_PPAPI)
// Ensure access to the Pepper plugins before the sandbox is turned on.
-@@ -442,6 +453,11 @@ void PreSandboxInit() {
- }
- #endif
-
-+#if BUILDFLAG(IS_BSD)
-+ // "cache" the amount of physical memory before pledge(2)
-+ base::SysInfo::AmountOfPhysicalMemoryMB();
-+#endif
-+
- // Set the android SkFontMgr for blink. We need to ensure this is done
- // before the sandbox is initialized to allow the font manager to access
- // font configuration files on disk.
-@@ -629,7 +645,7 @@ int NO_STACK_PROTECTOR RunZygote(ContentMainDelegate*
- delegate->ZygoteStarting(&zygote_fork_delegates);
- media::InitializeMediaLibrary();
-
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- PreSandboxInit();
- #endif
-
-@@ -832,11 +848,10 @@ int ContentMainRunnerImpl::Initialize(ContentMainParam
+@@ -838,11 +852,10 @@ int ContentMainRunnerImpl::Initialize(ContentMainParam
kFieldTrialDescriptor + base::GlobalDescriptors::kBaseDescriptor);
#endif // !BUILDFLAG(IS_ANDROID)
@@ -102,8 +85,12 @@
#endif // !BUILDFLAG(IS_WIN)
-@@ -1033,6 +1048,16 @@ int ContentMainRunnerImpl::Initialize(ContentMainParam
+@@ -1039,8 +1052,20 @@ int ContentMainRunnerImpl::Initialize(ContentMainParam
+ process_type == switches::kZygoteProcess) {
+ PreSandboxInit();
}
++#elif BUILDFLAG(IS_BSD)
++ PreSandboxInit();
#endif
+#if BUILDFLAG(IS_BSD)
@@ -119,7 +106,7 @@
delegate_->SandboxInitialized(process_type);
#if BUILDFLAG(USE_ZYGOTE)
-@@ -1100,7 +1125,7 @@ int NO_STACK_PROTECTOR ContentMainRunnerImpl::Run() {
+@@ -1108,7 +1133,7 @@ int NO_STACK_PROTECTOR ContentMainRunnerImpl::Run() {
->ReconfigureAfterFeatureListInit(process_type);
}
@@ -128,7 +115,7 @@
// If dynamic Mojo Core is being used, ensure that it's loaded very early in
// the child/zygote process, before any sandbox is initialized. The library
// is not fully initialized with IPC support until a ChildProcess is later
-@@ -1138,6 +1163,11 @@ int NO_STACK_PROTECTOR ContentMainRunnerImpl::Run() {
+@@ -1143,6 +1168,11 @@ int NO_STACK_PROTECTOR ContentMainRunnerImpl::Run() {
content_main_params_.reset();
RegisterMainThreadFactories();
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_BUILD.gn
index cfc7edccc312..5c5ca02fd01c 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_BUILD.gn
@@ -1,7 +1,7 @@
---- src/3rdparty/chromium/content/browser/BUILD.gn.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/content/browser/BUILD.gn.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/content/browser/BUILD.gn
-@@ -2360,6 +2360,13 @@ source_set("browser") {
- ]
+@@ -2463,6 +2463,13 @@ jumbo_source_set("browser") {
+ deps += [ "//media/mojo/mojom/stable:stable_video_decoder" ]
}
+ if (is_bsd) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_browser__child__process__host__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_browser__child__process__host__impl.cc
index 0c89457a2238..4519ecdbfe58 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_browser__child__process__host__impl.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_browser__child__process__host__impl.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/content/browser/browser_child_process_host_impl.cc.orig 2022-11-30 08:12:58 UTC
+--- src/3rdparty/chromium/content/browser/browser_child_process_host_impl.cc.orig 2023-07-16 15:47:57 UTC
+++ src/3rdparty/chromium/content/browser/browser_child_process_host_impl.cc
-@@ -316,6 +316,7 @@ void BrowserChildProcessHostImpl::LaunchWithoutExtraCo
+@@ -321,6 +321,7 @@ void BrowserChildProcessHostImpl::LaunchWithoutExtraCo
switches::kDisableBestEffortTasks,
switches::kDisableLogging,
switches::kEnableLogging,
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_browser__main__loop.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_browser__main__loop.cc
index 517ac077bc56..3cba864debd2 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_browser__main__loop.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_browser__main__loop.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/content/browser/browser_main_loop.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/content/browser/browser_main_loop.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/content/browser/browser_main_loop.cc
-@@ -250,6 +250,12 @@
+@@ -251,6 +251,12 @@
#include "mojo/public/cpp/bindings/lib/test_random_mojo_delays.h"
#endif
@@ -13,7 +13,7 @@
// One of the linux specific headers defines this as a macro.
#ifdef DestroyAll
#undef DestroyAll
-@@ -543,6 +549,12 @@ int BrowserMainLoop::EarlyInitialization() {
+@@ -544,6 +550,12 @@ int BrowserMainLoop::EarlyInitialization() {
// by now since a thread to start the ServiceManager has been created
// before the browser main loop starts.
DCHECK(SandboxHostLinux::GetInstance()->IsInitialized());
@@ -26,12 +26,12 @@
#endif
// GLib's spawning of new processes is buggy, so it's important that at this
-@@ -580,7 +592,7 @@ int BrowserMainLoop::EarlyInitialization() {
+@@ -581,7 +593,7 @@ int BrowserMainLoop::EarlyInitialization() {
base::PlatformThread::SetCurrentThreadType(base::ThreadType::kCompositing);
- #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+ #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
- BUILDFLAG(IS_ANDROID)
+ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
// We use quite a few file descriptors for our IPC as well as disk the disk
- // cache,and the default limit on the Mac is low (256), so bump it up.
+ // cache, and the default limit on Apple is low (256), so bump it up.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_child__process__launcher__helper__linux.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_child__process__launcher__helper__linux.cc
index 5b1da7855c20..7fee1010940d 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_child__process__launcher__helper__linux.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_child__process__launcher__helper__linux.cc
@@ -1,16 +1,19 @@
---- src/3rdparty/chromium/content/browser/child_process_launcher_helper_linux.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/content/browser/child_process_launcher_helper_linux.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/content/browser/child_process_launcher_helper_linux.cc
-@@ -20,7 +20,9 @@
+@@ -21,8 +21,12 @@
#include "content/public/common/result_codes.h"
#include "content/public/common/sandboxed_process_launcher_delegate.h"
#include "content/public/common/zygote/sandbox_support_linux.h"
+#if !BUILDFLAG(IS_BSD)
#include "content/public/common/zygote/zygote_handle.h"
-+#endif
#include "sandbox/policy/linux/sandbox_linux.h"
++#else
++#include "sandbox/policy/sandbox.h"
++#endif
namespace content {
-@@ -45,14 +47,20 @@ ChildProcessLauncherHelper::GetFilesToMap() {
+ namespace internal {
+@@ -46,14 +50,20 @@ bool ChildProcessLauncherHelper::IsUsingLaunchOptions(
}
bool ChildProcessLauncherHelper::IsUsingLaunchOptions() {
@@ -31,7 +34,7 @@
// Convert FD mapping to FileHandleMappingVector
options->fds_to_remap = files_to_register.GetMappingWithIDAdjustment(
base::GlobalDescriptors::kBaseDescriptor);
-@@ -64,7 +72,9 @@ bool ChildProcessLauncherHelper::BeforeLaunchOnLaunche
+@@ -65,7 +75,9 @@ bool ChildProcessLauncherHelper::BeforeLaunchOnLaunche
options->environment = delegate_->GetEnvironment();
} else {
@@ -41,7 +44,7 @@
// Environment variables could be supported in the future, but are not
// currently supported when launching with the zygote.
DCHECK(delegate_->GetEnvironment().empty());
-@@ -81,6 +91,7 @@ ChildProcessLauncherHelper::LaunchProcessOnLauncherThr
+@@ -82,6 +94,7 @@ ChildProcessLauncherHelper::LaunchProcessOnLauncherThr
int* launch_result) {
*is_synchronous_launch = true;
Process process;
@@ -49,7 +52,7 @@
ZygoteCommunication* zygote_handle = GetZygoteForLaunch();
if (zygote_handle) {
// TODO(crbug.com/569191): If chrome supported multiple zygotes they could
-@@ -91,7 +102,6 @@ ChildProcessLauncherHelper::LaunchProcessOnLauncherThr
+@@ -92,7 +105,6 @@ ChildProcessLauncherHelper::LaunchProcessOnLauncherThr
GetProcessType());
*launch_result = LAUNCH_RESULT_SUCCESS;
@@ -57,7 +60,7 @@
if (handle) {
// It could be a renderer process or an utility process.
int oom_score = content::kMiscOomScore;
-@@ -100,15 +110,17 @@ ChildProcessLauncherHelper::LaunchProcessOnLauncherThr
+@@ -101,15 +113,17 @@ ChildProcessLauncherHelper::LaunchProcessOnLauncherThr
oom_score = content::kLowestRendererOomScore;
ZygoteHostImpl::GetInstance()->AdjustRendererOOMScore(handle, oom_score);
}
@@ -76,7 +79,7 @@
#if BUILDFLAG(IS_CHROMEOS)
if (GetProcessType() == switches::kRendererProcess) {
-@@ -130,10 +142,14 @@ ChildProcessTerminationInfo ChildProcessLauncherHelper
+@@ -131,10 +145,14 @@ ChildProcessTerminationInfo ChildProcessLauncherHelper
const ChildProcessLauncherHelper::Process& process,
bool known_dead) {
ChildProcessTerminationInfo info;
@@ -91,7 +94,7 @@
info.status = base::GetKnownDeadTerminationStatus(process.process.Handle(),
&info.exit_code);
} else {
-@@ -157,13 +173,17 @@ void ChildProcessLauncherHelper::ForceNormalProcessTer
+@@ -160,13 +178,17 @@ void ChildProcessLauncherHelper::ForceNormalProcessTer
DCHECK(CurrentlyOnProcessLauncherTaskRunner());
process.process.Terminate(RESULT_CODE_NORMAL_EXIT, false);
// On POSIX, we must additionally reap the child.
@@ -108,9 +111,9 @@
+#endif
}
- void ChildProcessLauncherHelper::SetProcessBackgroundedOnLauncherThread(
-@@ -174,11 +194,13 @@ void ChildProcessLauncherHelper::SetProcessBackgrounde
- process.SetProcessBackgrounded(is_background);
+ void ChildProcessLauncherHelper::SetProcessPriorityOnLauncherThread(
+@@ -178,11 +200,13 @@ void ChildProcessLauncherHelper::SetProcessPriorityOnL
+ }
}
+#if !BUILDFLAG(IS_BSD)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_compositor_viz__process__transport__factory.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_compositor_viz__process__transport__factory.cc
index 3d0d2bcbdf8f..82013d2983c7 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_compositor_viz__process__transport__factory.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_compositor_viz__process__transport__factory.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/content/browser/compositor/viz_process_transport_factory.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/content/browser/compositor/viz_process_transport_factory.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/content/browser/compositor/viz_process_transport_factory.cc
-@@ -116,7 +116,7 @@ class HostDisplayClient : public viz::HostDisplayClien
+@@ -108,7 +108,7 @@ class HostDisplayClient : public viz::HostDisplayClien
// viz::HostDisplayClient:
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_devtools_protocol_system__info__handler.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_devtools_protocol_system__info__handler.cc
index 47562eb7d940..bc5aeb9a8c03 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_devtools_protocol_system__info__handler.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_devtools_protocol_system__info__handler.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/content/browser/devtools/protocol/system_info_handler.cc.orig 2023-02-08 09:03:45 UTC
+--- src/3rdparty/chromium/content/browser/devtools/protocol/system_info_handler.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/content/browser/devtools/protocol/system_info_handler.cc
-@@ -50,7 +50,7 @@ std::unique_ptr<SystemInfo::Size> GfxSizeToSystemInfoS
+@@ -49,7 +49,7 @@ std::unique_ptr<SystemInfo::Size> GfxSizeToSystemInfoS
// 1046598, and 1153667.
// Windows builds need more time -- see Issue 873112 and 1004472.
// Mac builds need more time - see Issue angleproject:6182.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_file__system__access_file__system__access__local__path__watcher.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_file__system__access_file__system__access__local__path__watcher.cc
new file mode 100644
index 000000000000..95bcf928750a
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_file__system__access_file__system__access__local__path__watcher.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/content/browser/file_system_access/file_system_access_local_path_watcher.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/content/browser/file_system_access/file_system_access_local_path_watcher.cc
+@@ -56,7 +56,7 @@ void FileSystemAccessLocalPathWatcher::Initialize(
+ base::FilePathWatcher::WatchOptions watch_options {
+ .type = scope().IsRecursive() ? base::FilePathWatcher::Type::kRecursive
+ : base::FilePathWatcher::Type::kNonRecursive,
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Note: `report_modified_path` is also present on Android
+ // and Fuchsia. Update this switch if support for watching
+ // the local file system is added on those platforms.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_gpu_gpu__data__manager__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_gpu_gpu__data__manager__impl.cc
new file mode 100644
index 000000000000..9d9098464fef
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_gpu_gpu__data__manager__impl.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/content/browser/gpu/gpu_data_manager_impl.cc.orig 2023-04-28 17:01:32 UTC
++++ src/3rdparty/chromium/content/browser/gpu/gpu_data_manager_impl.cc
+@@ -405,7 +405,7 @@ void GpuDataManagerImpl::OnDisplayMetricsChanged(
+ private_->OnDisplayMetricsChanged(display, changed_metrics);
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool GpuDataManagerImpl::IsGpuMemoryBufferNV12Supported() {
+ base::AutoLock auto_lock(lock_);
+ return private_->IsGpuMemoryBufferNV12Supported();
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_gpu_gpu__data__manager__impl.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_gpu_gpu__data__manager__impl.h
new file mode 100644
index 000000000000..40e498c97e5f
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_gpu_gpu__data__manager__impl.h
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/content/browser/gpu/gpu_data_manager_impl.h.orig 2023-04-28 17:01:32 UTC
++++ src/3rdparty/chromium/content/browser/gpu/gpu_data_manager_impl.h
+@@ -221,7 +221,7 @@ class CONTENT_EXPORT GpuDataManagerImpl : public GpuDa
+ void OnDisplayMetricsChanged(const display::Display& display,
+ uint32_t changed_metrics) override;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool IsGpuMemoryBufferNV12Supported();
+ void SetGpuMemoryBufferNV12Supported(bool supported);
+ #endif // BUILDFLAG(IS_LINUX)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_gpu_gpu__data__manager__impl__private.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_gpu_gpu__data__manager__impl__private.cc
new file mode 100644
index 000000000000..1af2cff7314f
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_gpu_gpu__data__manager__impl__private.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/content/browser/gpu/gpu_data_manager_impl_private.cc.orig 2023-12-12 22:08:45 UTC
++++ src/3rdparty/chromium/content/browser/gpu/gpu_data_manager_impl_private.cc
+@@ -1787,7 +1787,7 @@ void GpuDataManagerImplPrivate::RecordCompositingMode(
+ UMA_HISTOGRAM_ENUMERATION("GPU.CompositingMode", compositing_mode);
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool GpuDataManagerImplPrivate::IsGpuMemoryBufferNV12Supported() {
+ return is_gpu_memory_buffer_NV12_supported_;
+ }
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_gpu_gpu__data__manager__impl__private.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_gpu_gpu__data__manager__impl__private.h
new file mode 100644
index 000000000000..18bd9de3b825
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_gpu_gpu__data__manager__impl__private.h
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/content/browser/gpu/gpu_data_manager_impl_private.h.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/content/browser/gpu/gpu_data_manager_impl_private.h
+@@ -151,7 +151,7 @@ class CONTENT_EXPORT GpuDataManagerImplPrivate {
+ void OnDisplayMetricsChanged(const display::Display& display,
+ uint32_t changed_metrics);
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool IsGpuMemoryBufferNV12Supported();
+ void SetGpuMemoryBufferNV12Supported(bool supported);
+ #endif // BUILDFLAG(IS_LINUX)
+@@ -306,7 +306,7 @@ class CONTENT_EXPORT GpuDataManagerImplPrivate {
+ bool application_is_visible_ = true;
+
+ bool disable_gpu_compositing_ = false;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool is_gpu_memory_buffer_NV12_supported_ = false;
+ #endif // BUILDFLAG(IS_LINUX)
+ };
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_gpu_gpu__memory__buffer__manager__singleton.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_gpu_gpu__memory__buffer__manager__singleton.cc
new file mode 100644
index 000000000000..fb3c0191ec87
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_gpu_gpu__memory__buffer__manager__singleton.cc
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/content/browser/gpu/gpu_memory_buffer_manager_singleton.cc.orig 2023-04-28 17:01:32 UTC
++++ src/3rdparty/chromium/content/browser/gpu/gpu_memory_buffer_manager_singleton.cc
+@@ -53,7 +53,7 @@ scoped_refptr<base::SingleThreadTaskRunner> GetTaskRun
+ #endif
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool IsGpuMemoryBufferNV12Supported() {
+ static bool is_computed = false;
+ static bool supported = false;
+@@ -116,7 +116,7 @@ void GpuMemoryBufferManagerSingleton::OnGpuExtraInfoUp
+ SetNativeConfigurations(std::move(configs));
+ }
+ #endif
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Dynamic check whether the NV12 format is supported as it may be
+ // inconsistent between the system GBM (Generic Buffer Management) and
+ // chromium miniGBM.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_gpu_gpu__process__host.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_gpu_gpu__process__host.cc
index 7d86c8262770..930a6df857d5 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_gpu_gpu__process__host.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_gpu_gpu__process__host.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/content/browser/gpu/gpu_process_host.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/content/browser/gpu/gpu_process_host.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/content/browser/gpu/gpu_process_host.cc
-@@ -252,6 +252,7 @@ static const char* const kSwitchNames[] = {
+@@ -256,6 +256,7 @@ static const char* const kSwitchNames[] = {
switches::kEnableBackgroundThreadPool,
switches::kEnableGpuRasterization,
switches::kEnableLogging,
@@ -8,7 +8,7 @@
switches::kDoubleBufferCompositing,
switches::kHeadless,
switches::kLoggingLevel,
-@@ -283,7 +284,7 @@ static const char* const kSwitchNames[] = {
+@@ -289,7 +290,7 @@ static const char* const kSwitchNames[] = {
switches::kOzoneDumpFile,
switches::kDisableBufferBWCompression,
#endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_media_frameless__media__interface__proxy.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_media_frameless__media__interface__proxy.cc
deleted file mode 100644
index 6d49b8fe66c9..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_media_frameless__media__interface__proxy.cc
+++ /dev/null
@@ -1,20 +0,0 @@
---- src/3rdparty/chromium/content/browser/media/frameless_media_interface_proxy.cc.orig 2022-08-31 12:19:35 UTC
-+++ src/3rdparty/chromium/content/browser/media/frameless_media_interface_proxy.cc
-@@ -16,7 +16,7 @@
- #include "media/mojo/mojom/renderer_extensions.mojom.h"
- #include "media/mojo/mojom/stable/stable_video_decoder.mojom.h"
-
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- #include "content/public/browser/stable_video_decoder_factory.h"
- #include "media/base/media_switches.h"
- #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-@@ -67,7 +67,7 @@ void FramelessMediaInterfaceProxy::CreateVideoDecoder(
-
- mojo::PendingRemote<media::stable::mojom::StableVideoDecoder>
- oop_video_decoder;
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- if (base::FeatureList::IsEnabled(media::kUseOutOfProcessVideoDecoding)) {
- if (!render_process_host_) {
- if (!stable_vd_factory_remote_.is_bound()) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_media_media__interface__proxy.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_media_media__interface__proxy.cc
deleted file mode 100644
index d7025daf2fd0..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_media_media__interface__proxy.cc
+++ /dev/null
@@ -1,20 +0,0 @@
---- src/3rdparty/chromium/content/browser/media/media_interface_proxy.cc.orig 2022-10-24 13:33:33 UTC
-+++ src/3rdparty/chromium/content/browser/media/media_interface_proxy.cc
-@@ -73,7 +73,7 @@
- #include "media/mojo/services/mojo_renderer_service.h" // nogncheck
- #endif
-
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- #include "content/public/browser/stable_video_decoder_factory.h"
- #include "media/base/media_switches.h"
- #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-@@ -286,7 +286,7 @@ void MediaInterfaceProxy::CreateVideoDecoder(
-
- mojo::PendingRemote<media::stable::mojom::StableVideoDecoder>
- oop_video_decoder;
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- if (base::FeatureList::IsEnabled(media::kUseOutOfProcessVideoDecoding)) {
- render_frame_host().GetProcess()->CreateStableVideoDecoder(
- oop_video_decoder.InitWithNewPipeAndPassReceiver());
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_media_media__keys__listener__manager__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_media_media__keys__listener__manager__impl.cc
index c4ec45daf0d9..ab773b105b71 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_media_media__keys__listener__manager__impl.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_media_media__keys__listener__manager__impl.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/content/browser/media/media_keys_listener_manager_impl.cc.orig 2022-04-21 18:48:31 UTC
+--- src/3rdparty/chromium/content/browser/media/media_keys_listener_manager_impl.cc.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/content/browser/media/media_keys_listener_manager_impl.cc
-@@ -233,7 +233,7 @@ void MediaKeysListenerManagerImpl::StartListeningForMe
+@@ -234,7 +234,7 @@ void MediaKeysListenerManagerImpl::StartListeningForMe
// TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is
// complete.
#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || \
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_network__service__instance__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_network__service__instance__impl.cc
index 3f3775cc4b05..7b48f931d99a 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_network__service__instance__impl.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_network__service__instance__impl.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/content/browser/network_service_instance_impl.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/content/browser/network_service_instance_impl.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/content/browser/network_service_instance_impl.cc
-@@ -76,7 +76,7 @@
+@@ -82,7 +82,7 @@
#include "content/browser/network/network_service_process_tracker_win.h"
#endif
@@ -9,12 +9,21 @@
#include "content/browser/system_dns_resolution/system_dns_resolver.h"
#include "services/network/public/mojom/system_dns_resolution.mojom-forward.h"
#endif
-@@ -404,7 +404,7 @@ network::mojom::NetworkServiceParamsPtr CreateNetworkS
+@@ -421,7 +421,7 @@ void CreateInProcessNetworkService(
+ #endif
+ }
+
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Runs a self-owned SystemDnsResolverMojoImpl. This is meant to run on a
+ // high-priority thread pool.
+ void RunSystemDnsResolverOnThreadPool(
+@@ -488,7 +488,7 @@ network::mojom::NetworkServiceParamsPtr CreateNetworkS
}
#endif // BUILDFLAG(IS_POSIX)
--#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
if (GetContentClient()
->browser()
->ShouldRunOutOfProcessSystemDnsResolution() &&
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_back__forward__cache__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_back__forward__cache__impl.cc
deleted file mode 100644
index 80adf88d5161..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_back__forward__cache__impl.cc
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/3rdparty/chromium/content/browser/renderer_host/back_forward_cache_impl.cc.orig 2023-03-09 06:31:50 UTC
-+++ src/3rdparty/chromium/content/browser/renderer_host/back_forward_cache_impl.cc
-@@ -56,7 +56,7 @@ BASE_FEATURE(kBackForwardCacheSize,
- // Sets the BackForwardCache size for desktop.
- // See crbug.com/1291435.
- #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
-- BUILDFLAG(IS_CHROMEOS)
-+ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- base::FEATURE_ENABLED_BY_DEFAULT
- #else
- base::FEATURE_DISABLED_BY_DEFAULT
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_delegated__frame__host.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_delegated__frame__host.cc
index db196c7b2f00..bc9b7da1b672 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_delegated__frame__host.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_delegated__frame__host.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/content/browser/renderer_host/delegated_frame_host.cc.orig 2023-02-08 09:03:45 UTC
+--- src/3rdparty/chromium/content/browser/renderer_host/delegated_frame_host.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/content/browser/renderer_host/delegated_frame_host.cc
-@@ -295,7 +295,7 @@ void DelegatedFrameHost::EmbedSurface(
+@@ -312,7 +312,7 @@ void DelegatedFrameHost::EmbedSurface(
if (!primary_surface_id ||
primary_surface_id->local_surface_id() != local_surface_id_) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_media_service__video__capture__device__launcher.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_media_service__video__capture__device__launcher.cc
new file mode 100644
index 000000000000..fd80eb76142b
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_media_service__video__capture__device__launcher.cc
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/content/browser/renderer_host/media/service_video_capture_device_launcher.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/content/browser/renderer_host/media/service_video_capture_device_launcher.cc
+@@ -24,7 +24,7 @@
+ #include "media/base/media_switches.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "content/browser/gpu/gpu_data_manager_impl.h"
+ #endif
+
+@@ -166,7 +166,7 @@ void ServiceVideoCaptureDeviceLauncher::LaunchDeviceAs
+ }
+ #else
+ if (switches::IsVideoCaptureUseGpuMemoryBufferEnabled()) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // On Linux, additionally check whether the NV12 GPU memory buffer is
+ // supported.
+ if (GpuDataManagerImpl::GetInstance()->IsGpuMemoryBufferNV12Supported())
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_render__process__host__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_render__process__host__impl.cc
index 7721b63b40fe..c4ce8d2eff8f 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_render__process__host__impl.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_render__process__host__impl.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/content/browser/renderer_host/render_process_host_impl.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/content/browser/renderer_host/render_process_host_impl.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/content/browser/renderer_host/render_process_host_impl.cc
-@@ -212,7 +212,7 @@
+@@ -218,7 +218,7 @@
#include "third_party/blink/public/mojom/android_font_lookup/android_font_lookup.mojom.h"
#endif
@@ -9,7 +9,7 @@
#include <sys/resource.h>
#include "components/services/font/public/mojom/font_service.mojom.h" // nogncheck
-@@ -1148,7 +1148,7 @@ size_t GetPlatformProcessLimit() {
+@@ -955,7 +955,7 @@ size_t GetPlatformProcessLimit() {
// to indicate failure and std::numeric_limits<size_t>::max() to indicate
// unlimited.
size_t GetPlatformProcessLimit() {
@@ -18,7 +18,7 @@
struct rlimit limit;
if (getrlimit(RLIMIT_NPROC, &limit) != 0)
return kUnknownPlatformProcessLimit;
-@@ -1240,7 +1240,7 @@ class RenderProcessHostImpl::IOThreadHostImpl : public
+@@ -1098,7 +1098,7 @@ class RenderProcessHostImpl::IOThreadHostImpl : public
return;
}
@@ -27,7 +27,7 @@
if (auto font_receiver = receiver.As<font_service::mojom::FontService>()) {
ConnectToFontService(std::move(font_receiver));
return;
-@@ -1329,7 +1329,7 @@ class RenderProcessHostImpl::IOThreadHostImpl : public
+@@ -1187,7 +1187,7 @@ class RenderProcessHostImpl::IOThreadHostImpl : public
std::unique_ptr<service_manager::BinderRegistry> binders_;
mojo::Receiver<mojom::ChildProcessHost> receiver_{this};
@@ -36,29 +36,20 @@
mojo::Remote<media::mojom::VideoEncodeAcceleratorProviderFactory>
video_encode_accelerator_factory_remote_;
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-@@ -2168,7 +2168,7 @@ void RenderProcessHostImpl::ReinitializeLogging(
- }
- #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+@@ -3287,7 +3287,7 @@ void RenderProcessHostImpl::AppendRendererCommandLine(
+ base::TimeTicks::UnixEpoch().since_origin().InMicroseconds()));
+ }
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- void RenderProcessHostImpl::CreateStableVideoDecoder(
- mojo::PendingReceiver<media::stable::mojom::StableVideoDecoder> receiver) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
-@@ -3356,6 +3356,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLin
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Append `kDisableVideoCaptureUseGpuMemoryBuffer` flag if there is no support
+ // for NV12 GPU memory buffer.
+ if (switches::IsVideoCaptureUseGpuMemoryBufferEnabled() &&
+@@ -3347,6 +3347,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLin
switches::kDisableSpeechAPI,
switches::kDisableThreadedCompositing,
switches::kDisableTouchDragDrop,
+ switches::kDisableUnveil,
- switches::kDisableUseMojoVideoDecoderForPepper,
switches::kDisableV8IdleTasks,
switches::kDisableVideoCaptureUseGpuMemoryBuffer,
-@@ -4847,7 +4848,7 @@ void RenderProcessHostImpl::ResetIPC() {
- coordinator_connector_receiver_.reset();
- tracing_registration_.reset();
-
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- stable_video_decoder_factory_remote_.reset();
- #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-
+ switches::kDisableWebGLImageChromium,
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_render__process__host__impl.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_render__process__host__impl.h
index 9595b09fccf6..9f56dc81fc8f 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_render__process__host__impl.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_render__process__host__impl.h
@@ -1,15 +1,6 @@
---- src/3rdparty/chromium/content/browser/renderer_host/render_process_host_impl.h.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/content/browser/renderer_host/render_process_host_impl.h.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/content/browser/renderer_host/render_process_host_impl.h
-@@ -85,7 +85,7 @@
- #include "content/public/browser/android/child_process_importance.h"
- #endif
-
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- #include "media/mojo/mojom/stable/stable_video_decoder.mojom.h"
- #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-
-@@ -495,7 +495,7 @@ class CONTENT_EXPORT RenderProcessHostImpl
+@@ -545,7 +545,7 @@ class CONTENT_EXPORT RenderProcessHostImpl
// Sets this RenderProcessHost to be guest only. For Testing only.
void SetForGuestsOnlyForTesting();
@@ -18,21 +9,3 @@
// Launch the zygote early in the browser startup.
static void EarlyZygoteLaunch();
#endif // BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_MAC)
-@@ -704,7 +704,7 @@ class CONTENT_EXPORT RenderProcessHostImpl
- mojo::PendingReceiver<blink::mojom::WebSocketConnector> receiver)
- override;
-
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- void CreateStableVideoDecoder(
- mojo::PendingReceiver<media::stable::mojom::StableVideoDecoder> receiver)
- override;
-@@ -1181,7 +1181,7 @@ class CONTENT_EXPORT RenderProcessHostImpl
- // RenderProcessHost. This is destroyed early in ResetIPC() method.
- std::unique_ptr<PermissionServiceContext> permission_service_context_;
-
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- // Connection to the StableVideoDecoderFactory that lives in a utility
- // process. This is only used for out-of-process video decoding.
- mojo::Remote<media::stable::mojom::StableVideoDecoderFactory>
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_render__view__host__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_render__view__host__impl.cc
index cf2fc7e43e27..7d964a964f7e 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_render__view__host__impl.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_render__view__host__impl.cc
@@ -1,11 +1,11 @@
---- src/3rdparty/chromium/content/browser/renderer_host/render_view_host_impl.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/content/browser/renderer_host/render_view_host_impl.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/content/browser/renderer_host/render_view_host_impl.cc
-@@ -250,7 +250,7 @@ void RenderViewHostImpl::GetPlatformSpecificPrefs(
+@@ -273,7 +273,7 @@ void RenderViewHostImpl::GetPlatformSpecificPrefs(
display::win::ScreenWin::GetSystemMetricsInDIP(SM_CYVSCROLL);
prefs->arrow_bitmap_width_horizontal_scroll_bar_in_dips =
display::win::ScreenWin::GetSystemMetricsInDIP(SM_CXHSCROLL);
-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- prefs->system_font_family_name = gfx::Font().GetFontName();
- #elif BUILDFLAG(IS_FUCHSIA)
- // Make Blink's "focus ring" invisible. The focus ring is a hairline border
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+ if (command_line->HasSwitch(switches::kSystemFontFamily)) {
+ prefs->system_font_family_name =
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_render__widget__host__view__aura.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_render__widget__host__view__aura.cc
index bf643fd9f732..ae80ad304554 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_render__widget__host__view__aura.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_render__widget__host__view__aura.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/content/browser/renderer_host/render_widget_host_view_aura.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/content/browser/renderer_host/render_widget_host_view_aura.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/content/browser/renderer_host/render_widget_host_view_aura.cc
-@@ -119,7 +119,7 @@
+@@ -121,7 +121,7 @@
#include "ui/gfx/gdi_util.h"
#endif
@@ -9,7 +9,7 @@
#include "content/browser/accessibility/browser_accessibility_auralinux.h"
#include "ui/base/ime/linux/text_edit_command_auralinux.h"
#include "ui/linux/linux_ui.h"
-@@ -452,7 +452,7 @@ gfx::NativeViewAccessible RenderWidgetHostViewAura::Ge
+@@ -461,7 +461,7 @@ gfx::NativeViewAccessible RenderWidgetHostViewAura::Ge
return ToBrowserAccessibilityWin(manager->GetBrowserAccessibilityRoot())
->GetCOM();
@@ -18,7 +18,7 @@
BrowserAccessibilityManager* manager =
host()->GetOrCreateRootBrowserAccessibilityManager();
if (manager && manager->GetBrowserAccessibilityRoot())
-@@ -1588,7 +1588,7 @@ bool RenderWidgetHostViewAura::ShouldDoLearning() {
+@@ -1720,7 +1720,7 @@ bool RenderWidgetHostViewAura::ShouldDoLearning() {
return GetTextInputManager() && GetTextInputManager()->should_do_learning();
}
@@ -27,7 +27,7 @@
bool RenderWidgetHostViewAura::SetCompositionFromExistingText(
const gfx::Range& range,
const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) {
-@@ -2420,7 +2420,7 @@ bool RenderWidgetHostViewAura::NeedsInputGrab() {
+@@ -2565,7 +2565,7 @@ bool RenderWidgetHostViewAura::NeedsInputGrab() {
}
bool RenderWidgetHostViewAura::NeedsMouseCapture() {
@@ -36,7 +36,7 @@
return NeedsInputGrab();
#else
return false;
-@@ -2597,7 +2597,7 @@ void RenderWidgetHostViewAura::ForwardKeyboardEventWit
+@@ -2748,7 +2748,7 @@ void RenderWidgetHostViewAura::ForwardKeyboardEventWit
if (!target_host)
return;
@@ -44,4 +44,4 @@
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
auto* linux_ui = ui::LinuxUi::instance();
std::vector<ui::TextEditCommandAuraLinux> commands;
- if (!event.skip_in_browser && linux_ui && event.os_event &&
+ if (!event.skip_if_unhandled && linux_ui && event.os_event &&
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_render__widget__host__view__aura.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_render__widget__host__view__aura.h
index 287bb394b0e3..0322e463770c 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_render__widget__host__view__aura.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_render__widget__host__view__aura.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/content/browser/renderer_host/render_widget_host_view_aura.h.orig 2023-01-11 09:17:16 UTC
+--- src/3rdparty/chromium/content/browser/renderer_host/render_widget_host_view_aura.h.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/content/browser/renderer_host/render_widget_host_view_aura.h
-@@ -244,7 +244,7 @@ class CONTENT_EXPORT RenderWidgetHostViewAura
+@@ -257,7 +257,7 @@ class CONTENT_EXPORT RenderWidgetHostViewAura
ukm::SourceId GetClientSourceForMetrics() const override;
bool ShouldDoLearning() override;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_render__widget__host__view__event__handler.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_render__widget__host__view__event__handler.cc
index 92d32cbb737a..22b15cee0a8c 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_render__widget__host__view__event__handler.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_renderer__host_render__widget__host__view__event__handler.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/content/browser/renderer_host/render_widget_host_view_event_handler.cc.orig 2022-02-28 16:54:41 UTC
+--- src/3rdparty/chromium/content/browser/renderer_host/render_widget_host_view_event_handler.cc.orig 2023-07-16 15:47:57 UTC
+++ src/3rdparty/chromium/content/browser/renderer_host/render_widget_host_view_event_handler.cc
-@@ -596,7 +596,7 @@ bool RenderWidgetHostViewEventHandler::CanRendererHand
+@@ -597,7 +597,7 @@ bool RenderWidgetHostViewEventHandler::CanRendererHand
if (event->type() == ui::ET_MOUSE_EXITED) {
if (mouse_locked || selection_popup)
return false;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_sandbox__host__linux.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_sandbox__host__linux.cc
index 6a3e81247fd9..98daadc85c81 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_sandbox__host__linux.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_sandbox__host__linux.cc
@@ -1,10 +1,10 @@
---- src/3rdparty/chromium/content/browser/sandbox_host_linux.cc.orig 2022-02-07 13:39:41 UTC
+--- src/3rdparty/chromium/content/browser/sandbox_host_linux.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/content/browser/sandbox_host_linux.cc
@@ -45,6 +45,7 @@ void SandboxHostLinux::Init() {
// Instead, it replies on a temporary socket provided by the caller.
PCHECK(0 == shutdown(browser_socket, SHUT_WR)) << "shutdown";
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
int pipefds[2];
CHECK(0 == pipe(pipefds));
const int child_lifeline_fd = pipefds[0];
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_scheduler_responsiveness_jank__monitor__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_scheduler_responsiveness_jank__monitor__impl.cc
index 5943ba589267..290ad1688b2d 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_scheduler_responsiveness_jank__monitor__impl.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_scheduler_responsiveness_jank__monitor__impl.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/content/browser/scheduler/responsiveness/jank_monitor_impl.cc.orig 2023-01-11 09:17:16 UTC
+--- src/3rdparty/chromium/content/browser/scheduler/responsiveness/jank_monitor_impl.cc.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/content/browser/scheduler/responsiveness/jank_monitor_impl.cc
-@@ -334,7 +334,7 @@ void JankMonitorImpl::ThreadExecutionState::DidRunTask
+@@ -340,7 +340,7 @@ void JankMonitorImpl::ThreadExecutionState::DidRunTask
// in context menus, among others). Simply ignore the mismatches for now.
// See https://crbug.com/929813 for the details of why the mismatch
// happens.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_service__worker_service__worker__context__wrapper.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_service__worker_service__worker__context__wrapper.cc
new file mode 100644
index 000000000000..477a7524b89c
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_service__worker_service__worker__context__wrapper.cc
@@ -0,0 +1,15 @@
+--- src/3rdparty/chromium/content/browser/service_worker/service_worker_context_wrapper.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/content/browser/service_worker/service_worker_context_wrapper.cc
+@@ -1409,7 +1409,12 @@ void ServiceWorkerContextWrapper::MaybeProcessPendingW
+ return;
+ }
+
++#if defined(__clang__) && (__clang_major__ >= 16)
+ auto [document_url, key, callback] = std::move(*request);
++#else
++ auto [d_u, key, callback] = std::move(*request);
++ auto document_url = d_u;
++#endif
+
+ DCHECK(document_url.is_valid());
+ TRACE_EVENT1("ServiceWorker",
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_utility__process__host.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_utility__process__host.cc
new file mode 100644
index 000000000000..82c2bac9c1b1
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_utility__process__host.cc
@@ -0,0 +1,56 @@
+--- src/3rdparty/chromium/content/browser/utility_process_host.cc.orig 2023-12-12 22:08:45 UTC
++++ src/3rdparty/chromium/content/browser/utility_process_host.cc
+@@ -59,7 +59,7 @@
+ #include "content/browser/v8_snapshot_files.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "base/files/file_util.h"
+ #include "base/files/scoped_file.h"
+ #include "base/pickle.h"
+@@ -69,7 +69,7 @@
+ #include "media/capture/capture_switches.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "base/task/sequenced_task_runner.h"
+ #include "components/viz/host/gpu_client.h"
+ #include "media/capture/capture_switches.h"
+@@ -80,7 +80,7 @@ namespace {
+
+ namespace {
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ base::ScopedFD PassNetworkContextParentDirs(
+ std::vector<base::FilePath> network_context_parent_dirs) {
+ base::Pickle pickle;
+@@ -129,7 +129,7 @@ UtilityProcessHost::UtilityProcessHost(std::unique_ptr
+ started_(false),
+ name_(u"utility process"),
+ file_data_(std::make_unique<ChildProcessLauncherFileData>()),
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ gpu_client_(nullptr, base::OnTaskRunnerDeleter(nullptr)),
+ #endif
+ client_(std::move(client)) {
+@@ -421,7 +421,7 @@ bool UtilityProcessHost::StartProcess() {
+ file_data_->files_to_preload.merge(GetV8SnapshotFilesToPreload());
+ #endif // BUILDFLAG(IS_POSIX)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // The network service should have access to the parent directories
+ // necessary for its usage.
+ if (sandbox_type_ == sandbox::mojom::Sandbox::kNetwork) {
+@@ -432,7 +432,7 @@ bool UtilityProcessHost::StartProcess() {
+ }
+ #endif // BUILDFLAG(IS_LINUX)
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Pass `kVideoCaptureUseGpuMemoryBuffer` flag to video capture service only
+ // when the video capture use GPU memory buffer enabled and NV12 GPU memory
+ // buffer supported.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_utility__process__host.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_utility__process__host.h
new file mode 100644
index 000000000000..aea00e23d172
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_utility__process__host.h
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/content/browser/utility_process_host.h.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/content/browser/utility_process_host.h
+@@ -39,7 +39,7 @@ namespace base {
+ class Thread;
+ } // namespace base
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ namespace viz {
+ class GpuClient;
+ } // namespace viz
+@@ -225,7 +225,7 @@ class CONTENT_EXPORT UtilityProcessHost
+ std::vector<RunServiceDeprecatedCallback> pending_run_service_callbacks_;
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ std::unique_ptr<viz::GpuClient, base::OnTaskRunnerDeleter> gpu_client_;
+ #endif
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_utility__process__host__receiver__bindings.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_utility__process__host__receiver__bindings.cc
index 314f93bed1bb..d35523053a30 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_utility__process__host__receiver__bindings.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_utility__process__host__receiver__bindings.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/content/browser/utility_process_host_receiver_bindings.cc.orig 2022-02-28 16:54:41 UTC
+--- src/3rdparty/chromium/content/browser/utility_process_host_receiver_bindings.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/content/browser/utility_process_host_receiver_bindings.cc
-@@ -10,7 +10,7 @@
+@@ -10,12 +10,12 @@
#include "content/public/browser/content_browser_client.h"
#include "content/public/common/content_client.h"
@@ -9,7 +9,13 @@
#include "components/services/font/public/mojom/font_service.mojom.h" // nogncheck
#include "content/browser/font_service.h" // nogncheck
#endif
-@@ -19,7 +19,7 @@ namespace content {
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "components/viz/host/gpu_client.h"
+ #include "content/public/browser/gpu_client.h"
+ #endif
+@@ -24,13 +24,13 @@ namespace content {
void UtilityProcessHost::BindHostReceiver(
mojo::GenericPendingReceiver receiver) {
@@ -18,3 +24,10 @@
if (auto font_receiver = receiver.As<font_service::mojom::FontService>()) {
ConnectToFontService(std::move(font_receiver));
return;
+ }
+ #endif
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ if (auto gpu_receiver = receiver.As<viz::mojom::Gpu>()) {
+ gpu_client_ =
+ content::CreateGpuClient(std::move(gpu_receiver), base::DoNothing());
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_utility__sandbox__delegate.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_utility__sandbox__delegate.cc
index 1b208bccaa05..7ce84ddd1fc5 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_utility__sandbox__delegate.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_utility__sandbox__delegate.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/content/browser/utility_sandbox_delegate.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/content/browser/utility_sandbox_delegate.cc.orig 2023-07-16 15:47:57 UTC
+++ src/3rdparty/chromium/content/browser/utility_sandbox_delegate.cc
-@@ -64,13 +64,13 @@ UtilitySandboxedProcessLauncherDelegate::
+@@ -63,13 +63,13 @@ UtilitySandboxedProcessLauncherDelegate::
#if BUILDFLAG(ENABLE_PPAPI)
sandbox_type_ == sandbox::mojom::Sandbox::kPpapi ||
#endif
@@ -17,7 +17,7 @@
sandbox_type_ == sandbox::mojom::Sandbox::kHardwareVideoEncoding ||
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
#if BUILDFLAG(IS_CHROMEOS_ASH)
-@@ -117,10 +117,10 @@ ZygoteCommunication* UtilitySandboxedProcessLauncherDe
+@@ -124,10 +124,10 @@ ZygoteCommunication* UtilitySandboxedProcessLauncherDe
// unsandboxed zygote and then apply their actual sandboxes in the forked
// process upon startup.
if (sandbox_type_ == sandbox::mojom::Sandbox::kNetwork ||
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_web__contents_web__contents__view__aura.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_web__contents_web__contents__view__aura.cc
index d24e69eab48d..7fa4e49ef2cf 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_web__contents_web__contents__view__aura.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_web__contents_web__contents__view__aura.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/content/browser/web_contents/web_contents_view_aura.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/content/browser/web_contents/web_contents_view_aura.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/content/browser/web_contents/web_contents_view_aura.cc
@@ -178,7 +178,7 @@ class WebDragSourceAura : public content::WebContentsO
raw_ptr<aura::Window> window_;
@@ -18,7 +18,7 @@
// We set the file contents before the URL because the URL also sets file
// contents (to a .URL shortcut). We want to prefer file content data over
// a shortcut so we add it first.
-@@ -1371,7 +1371,7 @@ void WebContentsViewAura::OnMouseEvent(ui::MouseEvent*
+@@ -1340,7 +1340,7 @@ void WebContentsViewAura::OnMouseEvent(ui::MouseEvent*
// Linux window managers like to handle raise-on-click themselves. If we
// raise-on-click manually, this may override user settings that prevent
// focus-stealing.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_webui_web__ui__main__frame__observer.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_webui_web__ui__main__frame__observer.cc
index ba73c6926ab2..d4e2edce9b70 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_webui_web__ui__main__frame__observer.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_webui_web__ui__main__frame__observer.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/content/browser/webui/web_ui_main_frame_observer.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/content/browser/webui/web_ui_main_frame_observer.cc.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/content/browser/webui/web_ui_main_frame_observer.cc
@@ -13,7 +13,7 @@
#include "content/public/browser/navigation_handle.h"
@@ -27,7 +27,7 @@
void WebUIMainFrameObserver::OnDidAddMessageToConsole(
RenderFrameHost* source_frame,
blink::mojom::ConsoleMessageLevel log_level,
-@@ -163,7 +163,7 @@ void WebUIMainFrameObserver::ReadyToCommitNavigation(
+@@ -167,7 +167,7 @@ void WebUIMainFrameObserver::ReadyToCommitNavigation(
// TODO(crbug.com/1129544) This is currently disabled due to Windows DLL
// thunking issues. Fix & re-enable.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_zygote__host_zygote__host__impl__linux.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_zygote__host_zygote__host__impl__linux.cc
index 0ad768406f15..dde0143d78ed 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_zygote__host_zygote__host__impl__linux.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_browser_zygote__host_zygote__host__impl__linux.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/content/browser/zygote_host/zygote_host_impl_linux.cc.orig 2023-11-20 16:08:07 UTC
+--- src/3rdparty/chromium/content/browser/zygote_host/zygote_host_impl_linux.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/content/browser/zygote_host/zygote_host_impl_linux.cc
-@@ -20,8 +20,10 @@
+@@ -20,13 +20,19 @@
#include "build/chromeos_buildflags.h"
#include "content/common/zygote/zygote_commands_linux.h"
#include "content/common/zygote/zygote_communication_linux.h"
@@ -11,7 +11,16 @@
#include "sandbox/linux/services/credentials.h"
#include "sandbox/linux/services/namespace_sandbox.h"
#include "sandbox/linux/suid/client/setuid_sandbox_host.h"
-@@ -39,6 +41,7 @@ namespace {
+ #include "sandbox/linux/suid/common/sandbox.h"
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#else
+ #include "sandbox/policy/linux/sandbox_linux.h"
++#endif
+ #include "sandbox/policy/switches.h"
+
+ #if BUILDFLAG(IS_CHROMEOS)
+@@ -39,6 +45,7 @@ namespace {
namespace {
@@ -19,7 +28,7 @@
// Receive a fixed message on fd and return the sender's PID.
// Returns true if the message received matches the expected message.
bool ReceiveFixedMessage(int fd,
-@@ -60,6 +63,7 @@ bool ReceiveFixedMessage(int fd,
+@@ -60,6 +67,7 @@ bool ReceiveFixedMessage(int fd,
return false;
return true;
}
@@ -27,7 +36,7 @@
} // namespace
-@@ -69,9 +73,13 @@ ZygoteHostImpl::ZygoteHostImpl()
+@@ -69,9 +77,13 @@ ZygoteHostImpl::ZygoteHostImpl()
}
ZygoteHostImpl::ZygoteHostImpl()
@@ -41,7 +50,7 @@
sandbox_binary_(),
zygote_pids_lock_(),
zygote_pids_() {}
-@@ -84,6 +92,7 @@ void ZygoteHostImpl::Init(const base::CommandLine& com
+@@ -84,6 +96,7 @@ void ZygoteHostImpl::Init(const base::CommandLine& com
}
void ZygoteHostImpl::Init(const base::CommandLine& command_line) {
@@ -49,7 +58,7 @@
if (command_line.HasSwitch(sandbox::policy::switches::kNoSandbox)) {
return;
}
-@@ -134,6 +143,7 @@ void ZygoteHostImpl::Init(const base::CommandLine& com
+@@ -134,6 +147,7 @@ void ZygoteHostImpl::Init(const base::CommandLine& com
"you can try using --"
<< sandbox::policy::switches::kNoSandbox << ".";
}
@@ -57,7 +66,7 @@
}
void ZygoteHostImpl::AddZygotePid(pid_t pid) {
-@@ -158,6 +168,7 @@ pid_t ZygoteHostImpl::LaunchZygote(
+@@ -158,6 +172,7 @@ pid_t ZygoteHostImpl::LaunchZygote(
base::CommandLine* cmd_line,
base::ScopedFD* control_fd,
base::FileHandleMappingVector additional_remapped_fds) {
@@ -65,7 +74,7 @@
int fds[2];
#if !defined(TOOLKIT_QT)
CHECK_EQ(0, socketpair(AF_UNIX, SOCK_SEQPACKET, 0, fds));
-@@ -232,9 +243,12 @@ pid_t ZygoteHostImpl::LaunchZygote(
+@@ -232,9 +247,12 @@ pid_t ZygoteHostImpl::LaunchZygote(
AddZygotePid(pid);
return pid;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_child_child__process.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_child_child__process.cc
index 39e9f408b7dc..5e6ce6e52391 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_child_child__process.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_child_child__process.cc
@@ -1,11 +1,11 @@
---- src/3rdparty/chromium/content/child/child_process.cc.orig 2022-09-24 10:57:32 UTC
+--- src/3rdparty/chromium/content/child/child_process.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/content/child/child_process.cc
-@@ -68,7 +68,7 @@ ChildProcess::ChildProcess(base::ThreadType io_thread_
- DCHECK(!g_lazy_child_process_tls.Pointer()->Get());
- g_lazy_child_process_tls.Pointer()->Set(this);
-
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+@@ -70,7 +70,7 @@ ChildProcess::ChildProcess(base::ThreadType io_thread_
+ io_thread_(std::make_unique<ChildIOThread>()) {
const base::CommandLine& command_line =
*base::CommandLine::ForCurrentProcess();
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
const bool is_embedded_in_browser_process =
+ !command_line.HasSwitch(switches::kProcessType);
+ if (IsMojoCoreSharedLibraryEnabled() && !is_embedded_in_browser_process) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_common_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_common_BUILD.gn
index 22c49257a7b5..2c3e5ed10695 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_common_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_common_BUILD.gn
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/content/common/BUILD.gn.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/content/common/BUILD.gn.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/content/common/BUILD.gn
-@@ -449,6 +449,9 @@ if (is_linux || is_chromeos) {
+@@ -452,6 +452,9 @@ if (is_linux || is_chromeos) {
public = [ "set_process_title_linux.h" ]
sources = [ "set_process_title_linux.cc" ]
deps = [ "//base" ]
@@ -10,7 +10,7 @@
}
}
-@@ -497,7 +500,7 @@ mojom("mojo_bindings") {
+@@ -498,7 +501,7 @@ mojom("mojo_bindings") {
if (enable_ipc_logging) {
enabled_features += [ "ipc_logging" ]
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_common_zygote_sandbox__support__linux.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_common_zygote_sandbox__support__linux.cc
new file mode 100644
index 000000000000..068d9a30097e
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_common_zygote_sandbox__support__linux.cc
@@ -0,0 +1,14 @@
+--- src/3rdparty/chromium/content/common/zygote/sandbox_support_linux.cc.orig 2023-12-12 22:08:45 UTC
++++ src/3rdparty/chromium/content/common/zygote/sandbox_support_linux.cc
+@@ -8,7 +8,11 @@
+ #include "base/posix/global_descriptors.h"
+ #include "base/posix/unix_domain_socket.h"
+ #include "content/public/common/content_descriptors.h"
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#else
+ #include "sandbox/policy/linux/sandbox_linux.h"
++#endif
+
+ namespace content {
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_gpu_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_gpu_BUILD.gn
new file mode 100644
index 000000000000..c28dadfad11f
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_gpu_BUILD.gn
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/content/gpu/BUILD.gn.orig 2023-12-12 22:08:45 UTC
++++ src/3rdparty/chromium/content/gpu/BUILD.gn
+@@ -107,6 +107,17 @@ target(link_target_type, "gpu_sources") {
+ }
+ }
+
++ if (is_bsd) {
++ sources -= [
++ "gpu_sandbox_hook_linux.cc",
++ "gpu_sandbox_hook_linux.h",
++ ]
++ sources += [
++ "gpu_sandbox_hook_bsd.cc",
++ "gpu_sandbox_hook_bsd.h",
++ ]
++ }
++
+ if (is_chromeos_ash) {
+ deps += [
+ "//components/services/font/public/cpp",
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_gpu_gpu__main.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_gpu_gpu__main.cc
index f50f4c5dfade..e0b2facb3e42 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_gpu_gpu__main.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_gpu_gpu__main.cc
@@ -1,15 +1,19 @@
---- src/3rdparty/chromium/content/gpu/gpu_main.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/content/gpu/gpu_main.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/content/gpu/gpu_main.cc
-@@ -89,7 +89,7 @@
- #include "sandbox/win/src/sandbox.h"
+@@ -96,6 +96,12 @@
+ #include "sandbox/policy/sandbox_type.h"
#endif
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- #include "content/gpu/gpu_sandbox_hook_linux.h"
- #include "sandbox/policy/linux/sandbox_linux.h"
- #include "sandbox/policy/sandbox_type.h"
-@@ -110,7 +110,7 @@ namespace content {
++#if BUILDFLAG(IS_BSD)
++#include "content/gpu/gpu_sandbox_hook_bsd.h"
++#include "sandbox/policy/sandbox.h"
++#include "sandbox/policy/sandbox_type.h"
++#endif
++
+ #if BUILDFLAG(IS_MAC)
+ #include "base/message_loop/message_pump_apple.h"
+ #include "components/metal_util/device_removal.h"
+@@ -112,7 +118,7 @@ namespace {
namespace {
@@ -18,7 +22,7 @@
bool StartSandboxLinux(gpu::GpuWatchdogThread*,
const gpu::GPUInfo*,
const gpu::GpuPreferences&);
-@@ -172,7 +172,7 @@ class ContentSandboxHelper : public gpu::GpuSandboxHel
+@@ -177,7 +183,7 @@ class ContentSandboxHelper : public gpu::GpuSandboxHel
bool EnsureSandboxInitialized(gpu::GpuWatchdogThread* watchdog_thread,
const gpu::GPUInfo* gpu_info,
const gpu::GpuPreferences& gpu_prefs) override {
@@ -27,7 +31,7 @@
return StartSandboxLinux(watchdog_thread, gpu_info, gpu_prefs);
#elif BUILDFLAG(IS_WIN)
return StartSandboxWindows(sandbox_info_);
-@@ -270,7 +270,7 @@ int GpuMain(MainFunctionParams parameters) {
+@@ -287,7 +293,7 @@ int GpuMain(MainFunctionParams parameters) {
std::make_unique<base::SingleThreadTaskExecutor>(
gpu_preferences.message_pump_type);
}
@@ -36,7 +40,7 @@
#error "Unsupported Linux platform."
#elif BUILDFLAG(IS_MAC)
// Cross-process CoreAnimation requires a CFRunLoop to function at all, and
-@@ -405,7 +405,7 @@ int GpuMain(MainFunctionParams parameters) {
+@@ -422,7 +428,7 @@ namespace {
namespace {
@@ -45,3 +49,12 @@
bool StartSandboxLinux(gpu::GpuWatchdogThread* watchdog_thread,
const gpu::GPUInfo* gpu_info,
const gpu::GpuPreferences& gpu_prefs) {
+@@ -462,7 +468,7 @@ bool StartSandboxLinux(gpu::GpuWatchdogThread* watchdo
+ sandbox_options.accelerated_video_encode_enabled =
+ !gpu_prefs.disable_accelerated_video_encode;
+
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Video decoding of many video streams can use thousands of FDs as well as
+ // Exo clients like Lacros.
+ // See https://crbug.com/1417237
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_gpu_gpu__sandbox__hook__bsd.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_gpu_gpu__sandbox__hook__bsd.cc
new file mode 100644
index 000000000000..0ec98f987d6d
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_gpu_gpu__sandbox__hook__bsd.cc
@@ -0,0 +1,72 @@
+--- src/3rdparty/chromium/content/gpu/gpu_sandbox_hook_bsd.cc.orig 2023-04-28 17:01:32 UTC
++++ src/3rdparty/chromium/content/gpu/gpu_sandbox_hook_bsd.cc
+@@ -0,0 +1,69 @@
++// Copyright 2023 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "content/gpu/gpu_sandbox_hook_bsd.h"
++
++#include <dlfcn.h>
++#include <errno.h>
++#include <sys/stat.h>
++
++#include <memory>
++#include <sstream>
++#include <utility>
++#include <vector>
++
++#include "base/base_paths.h"
++#include "base/files/file_enumerator.h"
++#include "base/files/file_path.h"
++#include "base/files/scoped_file.h"
++#include "base/functional/bind.h"
++#include "base/logging.h"
++#include "base/path_service.h"
++#include "base/strings/stringprintf.h"
++#include "build/build_config.h"
++#include "build/buildflag.h"
++#include "build/chromeos_buildflags.h"
++#include "content/common/set_process_title.h"
++#include "content/public/common/content_switches.h"
++#include "media/gpu/buildflags.h"
++
++namespace content {
++namespace {
++
++constexpr int dlopen_flag = RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE;
++
++void LoadVulkanLibraries() {
++ // Try to preload Vulkan libraries. Failure is not an error as not all may be
++ // present.
++ const char* kLibraries[] = {
++ "libvulkan.so",
++ "libvulkan_intel.so",
++ "libvulkan_intel_hasvk.so",
++ "libvulkan_radeon.so",
++ };
++ for (const auto* library : kLibraries) {
++ dlopen(library, dlopen_flag);
++ }
++}
++
++bool LoadLibrariesForGpu(
++ const sandbox::policy::SandboxSeccompBPF::Options& options) {
++ LoadVulkanLibraries();
++
++ return true;
++}
++
++} // namespace
++
++bool GpuProcessPreSandboxHook(sandbox::policy::SandboxLinux::Options options) {
++ if (!LoadLibrariesForGpu(options))
++ return false;
++
++ // TODO(tsepez): enable namspace sandbox here once crashes are understood.
++
++ errno = 0;
++ return true;
++}
++
++} // namespace content
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_gpu_gpu__sandbox__hook__bsd.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_gpu_gpu__sandbox__hook__bsd.h
new file mode 100644
index 000000000000..128ed7a19949
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_gpu_gpu__sandbox__hook__bsd.h
@@ -0,0 +1,19 @@
+--- src/3rdparty/chromium/content/gpu/gpu_sandbox_hook_bsd.h.orig 2023-04-28 17:01:32 UTC
++++ src/3rdparty/chromium/content/gpu/gpu_sandbox_hook_bsd.h
+@@ -0,0 +1,16 @@
++// Copyright 2023 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef CONTENT_GPU_GPU_SANDBOX_HOOK_BSD_H_
++#define CONTENT_GPU_GPU_SANDBOX_HOOK_BSD_H_
++
++#include "sandbox/policy/sandbox.h"
++
++namespace content {
++
++bool GpuProcessPreSandboxHook(sandbox::policy::SandboxLinux::Options options);
++
++} // namespace content
++
++#endif // CONTENT_GPU_GPU_SANDBOX_HOOK_BSD_H_
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_gpu_gpu__sandbox__hook__linux.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_gpu_gpu__sandbox__hook__linux.cc
deleted file mode 100644
index 6920209bd382..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_gpu_gpu__sandbox__hook__linux.cc
+++ /dev/null
@@ -1,70 +0,0 @@
---- src/3rdparty/chromium/content/gpu/gpu_sandbox_hook_linux.cc.orig 2023-04-05 11:05:06 UTC
-+++ src/3rdparty/chromium/content/gpu/gpu_sandbox_hook_linux.cc
-@@ -126,6 +126,7 @@ void AddStandardChromeOsPermissions(
- }
- }
-
-+#if !defined(OS_BSD)
- void AddV4L2GpuPermissions(
- std::vector<BrokerFilePermission>* permissions,
- const sandbox::policy::SandboxSeccompBPF::Options& options) {
-@@ -484,8 +485,10 @@ std::vector<BrokerFilePermission> FilePermissionsForGp
- AddStandardGpuPermissions(&permissions);
- return permissions;
- }
-+#endif
-
- void LoadArmGpuLibraries() {
-+#if !defined(OS_BSD)
- // Preload the Mali library.
- if (UseChromecastSandboxAllowlist()) {
- for (const char* path : kAllowedChromecastPaths) {
-@@ -530,6 +533,7 @@ void LoadArmGpuLibraries() {
- dlopen(driver_paths[i], dlopen_flag);
- }
- }
-+#endif
- }
-
- bool LoadAmdGpuLibraries() {
-@@ -597,12 +601,14 @@ void LoadV4L2Libraries(
- }
-
- void LoadChromecastV4L2Libraries() {
-+#if !defined(OS_BSD)
- for (const char* path : kAllowedChromecastPaths) {
- const std::string library_path(std::string(path) +
- std::string("libvpcodec.so"));
- if (dlopen(library_path.c_str(), dlopen_flag))
- break;
- }
-+#endif
- }
-
- bool LoadLibrariesForGpu(
-@@ -629,6 +635,7 @@ bool LoadLibrariesForGpu(
- return true;
- }
-
-+#if !defined(OS_BSD)
- sandbox::syscall_broker::BrokerCommandSet CommandSetForGPU(
- const sandbox::policy::SandboxLinux::Options& options) {
- sandbox::syscall_broker::BrokerCommandSet command_set;
-@@ -652,13 +659,17 @@ bool BrokerProcessPreSandboxHook(
- SetProcessTitleFromCommandLine(nullptr);
- return true;
- }
-+#endif
-
- } // namespace
-
- bool GpuProcessPreSandboxHook(sandbox::policy::SandboxLinux::Options options) {
-+ NOTIMPLEMENTED();
-+#if !defined(OS_BSD)
- sandbox::policy::SandboxLinux::GetInstance()->StartBrokerProcess(
- CommandSetForGPU(options), FilePermissionsForGpu(options),
- base::BindOnce(BrokerProcessPreSandboxHook), options);
-+#endif
-
- if (!LoadLibrariesForGpu(options))
- return false;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_ppapi__plugin_ppapi__blink__platform__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_ppapi__plugin_ppapi__blink__platform__impl.cc
index d5e6a99f12c2..f863f26662e2 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_ppapi__plugin_ppapi__blink__platform__impl.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_ppapi__plugin_ppapi__blink__platform__impl.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/content/ppapi_plugin/ppapi_blink_platform_impl.cc.orig 2022-02-28 16:54:41 UTC
+--- src/3rdparty/chromium/content/ppapi_plugin/ppapi_blink_platform_impl.cc.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/content/ppapi_plugin/ppapi_blink_platform_impl.cc
@@ -20,7 +20,7 @@
@@ -18,7 +18,7 @@
mojo::PendingRemote<font_service::mojom::FontService> font_service;
ChildThread::Get()->BindHostReceiver(
font_service.InitWithNewPipeAndPassReceiver());
-@@ -53,7 +53,7 @@ PpapiBlinkPlatformImpl::~PpapiBlinkPlatformImpl() {
+@@ -54,7 +54,7 @@ PpapiBlinkPlatformImpl::~PpapiBlinkPlatformImpl() {
void PpapiBlinkPlatformImpl::Shutdown() {}
blink::WebSandboxSupport* PpapiBlinkPlatformImpl::GetSandboxSupport() {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_ppapi__plugin_ppapi__blink__platform__impl.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_ppapi__plugin_ppapi__blink__platform__impl.h
index de15ece47ec6..f5eb17471071 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_ppapi__plugin_ppapi__blink__platform__impl.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_ppapi__plugin_ppapi__blink__platform__impl.h
@@ -1,15 +1,6 @@
---- src/3rdparty/chromium/content/ppapi_plugin/ppapi_blink_platform_impl.h.orig 2022-07-22 17:30:31 UTC
+--- src/3rdparty/chromium/content/ppapi_plugin/ppapi_blink_platform_impl.h.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/content/ppapi_plugin/ppapi_blink_platform_impl.h
-@@ -12,7 +12,7 @@
- #include "build/build_config.h"
- #include "content/child/blink_platform_impl.h"
-
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- #include "components/services/font/public/cpp/font_loader.h"
- #include "third_party/skia/include/core/SkRefCnt.h"
- #endif
-@@ -38,11 +38,11 @@ class PpapiBlinkPlatformImpl : public BlinkPlatformImp
+@@ -33,7 +33,7 @@ class PpapiBlinkPlatformImpl : public BlinkPlatformImp
blink::WebString DefaultLocale() override;
private:
@@ -17,9 +8,4 @@
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
std::unique_ptr<blink::WebSandboxSupport> sandbox_support_;
#endif
-
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- sk_sp<font_service::FontLoader> font_loader_;
- #endif
};
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_ppapi__plugin_ppapi__plugin__main.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_ppapi__plugin_ppapi__plugin__main.cc
index 58b3d3f9e158..e70ef9f3685c 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_ppapi__plugin_ppapi__plugin__main.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_ppapi__plugin_ppapi__plugin__main.cc
@@ -1,18 +1,18 @@
---- src/3rdparty/chromium/content/ppapi_plugin/ppapi_plugin_main.cc.orig 2023-02-08 09:03:45 UTC
+--- src/3rdparty/chromium/content/ppapi_plugin/ppapi_plugin_main.cc.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/content/ppapi_plugin/ppapi_plugin_main.cc
@@ -54,6 +54,11 @@
#include "gin/v8_initializer.h"
#endif
-+#if BUILDFLAG(IS_OPENBSD)
-+#include "sandbox/policy/openbsd/sandbox_openbsd.h"
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
+#include "sandbox/policy/sandbox_type.h"
+#endif
+
#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID)
#include <stdlib.h>
#endif
-@@ -148,7 +153,7 @@ int PpapiPluginMain(MainFunctionParams parameters) {
+@@ -150,7 +155,7 @@ int PpapiPluginMain(MainFunctionParams parameters) {
gin::V8Initializer::LoadV8Snapshot();
#endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_public_browser_render__process__host.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_public_browser_render__process__host.h
deleted file mode 100644
index cf9b4383ff71..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_public_browser_render__process__host.h
+++ /dev/null
@@ -1,20 +0,0 @@
---- src/3rdparty/chromium/content/public/browser/render_process_host.h.orig 2023-08-16 19:50:41 UTC
-+++ src/3rdparty/chromium/content/public/browser/render_process_host.h
-@@ -53,7 +53,7 @@
- #include "content/public/browser/android/child_process_importance.h"
- #endif
-
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- #include "media/mojo/mojom/stable/stable_video_decoder.mojom-forward.h"
- #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-
-@@ -643,7 +643,7 @@ class CONTENT_EXPORT RenderProcessHost : public IPC::S
- const blink::StorageKey& storage_key,
- mojo::PendingReceiver<blink::mojom::WebSocketConnector> receiver) = 0;
-
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- virtual void CreateStableVideoDecoder(
- mojo::PendingReceiver<media::stable::mojom::StableVideoDecoder>
- receiver) = 0;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_public_common_common__param__traits__macros.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_public_common_common__param__traits__macros.h
deleted file mode 100644
index 37d5f65f805d..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_public_common_common__param__traits__macros.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/3rdparty/chromium/content/public/common/common_param_traits_macros.h.orig 2023-02-08 09:03:45 UTC
-+++ src/3rdparty/chromium/content/public/common/common_param_traits_macros.h
-@@ -113,7 +113,7 @@ IPC_STRUCT_TRAITS_BEGIN(blink::RendererPreferences)
- IPC_STRUCT_TRAITS_MEMBER(accept_languages)
- IPC_STRUCT_TRAITS_MEMBER(plugin_fullscreen_allowed)
- IPC_STRUCT_TRAITS_MEMBER(caret_browsing_enabled)
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- IPC_STRUCT_TRAITS_MEMBER(system_font_family_name)
- #endif
- #if BUILDFLAG(IS_WIN)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_public_common_content__features.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_public_common_content__features.cc
index d592aeeaf729..3084de3ef633 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_public_common_content__features.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_public_common_content__features.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/content/public/common/content_features.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/content/public/common/content_features.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/content/public/common/content_features.cc
-@@ -39,7 +39,7 @@ CONSTINIT const base::Feature kAudioServiceOutOfProces
+@@ -53,7 +53,7 @@ CONSTINIT const base::Feature kAudioServiceOutOfProces
"AudioServiceOutOfProcess",
// TODO(crbug.com/1052397): Remove !IS_CHROMEOS_LACROS once lacros starts being
// built with OS_CHROMEOS instead of OS_LINUX.
@@ -9,7 +9,7 @@
(BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS))
base::FEATURE_ENABLED_BY_DEFAULT
#else
-@@ -51,7 +51,7 @@ CONSTINIT const base::Feature kAudioServiceSandbox(
+@@ -65,7 +65,7 @@ CONSTINIT const base::Feature kAudioServiceSandbox(
// kAudioServiceOutOfProcess feature is enabled.
CONSTINIT const base::Feature kAudioServiceSandbox(
"AudioServiceSandbox",
@@ -18,7 +18,7 @@
base::FEATURE_ENABLED_BY_DEFAULT
#else
base::FEATURE_DISABLED_BY_DEFAULT
-@@ -547,7 +547,7 @@ BASE_FEATURE(kGreaseUACH, "GreaseUACH", base::FEATURE_
+@@ -553,7 +553,7 @@ BASE_FEATURE(kGreaseUACH, "GreaseUACH", base::FEATURE_
// (activated by kUserAgentClientHint)
BASE_FEATURE(kGreaseUACH, "GreaseUACH", base::FEATURE_ENABLED_BY_DEFAULT);
@@ -27,7 +27,7 @@
// Supports proxying thread type changes of renderer processes to browser
// process and having browser process handle adjusting thread properties (nice
// value, c-group, latency sensitivity...) for renderers which have sandbox
-@@ -1367,7 +1367,7 @@ CONSTINIT const base::Feature kWebAssemblyTrapHandler(
+@@ -1463,7 +1463,7 @@ CONSTINIT const base::Feature kWebAssemblyTrapHandler(
CONSTINIT const base::Feature kWebAssemblyTrapHandler(
"WebAssemblyTrapHandler",
#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || \
@@ -36,7 +36,7 @@
defined(ARCH_CPU_X86_64)) || \
(BUILDFLAG(IS_MAC) && defined(ARCH_CPU_ARM64))
base::FEATURE_ENABLED_BY_DEFAULT
-@@ -1425,7 +1425,11 @@ BASE_FEATURE(kWebUICodeCache,
+@@ -1515,7 +1515,11 @@ BASE_FEATURE(kWebUICodeCache,
// Controls whether the WebUSB API is enabled:
// https://wicg.github.io/webusb
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_public_common_content__features.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_public_common_content__features.h
index de357c63ced2..d7ee045c1029 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_public_common_content__features.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_public_common_content__features.h
@@ -1,8 +1,8 @@
---- src/3rdparty/chromium/content/public/common/content_features.h.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/content/public/common/content_features.h.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/content/public/common/content_features.h
-@@ -115,7 +115,7 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kFractionalScrollO
- CONTENT_EXPORT BASE_DECLARE_FEATURE(kGetDisplayMediaSet);
- CONTENT_EXPORT BASE_DECLARE_FEATURE(kGetDisplayMediaSetAutoSelectAllScreens);
+@@ -120,7 +120,7 @@ CONTENT_EXPORT extern const base::FeatureParam<int>
+ kFledgeLimitNumAuctionsParam;
+ CONTENT_EXPORT BASE_DECLARE_FEATURE(kFractionalScrollOffsets);
CONTENT_EXPORT BASE_DECLARE_FEATURE(kGreaseUACH);
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_public_common_content__switches.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_public_common_content__switches.cc
index 535f44c60e96..99948ec551ee 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_public_common_content__switches.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_public_common_content__switches.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/content/public/common/content_switches.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/content/public/common/content_switches.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/content/public/common/content_switches.cc
-@@ -368,6 +368,8 @@ const char kEnableLogging[] = "enable-
+@@ -367,6 +367,8 @@ const char kEnableLogging[] = "enable-
// builds.
const char kEnableLogging[] = "enable-logging";
@@ -9,7 +9,7 @@
// Enables the type, downlinkMax attributes of the NetInfo API. Also, enables
// triggering of change attribute of the NetInfo API when there is a change in
// the connection type.
-@@ -997,7 +999,7 @@ const char kEnableAutomation[] = "enable-automation";
+@@ -994,7 +996,7 @@ const char kEnableAutomation[] = "enable-automation";
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_public_common_content__switches.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_public_common_content__switches.h
index ba30c2a1a589..ce4c47018ec3 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_public_common_content__switches.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_public_common_content__switches.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/content/public/common/content_switches.h.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/content/public/common/content_switches.h.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/content/public/common/content_switches.h
-@@ -117,6 +117,7 @@ CONTENT_EXPORT extern const char kEnableLogging[];
+@@ -116,6 +116,7 @@ CONTENT_EXPORT extern const char kEnableLogging[];
CONTENT_EXPORT extern const char kEnableIsolatedWebAppsInRenderer[];
CONTENT_EXPORT extern const char kEnableLCDText[];
CONTENT_EXPORT extern const char kEnableLogging[];
@@ -8,12 +8,12 @@
CONTENT_EXPORT extern const char kEnableNetworkInformationDownlinkMax[];
CONTENT_EXPORT extern const char kEnableCanvas2DLayers[];
CONTENT_EXPORT extern const char kEnablePluginPlaceholderTesting[];
-@@ -269,7 +270,7 @@ CONTENT_EXPORT extern const char kRendererWaitForJavaD
+@@ -267,7 +268,7 @@ CONTENT_EXPORT extern const char kRendererWaitForJavaD
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
CONTENT_EXPORT extern const char kEnableSpeechDispatcher[];
+ CONTENT_EXPORT extern const char kLLVMProfileFile[];
#endif
-
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_renderer_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_renderer_BUILD.gn
index 4410e83b82ca..bf4e7b20e0a2 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_renderer_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_renderer_BUILD.gn
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/content/renderer/BUILD.gn.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/content/renderer/BUILD.gn.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/content/renderer/BUILD.gn
-@@ -201,6 +201,13 @@ target(link_target_type, "renderer") {
+@@ -202,6 +202,13 @@ target(link_target_type, "renderer") {
]
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_renderer_render__process__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_renderer_render__process__impl.cc
index 14d4ad1a1c8d..af37d4bcacc1 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_renderer_render__process__impl.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_renderer_render__process__impl.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/content/renderer/render_process_impl.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/content/renderer/render_process_impl.cc.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/content/renderer/render_process_impl.cc
-@@ -46,7 +46,7 @@
+@@ -45,7 +45,7 @@
#if BUILDFLAG(IS_WIN)
#include "base/win/win_util.h"
#endif
@@ -9,9 +9,9 @@
#include "v8/include/v8-wasm-trap-handler-posix.h"
#endif
-@@ -223,7 +223,7 @@ RenderProcessImpl::RenderProcessImpl()
- SetV8FlagIfNotFeature(features::kWebAssemblyDynamicTiering,
- "--no-wasm-dynamic-tiering");
+@@ -211,7 +211,7 @@ RenderProcessImpl::RenderProcessImpl()
+ v8::V8::SetFlagsFromString(kSABPerContextFlag, sizeof(kSABPerContextFlag));
+ }
-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(ARCH_CPU_X86_64)
+#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(ARCH_CPU_X86_64)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_renderer_render__thread__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_renderer_render__thread__impl.cc
index ffa541d18f0a..26b8b530e9d3 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_renderer_render__thread__impl.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_renderer_render__thread__impl.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/content/renderer/render_thread_impl.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/content/renderer/render_thread_impl.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/content/renderer/render_thread_impl.cc
-@@ -201,6 +201,8 @@
+@@ -204,6 +204,8 @@
#if BUILDFLAG(IS_APPLE)
#include <malloc/malloc.h>
@@ -9,8 +9,8 @@
#else
#include <malloc.h>
#endif
-@@ -1069,7 +1071,7 @@ media::GpuVideoAcceleratorFactories* RenderThreadImpl:
- kGpuStreamPriorityMedia);
+@@ -1054,7 +1056,7 @@ media::GpuVideoAcceleratorFactories* RenderThreadImpl:
+ kGpuStreamIdMedia, kGpuStreamPriorityMedia);
const bool enable_video_decode_accelerator =
-#if BUILDFLAG(IS_LINUX)
@@ -18,7 +18,7 @@
base::FeatureList::IsEnabled(media::kVaapiVideoDecodeLinux) &&
#endif // BUILDFLAG(IS_LINUX)
!cmd_line->HasSwitch(switches::kDisableAcceleratedVideoDecode) &&
-@@ -1078,7 +1080,7 @@ media::GpuVideoAcceleratorFactories* RenderThreadImpl:
+@@ -1063,7 +1065,7 @@ media::GpuVideoAcceleratorFactories* RenderThreadImpl:
gpu::kGpuFeatureStatusEnabled);
const bool enable_video_encode_accelerator =
@@ -27,7 +27,7 @@
base::FeatureList::IsEnabled(media::kVaapiVideoEncodeLinux) &&
#else
!cmd_line->HasSwitch(switches::kDisableAcceleratedVideoEncode) &&
-@@ -1863,7 +1865,7 @@ std::unique_ptr<CodecFactory> RenderThreadImpl::Create
+@@ -1835,7 +1837,7 @@ std::unique_ptr<CodecFactory> RenderThreadImpl::Create
bool enable_video_encode_accelerator) {
mojo::PendingRemote<media::mojom::VideoEncodeAcceleratorProvider>
vea_provider;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_renderer_renderer__blink__platform__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_renderer_renderer__blink__platform__impl.cc
index 3bfa097f2559..060686c4c243 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_renderer_renderer__blink__platform__impl.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_renderer_renderer__blink__platform__impl.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/content/renderer/renderer_blink_platform_impl.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/content/renderer/renderer_blink_platform_impl.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/content/renderer/renderer_blink_platform_impl.cc
-@@ -111,7 +111,7 @@
+@@ -114,7 +114,7 @@
#if BUILDFLAG(IS_MAC)
#include "content/child/child_process_sandbox_support_impl_mac.h"
@@ -9,8 +9,15 @@
#include "content/child/child_process_sandbox_support_impl_linux.h"
#endif
-@@ -177,7 +177,7 @@ RendererBlinkPlatformImpl::RendererBlinkPlatformImpl(
+@@ -182,13 +182,13 @@ RendererBlinkPlatformImpl::RendererBlinkPlatformImpl(
+ sudden_termination_disables_(0),
+ is_locked_to_site_(false),
main_thread_scheduler_(main_thread_scheduler) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ sk_sp<font_service::FontLoader> font_loader;
+ #endif
+
// RenderThread may not exist in some tests.
if (RenderThreadImpl::current()) {
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
@@ -18,7 +25,7 @@
mojo::PendingRemote<font_service::mojom::FontService> font_service;
RenderThreadImpl::current()->BindHostReceiver(
font_service.InitWithNewPipeAndPassReceiver());
-@@ -187,7 +187,7 @@ RendererBlinkPlatformImpl::RendererBlinkPlatformImpl(
+@@ -197,7 +197,7 @@ RendererBlinkPlatformImpl::RendererBlinkPlatformImpl(
#endif
}
@@ -27,7 +34,7 @@
if (sandboxEnabled()) {
#if BUILDFLAG(IS_MAC)
sandbox_support_ = std::make_unique<WebSandboxSupportMac>();
-@@ -245,7 +245,7 @@ void RendererBlinkPlatformImpl::SetThreadType(base::Pl
+@@ -255,7 +255,7 @@ void RendererBlinkPlatformImpl::SetThreadType(base::Pl
#endif
blink::WebSandboxSupport* RendererBlinkPlatformImpl::GetSandboxSupport() {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_renderer_renderer__blink__platform__impl.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_renderer_renderer__blink__platform__impl.h
index 2789c4d5a798..dcb3e128fd14 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_renderer_renderer__blink__platform__impl.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_renderer_renderer__blink__platform__impl.h
@@ -1,15 +1,6 @@
---- src/3rdparty/chromium/content/renderer/renderer_blink_platform_impl.h.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/content/renderer/renderer_blink_platform_impl.h.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/content/renderer/renderer_blink_platform_impl.h
-@@ -32,7 +32,7 @@
- #include "third_party/blink/public/common/user_agent/user_agent_metadata.h"
- #include "third_party/blink/public/mojom/cache_storage/cache_storage.mojom.h"
-
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- #include "components/services/font/public/cpp/font_loader.h" // nogncheck
- #include "third_party/skia/include/core/SkRefCnt.h" // nogncheck
- #endif
-@@ -245,7 +245,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : publi
+@@ -238,7 +238,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : publi
void Collect3DContextInformation(blink::Platform::GraphicsInfo* gl_info,
const gpu::GPUInfo& gpu_info) const;
@@ -18,12 +9,3 @@
std::unique_ptr<blink::WebSandboxSupport> sandbox_support_;
#endif
-@@ -265,7 +265,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : publi
- mutable base::WaitableEvent io_thread_id_ready_event_;
- base::PlatformThreadId io_thread_id_ = base::kInvalidThreadId;
-
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- sk_sp<font_service::FontLoader> font_loader_;
- #endif
-
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_renderer_renderer__main__platform__delegate__linux.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_renderer_renderer__main__platform__delegate__linux.cc
index 1ebfc9a23937..b85856e382f0 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_renderer_renderer__main__platform__delegate__linux.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_renderer_renderer__main__platform__delegate__linux.cc
@@ -1,10 +1,10 @@
---- src/3rdparty/chromium/content/renderer/renderer_main_platform_delegate_linux.cc.orig 2022-02-28 16:54:41 UTC
+--- src/3rdparty/chromium/content/renderer/renderer_main_platform_delegate_linux.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/content/renderer/renderer_main_platform_delegate_linux.cc
@@ -44,6 +44,7 @@ bool RendererMainPlatformDelegate::EnableSandbox() {
// any renderer has been started.
// Here, we test that the status of SeccompBpf in the renderer is consistent
// with what SandboxLinux::GetStatus() said we would do.
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
auto* linux_sandbox = sandbox::policy::SandboxLinux::GetInstance();
if (linux_sandbox->GetStatus() & sandbox::policy::SandboxLinux::kSeccompBPF) {
CHECK(linux_sandbox->seccomp_bpf_started());
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_shell_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_shell_BUILD.gn
index a7caeb229c6f..f359dfb9b3cf 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_shell_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_shell_BUILD.gn
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/content/shell/BUILD.gn.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/content/shell/BUILD.gn.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/content/shell/BUILD.gn
-@@ -968,7 +968,7 @@ group("content_shell_crash_test") {
+@@ -1029,7 +1029,7 @@ group("content_shell_crash_test") {
if (is_win) {
data_deps += [ "//build/win:copy_cdb_to_output" ]
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_shell_app_shell__main__delegate.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_shell_app_shell__main__delegate.cc
index 228b6a2a1272..e486515dc0f5 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_shell_app_shell__main__delegate.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_shell_app_shell__main__delegate.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/content/shell/app/shell_main_delegate.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/content/shell/app/shell_main_delegate.cc.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/content/shell/app/shell_main_delegate.cc
-@@ -221,7 +221,7 @@ void ShellMainDelegate::PreSandboxStartup() {
+@@ -223,7 +223,7 @@ void ShellMainDelegate::PreSandboxStartup() {
// Reporting for sub-processes will be initialized in ZygoteForked.
if (process_type != switches::kZygoteProcess) {
crash_reporter::InitializeCrashpad(process_type.empty(), process_type);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_test_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_test_BUILD.gn
index d395863a26de..3ab8bdf4ba9f 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_test_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_test_BUILD.gn
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/content/test/BUILD.gn.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/content/test/BUILD.gn.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/content/test/BUILD.gn
-@@ -2129,7 +2129,7 @@ static_library("run_all_unittests") {
+@@ -2235,7 +2235,7 @@ static_library("run_all_unittests") {
":test_support",
"//base/test:test_support",
]
@@ -9,7 +9,7 @@
deps += [ "//content/common:set_process_title_linux" ]
}
}
-@@ -3162,7 +3162,7 @@ test("content_unittests") {
+@@ -3304,7 +3304,7 @@ test("content_unittests") {
deps += [ "//third_party/boringssl" ]
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_utility_services.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_utility_services.cc
index 3466a1eababe..b9c83c39cd00 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_utility_services.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_utility_services.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/content/utility/services.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/content/utility/services.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/content/utility/services.cc
@@ -64,7 +64,7 @@
extern sandbox::TargetServices* g_utility_target_services;
@@ -18,7 +18,16 @@
(BUILDFLAG(USE_VAAPI) || BUILDFLAG(USE_V4L2_CODEC))
#include "media/mojo/services/stable_video_decoder_factory_process_service.h" // nogncheck
#endif // (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)) &&
-@@ -215,7 +215,7 @@ auto RunAudio(mojo::PendingReceiver<audio::mojom::Audi
+@@ -109,7 +109,7 @@ extern sandbox::TargetServices* g_utility_target_servi
+ #include "ui/accessibility/accessibility_features.h"
+ #endif // BUILDFLAG(ENABLE_ACCESSIBILITY_SERVICE)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "media/capture/capture_switches.h"
+ #include "services/viz/public/cpp/gpu/gpu.h"
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
+@@ -226,7 +226,7 @@ auto RunAudio(mojo::PendingReceiver<audio::mojom::Audi
<< "task_policy_set TASK_QOS_POLICY";
#endif
@@ -27,7 +36,16 @@
auto* command_line = base::CommandLine::ForCurrentProcess();
if (sandbox::policy::SandboxTypeFromCommandLine(*command_line) ==
sandbox::mojom::Sandbox::kNoSandbox) {
-@@ -319,7 +319,7 @@ auto RunOOPArcVideoAcceleratorFactoryService(
+@@ -308,7 +308,7 @@ auto RunVideoCapture(
+ mojo::PendingReceiver<video_capture::mojom::VideoCaptureService> receiver) {
+ auto service = std::make_unique<UtilityThreadVideoCaptureServiceImpl>(
+ std::move(receiver), base::SingleThreadTaskRunner::GetCurrentDefault());
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ if (switches::IsVideoCaptureUseGpuMemoryBufferEnabled()) {
+ mojo::PendingRemote<viz::mojom::Gpu> remote_gpu;
+ content::UtilityThread::Get()->BindHostReceiver(
+@@ -340,7 +340,7 @@ auto RunOOPArcVideoAcceleratorFactoryService(
#endif // BUILDFLAG(IS_CHROMEOS_ASH) && (BUILDFLAG(USE_VAAPI) ||
// BUILDFLAG(USE_V4L2_CODEC))
@@ -36,7 +54,7 @@
(BUILDFLAG(USE_VAAPI) || BUILDFLAG(USE_V4L2_CODEC))
auto RunStableVideoDecoderFactoryProcessService(
mojo::PendingReceiver<
-@@ -330,7 +330,7 @@ auto RunStableVideoDecoderFactoryProcessService(
+@@ -351,7 +351,7 @@ auto RunStableVideoDecoderFactoryProcessService(
#endif // (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)) &&
// (BUILDFLAG(USE_VAAPI) || BUILDFLAG(USE_V4L2_CODEC))
@@ -45,7 +63,7 @@
auto RunVideoEncodeAcceleratorProviderFactory(
mojo::PendingReceiver<media::mojom::VideoEncodeAcceleratorProviderFactory>
receiver) {
-@@ -388,13 +388,13 @@ void RegisterMainThreadServices(mojo::ServiceFactory&
+@@ -415,13 +415,13 @@ void RegisterMainThreadServices(mojo::ServiceFactory&
#endif // BUILDFLAG(IS_CHROMEOS_ASH) && (BUILDFLAG(USE_VAAPI) ||
// BUILDFLAG(USE_V4L2_CODEC))
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_utility_speech_speech__recognition__sandbox__hook__linux.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_utility_speech_speech__recognition__sandbox__hook__linux.h
index 47ea1e2db86d..2318cee151ab 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_utility_speech_speech__recognition__sandbox__hook__linux.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_utility_speech_speech__recognition__sandbox__hook__linux.h
@@ -1,11 +1,13 @@
---- src/3rdparty/chromium/content/utility/speech/speech_recognition_sandbox_hook_linux.h.orig 2022-02-07 13:39:41 UTC
+--- src/3rdparty/chromium/content/utility/speech/speech_recognition_sandbox_hook_linux.h.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/content/utility/speech/speech_recognition_sandbox_hook_linux.h
-@@ -5,7 +5,11 @@
+@@ -5,7 +5,13 @@
#ifndef CONTENT_UTILITY_SPEECH_SPEECH_RECOGNITION_SANDBOX_HOOK_LINUX_H_
#define CONTENT_UTILITY_SPEECH_SPEECH_RECOGNITION_SANDBOX_HOOK_LINUX_H_
-+#if defined(OS_BSD)
-+#include "sandbox/policy/openbsd/sandbox_openbsd.h"
++#include "build/build_config.h"
++
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
+#else
#include "sandbox/policy/linux/sandbox_linux.h"
+#endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_utility_utility__blink__platform__with__sandbox__support__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_utility_utility__blink__platform__with__sandbox__support__impl.cc
index 6d1f254912d1..74a53a4cf400 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_utility_utility__blink__platform__with__sandbox__support__impl.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_utility_utility__blink__platform__with__sandbox__support__impl.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/content/utility/utility_blink_platform_with_sandbox_support_impl.cc.orig 2022-02-28 16:54:41 UTC
+--- src/3rdparty/chromium/content/utility/utility_blink_platform_with_sandbox_support_impl.cc.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/content/utility/utility_blink_platform_with_sandbox_support_impl.cc
@@ -9,7 +9,7 @@
@@ -18,7 +18,7 @@
mojo::PendingRemote<font_service::mojom::FontService> font_service;
UtilityThread::Get()->BindHostReceiver(
font_service.InitWithNewPipeAndPassReceiver());
-@@ -34,7 +34,7 @@ UtilityBlinkPlatformWithSandboxSupportImpl::
+@@ -35,7 +35,7 @@ UtilityBlinkPlatformWithSandboxSupportImpl::
blink::WebSandboxSupport*
UtilityBlinkPlatformWithSandboxSupportImpl::GetSandboxSupport() {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_utility_utility__blink__platform__with__sandbox__support__impl.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_utility_utility__blink__platform__with__sandbox__support__impl.h
index 2f75ecf9db8d..6d6a2dd0654e 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_utility_utility__blink__platform__with__sandbox__support__impl.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_utility_utility__blink__platform__with__sandbox__support__impl.h
@@ -1,15 +1,6 @@
---- src/3rdparty/chromium/content/utility/utility_blink_platform_with_sandbox_support_impl.h.orig 2022-02-28 16:54:41 UTC
+--- src/3rdparty/chromium/content/utility/utility_blink_platform_with_sandbox_support_impl.h.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/content/utility/utility_blink_platform_with_sandbox_support_impl.h
-@@ -10,7 +10,7 @@
- #include "build/build_config.h"
- #include "third_party/blink/public/platform/platform.h"
-
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- #include "components/services/font/public/cpp/font_loader.h" // nogncheck
- #include "third_party/skia/include/core/SkRefCnt.h" // nogncheck
- #endif
-@@ -38,10 +38,10 @@ class UtilityBlinkPlatformWithSandboxSupportImpl : pub
+@@ -33,7 +33,7 @@ class UtilityBlinkPlatformWithSandboxSupportImpl : pub
blink::WebSandboxSupport* GetSandboxSupport() override;
private:
@@ -17,8 +8,4 @@
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
std::unique_ptr<blink::WebSandboxSupport> sandbox_support_;
#endif
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- sk_sp<font_service::FontLoader> font_loader_;
- #endif
};
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_utility_utility__main.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_utility_utility__main.cc
index ec6534574ccd..686fe2e4cc1b 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_utility_utility__main.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_utility_utility__main.cc
@@ -1,23 +1,26 @@
---- src/3rdparty/chromium/content/utility/utility_main.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/content/utility/utility_main.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/content/utility/utility_main.cc
-@@ -31,7 +31,7 @@
+@@ -34,7 +34,7 @@
#include "third_party/icu/source/common/unicode/unistr.h"
#include "third_party/icu/source/i18n/unicode/timezone.h"
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "base/file_descriptor_store.h"
+ #include "base/files/file_util.h"
+ #include "base/pickle.h"
+@@ -42,7 +42,9 @@
#include "content/utility/speech/speech_recognition_sandbox_hook_linux.h"
#include "gpu/config/gpu_info_collector.h"
#include "media/gpu/sandbox/hardware_video_encoding_sandbox_hook_linux.h"
-@@ -42,15 +42,21 @@
- #if BUILDFLAG(ENABLE_PRINTING)
- #include "printing/sandbox/print_backend_sandbox_hook_linux.h"
- #endif
+#if !BUILDFLAG(IS_BSD)
#include "sandbox/policy/linux/sandbox_linux.h"
+#endif
#include "services/audio/audio_sandbox_hook_linux.h"
#include "services/network/network_sandbox_hook_linux.h"
+ // gn check is not smart enough to realize that this include only applies to
+@@ -54,10 +56,14 @@
+ #endif
#endif
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
@@ -26,13 +29,13 @@
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_BSD)
-+#include "sandbox/policy/openbsd/sandbox_openbsd.h"
++#include "sandbox/policy/sandbox.h"
+#endif
+
#if BUILDFLAG(IS_CHROMEOS_ASH)
#include "chromeos/ash/components/assistant/buildflags.h"
#include "chromeos/ash/services/ime/ime_sandbox_hook.h"
-@@ -62,7 +68,7 @@
+@@ -69,7 +75,7 @@
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
#if (BUILDFLAG(ENABLE_SCREEN_AI_SERVICE) && \
@@ -41,12 +44,17 @@
#include "components/services/screen_ai/sandbox/screen_ai_sandbox_hook_linux.h" // nogncheck
#endif
-@@ -83,10 +89,10 @@ namespace {
+@@ -95,7 +101,7 @@ namespace {
namespace {
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ std::vector<std::string> GetNetworkContextsParentDirectories() {
+ base::MemoryMappedFile::Region region;
+ base::ScopedFD read_pipe_fd = base::FileDescriptorStore::GetInstance().TakeFD(
+@@ -123,7 +129,7 @@ bool ShouldUseAmdGpuPolicy(sandbox::mojom::Sandbox san
+
bool ShouldUseAmdGpuPolicy(sandbox::mojom::Sandbox sandbox_type) {
const bool obtain_gpu_info =
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
@@ -54,7 +62,7 @@
sandbox_type == sandbox::mojom::Sandbox::kHardwareVideoDecoding ||
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
sandbox_type == sandbox::mojom::Sandbox::kHardwareVideoEncoding;
-@@ -168,7 +174,7 @@ int UtilityMain(MainFunctionParams parameters) {
+@@ -239,7 +245,7 @@ int UtilityMain(MainFunctionParams parameters) {
}
}
@@ -63,7 +71,7 @@
// Initializes the sandbox before any threads are created.
// TODO(jorgelo): move this after GTK initialization when we enable a strict
// Seccomp-BPF policy.
-@@ -200,7 +206,7 @@ int UtilityMain(MainFunctionParams parameters) {
+@@ -272,7 +278,7 @@ int UtilityMain(MainFunctionParams parameters) {
#endif
break;
#endif
@@ -72,7 +80,7 @@
case sandbox::mojom::Sandbox::kHardwareVideoDecoding:
pre_sandbox_hook =
base::BindOnce(&media::HardwareVideoDecodingPreSandboxHook);
-@@ -227,6 +233,7 @@ int UtilityMain(MainFunctionParams parameters) {
+@@ -299,6 +305,7 @@ int UtilityMain(MainFunctionParams parameters) {
default:
break;
}
@@ -80,7 +88,7 @@
if (!sandbox::policy::IsUnsandboxedSandboxType(sandbox_type) &&
(parameters.zygote_child || !pre_sandbox_hook.is_null())) {
sandbox::policy::SandboxLinux::Options sandbox_options;
-@@ -235,6 +242,11 @@ int UtilityMain(MainFunctionParams parameters) {
+@@ -307,6 +314,11 @@ int UtilityMain(MainFunctionParams parameters) {
sandbox::policy::Sandbox::Initialize(
sandbox_type, std::move(pre_sandbox_hook), sandbox_options);
}
@@ -89,6 +97,6 @@
+ sandbox_type, std::move(pre_sandbox_hook),
+ sandbox::policy::SandboxLinux::Options());
+#endif
- #elif BUILDFLAG(IS_WIN)
- g_utility_target_services = parameters.sandbox_info->target_services;
- #endif
+
+ // Start the HangWatcher now that the sandbox is engaged, if it hasn't
+ // already been started.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_zygote_zygote__linux.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_zygote_zygote__linux.cc
index 89dbfd1880d8..ef586f15e77a 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_zygote_zygote__linux.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_zygote_zygote__linux.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/content/zygote/zygote_linux.cc.orig 2023-02-08 09:03:45 UTC
+--- src/3rdparty/chromium/content/zygote/zygote_linux.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/content/zygote/zygote_linux.cc
@@ -1,6 +1,7 @@
// Copyright 2012 The Chromium Authors
@@ -8,7 +8,7 @@
#include "content/zygote/zygote_linux.h"
-@@ -706,3 +707,4 @@ void Zygote::HandleReinitializeLoggingRequest(base::Pi
+@@ -707,3 +708,4 @@ void Zygote::HandleReinitializeLoggingRequest(base::Pi
}
} // namespace content
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_zygote_zygote__main__linux.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_zygote_zygote__main__linux.cc
index c3951e0b9545..ec201757b5e7 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_zygote_zygote__main__linux.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_content_zygote_zygote__main__linux.cc
@@ -1,10 +1,10 @@
---- src/3rdparty/chromium/content/zygote/zygote_main_linux.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/content/zygote/zygote_main_linux.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/content/zygote/zygote_main_linux.cc
@@ -11,7 +11,9 @@
#include <stddef.h>
#include <stdint.h>
#include <string.h>
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
#include <sys/prctl.h>
+#endif
#include <sys/socket.h>
@@ -14,33 +14,27 @@
#include "sandbox/linux/services/thread_helpers.h"
#include "sandbox/linux/suid/client/setuid_sandbox_client.h"
#include "sandbox/policy/linux/sandbox_debug_handling_linux.h"
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
#include "sandbox/policy/linux/sandbox_linux.h"
+#endif
#include "sandbox/policy/sandbox.h"
#include "sandbox/policy/switches.h"
#include "third_party/icu/source/i18n/unicode/timezone.h"
-@@ -50,6 +54,7 @@ namespace {
+@@ -50,11 +54,13 @@ namespace {
namespace {
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
void CloseFds(const std::vector<int>& fds) {
for (const auto& it : fds) {
PCHECK(0 == IGNORE_EINTR(close(it)));
-@@ -67,9 +72,11 @@ base::OnceClosure ClosureFromTwoClosures(base::OnceClo
- },
- std::move(one), std::move(two));
+ }
}
+#endif
- } // namespace
-
-+#if !defined(OS_BSD)
- // This function triggers the static and lazy construction of objects that need
- // to be created before imposing the sandbox.
- static void ZygotePreSandboxInit() {
-@@ -176,9 +183,11 @@ static void EnterLayerOneSandbox(sandbox::policy::Sand
+ base::OnceClosure ClosureFromTwoClosures(base::OnceClosure one,
+ base::OnceClosure two) {
+@@ -159,9 +165,11 @@ static void EnterLayerOneSandbox(sandbox::policy::Sand
CHECK(!using_layer1_sandbox);
}
}
@@ -48,11 +42,11 @@
bool ZygoteMain(
std::vector<std::unique_ptr<ZygoteForkDelegate>> fork_delegates) {
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
sandbox::SetAmZygoteOrRenderer(true, GetSandboxFD());
auto* linux_sandbox = sandbox::policy::SandboxLinux::GetInstance();
-@@ -244,6 +253,9 @@ bool ZygoteMain(
+@@ -227,6 +235,9 @@ bool ZygoteMain(
// This function call can return multiple times, once per fork().
return zygote.ProcessRequests();
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_device_bluetooth_bluetooth__adapter.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_device_bluetooth_bluetooth__adapter.cc
index 55b7424dad44..852ac4023dd0 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_device_bluetooth_bluetooth__adapter.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_device_bluetooth_bluetooth__adapter.cc
@@ -1,11 +1,11 @@
---- src/3rdparty/chromium/device/bluetooth/bluetooth_adapter.cc.orig 2022-07-28 06:05:58 UTC
+--- src/3rdparty/chromium/device/bluetooth/bluetooth_adapter.cc.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/device/bluetooth/bluetooth_adapter.cc
-@@ -32,7 +32,7 @@ BluetoothAdapter::ServiceOptions::ServiceOptions() = d
+@@ -31,7 +31,7 @@ namespace device {
+ BluetoothAdapter::ServiceOptions::ServiceOptions() = default;
BluetoothAdapter::ServiceOptions::~ServiceOptions() = default;
- #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_MAC) && \
-- !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_LINUX)
-+ !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+-#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS) && \
++#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD) && \
+ !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_LINUX)
// static
scoped_refptr<BluetoothAdapter> BluetoothAdapter::CreateAdapter() {
- return nullptr;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_browser_api_api__browser__context__keyed__service__factories.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_browser_api_api__browser__context__keyed__service__factories.cc
index 0bf6af43124a..bc444409da16 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_browser_api_api__browser__context__keyed__service__factories.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_browser_api_api__browser__context__keyed__service__factories.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/extensions/browser/api/api_browser_context_keyed_service_factories.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/extensions/browser/api/api_browser_context_keyed_service_factories.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/extensions/browser/api/api_browser_context_keyed_service_factories.cc
-@@ -108,7 +108,7 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt
+@@ -118,7 +118,7 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt
MessageService::GetFactoryInstance();
MessagingAPIMessageFilter::EnsureAssociatedFactoryBuilt();
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || \
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_browser_api_messaging_message__service.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_browser_api_messaging_message__service.cc
index 572556abc8fb..bfbb3c283998 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_browser_api_messaging_message__service.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_browser_api_messaging_message__service.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/extensions/browser/api/messaging/message_service.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/extensions/browser/api/messaging/message_service.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/extensions/browser/api/messaging/message_service.cc
-@@ -70,7 +70,7 @@ const char kReceivingEndDoesntExistError[] =
+@@ -71,7 +71,7 @@ const char kReceivingEndDoesntExistError[] =
const char kReceivingEndDoesntExistError[] =
"Could not establish connection. Receiving end does not exist.";
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
@@ -9,7 +9,7 @@
const char kMissingPermissionError[] =
"Access to native messaging requires nativeMessaging permission.";
const char kProhibitedByPoliciesError[] =
-@@ -468,7 +468,7 @@ void MessageService::OpenChannelToNativeApp(
+@@ -490,7 +490,7 @@ void MessageService::OpenChannelToNativeApp(
return;
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_browser_api_networking__private_networking__private__delegate__factory.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_browser_api_networking__private_networking__private__delegate__factory.cc
index 15803e1f8aa5..49a77a57e9d3 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_browser_api_networking__private_networking__private__delegate__factory.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_browser_api_networking__private_networking__private__delegate__factory.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/extensions/browser/api/networking_private/networking_private_delegate_factory.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/extensions/browser/api/networking_private/networking_private_delegate_factory.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/extensions/browser/api/networking_private/networking_private_delegate_factory.cc
@@ -14,7 +14,7 @@
#include "extensions/browser/api/networking_private/networking_private_chromeos.h"
@@ -9,12 +9,12 @@
#include "extensions/browser/api/networking_private/networking_private_linux.h"
#elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
#include "components/wifi/wifi_service.h"
-@@ -68,7 +68,7 @@ KeyedService* NetworkingPrivateDelegateFactory::BuildS
- delegate = new NetworkingPrivateChromeOS(browser_context);
+@@ -67,7 +67,7 @@ NetworkingPrivateDelegateFactory::BuildServiceInstance
+ delegate = std::make_unique<NetworkingPrivateChromeOS>(browser_context);
#elif BUILDFLAG(IS_CHROMEOS_LACROS)
- delegate = new NetworkingPrivateLacros(browser_context);
+ delegate = std::make_unique<NetworkingPrivateLacros>(browser_context);
-#elif BUILDFLAG(IS_LINUX)
+#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
- delegate = new NetworkingPrivateLinux();
+ delegate = std::make_unique<NetworkingPrivateLinux>();
#elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
std::unique_ptr<wifi::WiFiService> wifi_service(wifi::WiFiService::Create());
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_browser_extension__prefs.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_browser_extension__prefs.cc
deleted file mode 100644
index 07b7480a08cf..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_browser_extension__prefs.cc
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/3rdparty/chromium/extensions/browser/extension_prefs.cc.orig 2023-08-16 19:50:41 UTC
-+++ src/3rdparty/chromium/extensions/browser/extension_prefs.cc
-@@ -2230,7 +2230,7 @@ void ExtensionPrefs::RegisterProfilePrefs(
- registry->RegisterListPref(
- pref_names::kExtendedBackgroundLifetimeForPortConnectionsToUrls);
- #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
-- BUILDFLAG(IS_FUCHSIA)
-+ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
- registry->RegisterBooleanPref(pref_names::kChromeAppsEnabled, false);
- #endif
- registry->RegisterBooleanPref(
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_browser_pref__names.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_browser_pref__names.cc
deleted file mode 100644
index 9bd3fbe3ec8d..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_browser_pref__names.cc
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/3rdparty/chromium/extensions/browser/pref_names.cc.orig 2023-04-05 11:05:06 UTC
-+++ src/3rdparty/chromium/extensions/browser/pref_names.cc
-@@ -53,7 +53,7 @@ const char kManifestV2Availability[] = "extensions.man
- const char kPinnedExtensions[] = "extensions.pinned_extensions";
- const char kStorageGarbageCollect[] = "extensions.storage.garbagecollect";
- #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
-- BUILDFLAG(IS_FUCHSIA)
-+ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
- extern const char kChromeAppsEnabled[] = "extensions.chrome_apps_enabled";
- #endif
- const char kChromeAppsWebViewPermissiveBehaviorAllowed[] =
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_browser_pref__names.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_browser_pref__names.h
deleted file mode 100644
index 8d538f1e7198..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_browser_pref__names.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/3rdparty/chromium/extensions/browser/pref_names.h.orig 2023-04-05 11:05:06 UTC
-+++ src/3rdparty/chromium/extensions/browser/pref_names.h
-@@ -114,7 +114,7 @@ extern const char kPinnedExtensions[];
- extern const char kStorageGarbageCollect[];
-
- #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
-- BUILDFLAG(IS_FUCHSIA)
-+ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
- // A preference for whether Chrome Apps should be allowed. The default depends
- // on the ChromeAppsDeprecation feature flag, and this pref can extend support
- // for Chrome Apps by enterprise policy.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_common_api___permission__features.json b/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_common_api___permission__features.json
index 6666f58735d2..8b64105a88f3 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_common_api___permission__features.json
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_common_api___permission__features.json
@@ -1,15 +1,15 @@
---- src/3rdparty/chromium/extensions/common/api/_permission_features.json.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/extensions/common/api/_permission_features.json.orig 2023-07-16 15:47:57 UTC
+++ src/3rdparty/chromium/extensions/common/api/_permission_features.json
-@@ -134,7 +134,7 @@
+@@ -138,7 +138,7 @@
{
"channel": "stable",
"extension_types": ["platform_app"],
-- "platforms": ["chromeos", "win", "mac", "linux"],
-+ "platforms": ["chromeos", "win", "mac", "linux", "openbsd", "freebsd"],
+- "platforms": ["chromeos", "lacros", "win", "mac", "linux"],
++ "platforms": ["chromeos", "lacros", "win", "mac", "linux", "openbsd", "freebsd"],
"allowlist": [
"1C93BD3CF875F4A73C0B2A163BB8FBDA8B8B3D80", // http://crbug.com/387169
"A3BC37E2148AC4E99BE4B16AF9D42DD1E592BBBE", // http://crbug.com/387169
-@@ -427,7 +427,7 @@
+@@ -432,7 +432,7 @@
}, {
"channel": "stable",
"extension_types": ["extension", "legacy_packaged_app", "platform_app"],
@@ -18,7 +18,7 @@
"allowlist": [
"0DE0F05680A4A056BCEC864ED8DDA84296F82B40", // http://crbug.com/434651
"1C93BD3CF875F4A73C0B2A163BB8FBDA8B8B3D80", // http://crbug.com/293683
-@@ -469,7 +469,7 @@
+@@ -474,7 +474,7 @@
"networkingPrivate": {
"channel": "stable",
"extension_types": ["extension", "legacy_packaged_app", "platform_app"],
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_common_api_runtime.json b/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_common_api_runtime.json
index a2bd4cf5a954..60c4d4bfbe25 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_common_api_runtime.json
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_common_api_runtime.json
@@ -1,12 +1,10 @@
---- src/3rdparty/chromium/extensions/common/api/runtime.json.orig 2022-08-31 12:19:35 UTC
+--- src/3rdparty/chromium/extensions/common/api/runtime.json.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/extensions/common/api/runtime.json
-@@ -86,7 +86,8 @@
- "cros",
- "linux",
- "openbsd",
-- "fuchsia"
-+ "fuchsia",
-+ "freebsd"
+@@ -89,6 +89,7 @@
+ {"name": "cros", "description": "Specifies the Chrome operating system."},
+ {"name": "linux", "description": "Specifies the Linux operating system."},
+ {"name": "openbsd", "description": "Specifies the OpenBSD operating system."},
++ {"name": "freebsd", "description": "Specifies the FreeBSD operating system."},
+ {"name": "fuchsia", "description": "Specifies the Fuchsia operating system."}
]
},
- {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_common_command.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_common_command.cc
index cd2f112b6bbb..ba234ebaf7f5 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_common_command.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_common_command.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/extensions/common/command.cc.orig 2022-11-30 08:12:58 UTC
+--- src/3rdparty/chromium/extensions/common/command.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/extensions/common/command.cc
-@@ -280,7 +280,7 @@ std::string Command::CommandPlatform() {
+@@ -282,7 +282,7 @@ std::string Command::CommandPlatform() {
return values::kKeybindingPlatformMac;
#elif BUILDFLAG(IS_CHROMEOS)
return values::kKeybindingPlatformChromeOs;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_common_features_feature.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_common_features_feature.cc
index 4711f762b9c2..14a43d6eddf2 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_common_features_feature.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_common_features_feature.cc
@@ -1,10 +1,10 @@
---- src/3rdparty/chromium/extensions/common/features/feature.cc.orig 2022-02-28 16:54:41 UTC
+--- src/3rdparty/chromium/extensions/common/features/feature.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/extensions/common/features/feature.cc
@@ -34,6 +34,8 @@ Feature::Platform Feature::GetCurrentPlatform() {
return WIN_PLATFORM;
#elif BUILDFLAG(IS_FUCHSIA)
return FUCHSIA_PLATFORM;
-+#elif defined(OS_BSD)
++#elif BUILDFLAG(IS_BSD)
+ return LINUX_PLATFORM;
#else
return UNSPECIFIED_PLATFORM;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_shell_browser_api_runtime_shell__runtime__api__delegate.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_shell_browser_api_runtime_shell__runtime__api__delegate.cc
index 20c2b082fae7..478bd8df8e65 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_shell_browser_api_runtime_shell__runtime__api__delegate.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_extensions_shell_browser_api_runtime_shell__runtime__api__delegate.cc
@@ -1,11 +1,11 @@
---- src/3rdparty/chromium/extensions/shell/browser/api/runtime/shell_runtime_api_delegate.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/extensions/shell/browser/api/runtime/shell_runtime_api_delegate.cc.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/extensions/shell/browser/api/runtime/shell_runtime_api_delegate.cc
@@ -44,7 +44,7 @@ void ShellRuntimeAPIDelegate::OpenURL(const GURL& unin
bool ShellRuntimeAPIDelegate::GetPlatformInfo(PlatformInfo* info) {
#if BUILDFLAG(IS_CHROMEOS_ASH)
- info->os = api::runtime::PLATFORM_OS_CROS;
+ info->os = api::runtime::PlatformOs::kCros;
-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
+#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
- info->os = api::runtime::PLATFORM_OS_LINUX;
+ info->os = api::runtime::PlatformOs::kLinux;
#endif
return true;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_google__apis_gcm_engine_heartbeat__manager.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_google__apis_gcm_engine_heartbeat__manager.cc
index 534926c686b0..abd723e1e979 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_google__apis_gcm_engine_heartbeat__manager.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_google__apis_gcm_engine_heartbeat__manager.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/google_apis/gcm/engine/heartbeat_manager.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/google_apis/gcm/engine/heartbeat_manager.cc.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/google_apis/gcm/engine/heartbeat_manager.cc
-@@ -33,7 +33,7 @@ const int kMinClientHeartbeatIntervalMs = 1000 * 30;
+@@ -32,7 +32,7 @@ const int kMinClientHeartbeatIntervalMs = 1000 * 30;
// Minimum time spent sleeping before we force a new heartbeat.
const int kMinSuspendTimeMs = 1000 * 10; // 10 seconds.
@@ -9,7 +9,7 @@
// The period at which to check if the heartbeat time has passed. Used to
// protect against platforms where the timer is delayed by the system being
// suspended. Only needed on linux because the other OSes provide a standard
-@@ -193,7 +193,7 @@ void HeartbeatManager::RestartTimer() {
+@@ -191,7 +191,7 @@ void HeartbeatManager::RestartTimer() {
base::BindRepeating(&HeartbeatManager::OnHeartbeatTriggered,
weak_ptr_factory_.GetWeakPtr()));
@@ -18,7 +18,7 @@
// Windows, Mac, Android, iOS, and Chrome OS all provide a way to be notified
// when the system is suspending or resuming. The only one that does not is
// Linux so we need to poll to check for missed heartbeats.
-@@ -218,7 +218,7 @@ void HeartbeatManager::CheckForMissedHeartbeat() {
+@@ -214,7 +214,7 @@ void HeartbeatManager::CheckForMissedHeartbeat() {
return;
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_common_gpu__memory__buffer__support.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_common_gpu__memory__buffer__support.cc
index 773d8d038c0b..12e6456454a5 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_common_gpu__memory__buffer__support.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_common_gpu__memory__buffer__support.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/gpu/command_buffer/common/gpu_memory_buffer_support.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/gpu/command_buffer/common/gpu_memory_buffer_support.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/gpu/command_buffer/common/gpu_memory_buffer_support.cc
-@@ -173,7 +173,7 @@ uint32_t GetPlatformSpecificTextureTarget() {
+@@ -182,7 +182,7 @@ uint32_t GetPlatformSpecificTextureTarget() {
#if BUILDFLAG(IS_MAC)
return macos_specific_texture_target;
#elif BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || \
@@ -9,7 +9,7 @@
return GL_TEXTURE_EXTERNAL_OES;
#elif BUILDFLAG(IS_IOS)
return GL_TEXTURE_2D;
-@@ -208,7 +208,7 @@ GPU_EXPORT bool NativeBufferNeedsPlatformSpecificTextu
+@@ -217,7 +217,7 @@ GPU_EXPORT bool NativeBufferNeedsPlatformSpecificTextu
gfx::BufferFormat format,
gfx::BufferPlane plane) {
#if BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_dawn__context__provider.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_dawn__context__provider.cc
new file mode 100644
index 000000000000..df5720390dd5
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_dawn__context__provider.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/gpu/command_buffer/service/dawn_context_provider.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/gpu/command_buffer/service/dawn_context_provider.cc
+@@ -145,7 +145,7 @@ wgpu::BackendType DawnContextProvider::GetDefaultBacke
+ return base::FeatureList::IsEnabled(features::kSkiaGraphiteDawnUseD3D12)
+ ? wgpu::BackendType::D3D12
+ : wgpu::BackendType::D3D11;
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ return wgpu::BackendType::Vulkan;
+ #elif BUILDFLAG(IS_APPLE)
+ return wgpu::BackendType::Metal;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_gles2__cmd__decoder.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_gles2__cmd__decoder.cc
index 738ed7fdf341..c71dfc2e8b62 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_gles2__cmd__decoder.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_gles2__cmd__decoder.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/gpu/command_buffer/service/gles2_cmd_decoder.cc.orig 2023-09-11 15:16:04 UTC
+--- src/3rdparty/chromium/gpu/command_buffer/service/gles2_cmd_decoder.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/gpu/command_buffer/service/gles2_cmd_decoder.cc
-@@ -3462,7 +3462,7 @@ GLES2Decoder* GLES2Decoder::Create(
+@@ -2982,7 +2982,7 @@ GLES2Decoder* GLES2Decoder::Create(
// Fix for Qt WebEngine Crash when QSG_RHI_BACKEND=opengl
// Allow linux to run fuzzers.
#if BUILDFLAG(ENABLE_VALIDATING_COMMAND_DECODER) || BUILDFLAG(IS_LINUX) || \
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_shared__image_angle__vulkan__image__backing__factory.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_shared__image_angle__vulkan__image__backing__factory.cc
index bbacacb8268a..e7b1efc2ebbd 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_shared__image_angle__vulkan__image__backing__factory.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_shared__image_angle__vulkan__image__backing__factory.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/gpu/command_buffer/service/shared_image/angle_vulkan_image_backing_factory.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/gpu/command_buffer/service/shared_image/angle_vulkan_image_backing_factory.cc.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/gpu/command_buffer/service/shared_image/angle_vulkan_image_backing_factory.cc
-@@ -20,7 +20,7 @@ namespace {
+@@ -21,7 +21,7 @@ namespace {
// TODO(penghuang): verify the scanout is the right usage for video playback.
// crbug.com/1280798
constexpr uint32_t kSupportedUsage =
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_shared__image_external__vk__image__backing.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_shared__image_external__vk__image__backing.cc
index 8182d2c3594c..46fe9b90ef76 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_shared__image_external__vk__image__backing.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_shared__image_external__vk__image__backing.cc
@@ -1,20 +1,20 @@
---- src/3rdparty/chromium/gpu/command_buffer/service/shared_image/external_vk_image_backing.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/gpu/command_buffer/service/shared_image/external_vk_image_backing.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/gpu/command_buffer/service/shared_image/external_vk_image_backing.cc
-@@ -36,7 +36,7 @@
+@@ -47,7 +47,7 @@
#include "ui/gl/gl_version_info.h"
#include "ui/gl/scoped_binders.h"
--#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && BUILDFLAG(USE_DAWN)
-+#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_DAWN)
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_DAWN)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_DAWN)
#include "gpu/command_buffer/service/shared_image/external_vk_image_dawn_representation.h"
#endif
-@@ -534,7 +534,7 @@ std::unique_ptr<DawnImageRepresentation> ExternalVkIma
- WGPUDevice wgpuDevice,
- WGPUBackendType backend_type,
- std::vector<WGPUTextureFormat> view_formats) {
--#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && BUILDFLAG(USE_DAWN)
-+#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_DAWN)
- auto wgpu_format = ToWGPUFormat(format());
+@@ -673,7 +673,7 @@ std::unique_ptr<DawnImageRepresentation> ExternalVkIma
+ const wgpu::Device& wgpuDevice,
+ wgpu::BackendType backend_type,
+ std::vector<wgpu::TextureFormat> view_formats) {
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_DAWN)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_DAWN)
+ auto wgpu_format = ToDawnFormat(format());
- if (wgpu_format == WGPUTextureFormat_Undefined) {
+ if (wgpu_format == wgpu::TextureFormat::Undefined) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_shared__image_external__vk__image__backing__factory.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_shared__image_external__vk__image__backing__factory.cc
new file mode 100644
index 000000000000..7e0e594df65b
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_shared__image_external__vk__image__backing__factory.cc
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/gpu/command_buffer/service/shared_image/external_vk_image_backing_factory.cc.orig 2023-12-12 22:08:45 UTC
++++ src/3rdparty/chromium/gpu/command_buffer/service/shared_image/external_vk_image_backing_factory.cc
+@@ -89,7 +89,7 @@ constexpr uint32_t kSupportedUsage =
+ } // namespace
+
+ constexpr uint32_t kSupportedUsage =
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_DAWN)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_DAWN)
+ SHARED_IMAGE_USAGE_WEBGPU | SHARED_IMAGE_USAGE_WEBGPU_SWAP_CHAIN_TEXTURE |
+ SHARED_IMAGE_USAGE_WEBGPU_STORAGE_TEXTURE |
+ #endif
+@@ -258,7 +258,7 @@ bool ExternalVkImageBackingFactory::IsSupported(
+ return false;
+ }
+
+-#if BUILDFLAG(IS_LINUX) && !defined(TOOLKIT_QT)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !defined(TOOLKIT_QT)
+ if (format.IsLegacyMultiplanar()) {
+ // ExternalVkImageBacking doesn't work properly with external sampler
+ // multi-planar formats on Linux, see https://crbug.com/1394888.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_shared__image_shared__image__factory.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_shared__image_shared__image__factory.cc
new file mode 100644
index 000000000000..beaf9fc60a42
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_shared__image_shared__image__factory.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/gpu/command_buffer/service/shared_image/shared_image_factory.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/gpu/command_buffer/service/shared_image/shared_image_factory.cc
+@@ -142,7 +142,7 @@ gfx::GpuMemoryBufferType GetNativeBufferType() {
+ return gfx::GpuMemoryBufferType::IO_SURFACE_BUFFER;
+ #elif BUILDFLAG(IS_ANDROID)
+ return gfx::GpuMemoryBufferType::ANDROID_HARDWARE_BUFFER;
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ return gfx::GpuMemoryBufferType::NATIVE_PIXMAP;
+ #elif BUILDFLAG(IS_WIN)
+ return gfx::GpuMemoryBufferType::DXGI_SHARED_HANDLE;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_shared__image_shared__image__manager.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_shared__image_shared__image__manager.cc
index c27a0d5a303c..ff053561c04e 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_shared__image_shared__image__manager.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_shared__image_shared__image__manager.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/gpu/command_buffer/service/shared_image/shared_image_manager.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/gpu/command_buffer/service/shared_image/shared_image_manager.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/gpu/command_buffer/service/shared_image/shared_image_manager.cc
-@@ -481,7 +481,7 @@ bool SharedImageManager::SupportsScanoutImages() {
+@@ -507,7 +507,7 @@ bool SharedImageManager::SupportsScanoutImages() {
return true;
#elif BUILDFLAG(IS_ANDROID)
return base::AndroidHardwareBufferCompat::IsSupportAvailable();
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_shared__image_wrapped__sk__image__backing.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_shared__image_wrapped__sk__image__backing.cc
index e5577a041f70..bb5a1de33a97 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_shared__image_wrapped__sk__image__backing.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_shared__image_wrapped__sk__image__backing.cc
@@ -1,9 +1,9 @@
---- src/3rdparty/chromium/gpu/command_buffer/service/shared_image/wrapped_sk_image_backing.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/gpu/command_buffer/service/shared_image/wrapped_sk_image_backing.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/gpu/command_buffer/service/shared_image/wrapped_sk_image_backing.cc
-@@ -181,7 +181,7 @@ bool WrappedSkImageBacking::Initialize() {
- for (int plane = 0; plane < num_planes; ++plane) {
- auto& texture = textures_[plane];
- gfx::Size plane_size = format().GetPlaneSize(plane, size());
+@@ -211,7 +211,7 @@ bool WrappedSkImageBacking::Initialize(const std::stri
+
+ constexpr GrRenderable is_renderable = GrRenderable::kYes;
+ constexpr GrProtected is_protected = GrProtected::kNo;
-#if DCHECK_IS_ON() && !BUILDFLAG(IS_LINUX)
+#if DCHECK_IS_ON() && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
// Blue for single-planar and magenta-ish for multi-planar.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_webgpu__decoder__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_webgpu__decoder__impl.cc
index 26146461e135..118c8c18e993 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_webgpu__decoder__impl.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_command__buffer_service_webgpu__decoder__impl.cc
@@ -1,11 +1,20 @@
---- src/3rdparty/chromium/gpu/command_buffer/service/webgpu_decoder_impl.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/gpu/command_buffer/service/webgpu_decoder_impl.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/gpu/command_buffer/service/webgpu_decoder_impl.cc
-@@ -1225,7 +1225,7 @@ void WebGPUDecoderImpl::RequestAdapterImpl(
+@@ -1194,7 +1194,7 @@ void WebGPUDecoderImpl::RequestAdapterImpl(
+ force_fallback_adapter = true;
+ }
- if (gr_context_type_ != GrContextType::kVulkan &&
- use_webgpu_adapter_ != WebGPUAdapterName::kCompat) {
-#if BUILDFLAG(IS_LINUX)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
- callback(WGPURequestAdapterStatus_Unavailable, nullptr,
- "WebGPU on Linux requires command-line flag "
- "--enable-features=Vulkan",
+ if (!shared_context_state_->GrContextIsVulkan() &&
+ !shared_context_state_->IsGraphiteDawnVulkan() &&
+ use_webgpu_adapter_ != WebGPUAdapterName::kOpenGLES) {
+@@ -1849,7 +1849,7 @@ WebGPUDecoderImpl::AssociateMailboxDawn(
+ }
+
+ #if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_APPLE) && \
+- !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_LINUX)
++ !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+ if (usage & wgpu::TextureUsage::StorageBinding) {
+ LOG(ERROR) << "AssociateMailbox: wgpu::TextureUsage::StorageBinding is NOT "
+ "supported yet on this platform.";
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_config_gpu__control__list.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_config_gpu__control__list.cc
index 4389712ef599..0aa02325b5b0 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_config_gpu__control__list.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_config_gpu__control__list.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/gpu/config/gpu_control_list.cc.orig 2022-06-17 14:20:10 UTC
+--- src/3rdparty/chromium/gpu/config/gpu_control_list.cc.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/gpu/config/gpu_control_list.cc
-@@ -302,7 +302,7 @@ bool GpuControlList::More::GLVersionInfoMismatch(
+@@ -276,7 +276,7 @@ bool GpuControlList::More::GLVersionInfoMismatch(
GpuControlList::GLType GpuControlList::More::GetDefaultGLType() {
#if BUILDFLAG(IS_CHROMEOS)
return kGLTypeGL;
@@ -9,7 +9,7 @@
return kGLTypeGL;
#elif BUILDFLAG(IS_MAC)
return kGLTypeGL;
-@@ -844,7 +844,7 @@ GpuControlList::OsType GpuControlList::GetOsType() {
+@@ -817,7 +817,7 @@ GpuControlList::OsType GpuControlList::GetOsType() {
return kOsAndroid;
#elif BUILDFLAG(IS_FUCHSIA)
return kOsFuchsia;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_config_gpu__finch__features.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_config_gpu__finch__features.cc
index 614aa738dd8e..5d0e01de4b5b 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_config_gpu__finch__features.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_config_gpu__finch__features.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/gpu/config/gpu_finch_features.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/gpu/config/gpu_finch_features.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/gpu/config/gpu_finch_features.cc
-@@ -57,7 +57,7 @@ CONSTINIT const base::Feature kUseGles2ForOopR(
+@@ -58,7 +58,7 @@ CONSTINIT const base::Feature kUseGles2ForOopR(
CONSTINIT const base::Feature kUseGles2ForOopR(
"UseGles2ForOopR",
#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || \
@@ -9,7 +9,7 @@
base::FEATURE_DISABLED_BY_DEFAULT
#else
base::FEATURE_ENABLED_BY_DEFAULT
-@@ -135,7 +135,8 @@ CONSTINIT const base::Feature kDefaultEnableGpuRasteri
+@@ -142,7 +142,8 @@ CONSTINIT const base::Feature kDefaultEnableGpuRasteri
CONSTINIT const base::Feature kDefaultEnableGpuRasterization(
"DefaultEnableGpuRasterization",
#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || \
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_ipc_common_gpu__memory__buffer__support.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_ipc_common_gpu__memory__buffer__support.cc
index 2fd265e348df..4b96fd768921 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_ipc_common_gpu__memory__buffer__support.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_ipc_common_gpu__memory__buffer__support.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/gpu/ipc/common/gpu_memory_buffer_support.cc.orig 2023-01-11 09:17:16 UTC
+--- src/3rdparty/chromium/gpu/ipc/common/gpu_memory_buffer_support.cc.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/gpu/ipc/common/gpu_memory_buffer_support.cc
-@@ -21,7 +21,7 @@
+@@ -26,7 +26,7 @@
#include "ui/ozone/public/ozone_platform.h"
#endif
@@ -9,7 +9,7 @@
#include "gpu/ipc/common/gpu_memory_buffer_impl_native_pixmap.h"
#endif
-@@ -50,7 +50,7 @@ GpuMemoryBufferSupport::GetNativeGpuMemoryBufferType()
+@@ -56,7 +56,7 @@ GpuMemoryBufferSupport::GetNativeGpuMemoryBufferType()
return gfx::IO_SURFACE_BUFFER;
#elif BUILDFLAG(IS_ANDROID)
return gfx::ANDROID_HARDWARE_BUFFER;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_ipc_common_gpu__memory__buffer__support.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_ipc_common_gpu__memory__buffer__support.h
index b72358947503..9744deb2ad0b 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_ipc_common_gpu__memory__buffer__support.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_ipc_common_gpu__memory__buffer__support.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/gpu/ipc/common/gpu_memory_buffer_support.h.orig 2023-01-11 09:17:16 UTC
+--- src/3rdparty/chromium/gpu/ipc/common/gpu_memory_buffer_support.h.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/gpu/ipc/common/gpu_memory_buffer_support.h
-@@ -18,7 +18,7 @@
+@@ -21,7 +21,7 @@
#include "ui/gfx/geometry/size.h"
#include "ui/gfx/gpu_memory_buffer.h"
@@ -8,4 +8,4 @@
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_BSD)
namespace gfx {
class ClientNativePixmapFactory;
- }
+ } // namespace gfx
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_ipc_service_gpu__init.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_ipc_service_gpu__init.cc
index 735eb8c1d624..1e31e8949854 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_ipc_service_gpu__init.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_ipc_service_gpu__init.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/gpu/ipc/service/gpu_init.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/gpu/ipc/service/gpu_init.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/gpu/ipc/service/gpu_init.cc
-@@ -357,7 +357,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL
+@@ -363,7 +363,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL
enable_watchdog = false;
#endif
@@ -9,7 +9,7 @@
bool gpu_sandbox_start_early = gpu_preferences_.gpu_sandbox_start_early;
#else // !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
// For some reasons MacOSX's VideoToolbox might crash when called after
-@@ -393,7 +393,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL
+@@ -400,7 +400,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL
}
bool attempted_startsandbox = false;
@@ -18,16 +18,7 @@
// On Chrome OS ARM Mali, GPU driver userspace creates threads when
// initializing a GL context, so start the sandbox early.
// TODO(zmo): Need to collect OS version before this.
-@@ -442,7 +442,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL
-
- if (gl_initialized && gl_use_swiftshader_ &&
- !gl::IsSoftwareGLImplementation(gl::GetGLImplementationParts())) {
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- VLOG(1) << "Quit GPU process launch to fallback to SwiftShader cleanly "
- << "on Linux";
- return false;
-@@ -493,7 +493,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL
+@@ -457,7 +457,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL
}
}
@@ -36,7 +27,7 @@
// The ContentSandboxHelper is currently the only one implementation of
// GpuSandboxHelper and it has no dependency. Except on Linux where
// VaapiWrapper checks the GL implementation to determine which display
-@@ -579,7 +579,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL
+@@ -539,7 +539,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL
command_line, gpu_feature_info_,
gpu_preferences_.disable_software_rasterizer, false);
if (gl_use_swiftshader_) {
@@ -45,7 +36,7 @@
VLOG(1) << "Quit GPU process launch to fallback to SwiftShader cleanly "
<< "on Linux";
return false;
-@@ -707,7 +707,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL
+@@ -692,7 +692,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL
InitializePlatformOverlaySettings(&gpu_info_, gpu_feature_info_);
@@ -54,8 +45,8 @@
// Driver may create a compatibility profile context when collect graphics
// information on Linux platform. Try to collect graphics information
// based on core profile context after disabling platform extensions.
-@@ -759,7 +759,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL
- gl_use_swiftshader_ = true;
+@@ -746,7 +746,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL
+ }
}
}
-#if BUILDFLAG(IS_LINUX) || \
@@ -63,7 +54,7 @@
(BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_CHROMEOS_DEVICE))
if (!gl_disabled && !gl_use_swiftshader_ && std::getenv("RUNNING_UNDER_RR")) {
// https://rr-project.org/ is a Linux-only record-and-replay debugger that
-@@ -903,7 +903,7 @@ void GpuInit::InitializeInProcess(base::CommandLine* c
+@@ -900,7 +900,7 @@ void GpuInit::InitializeInProcess(base::CommandLine* c
}
bool gl_disabled = gl::GetGLImplementation() == gl::kGLImplementationDisabled;
@@ -72,9 +63,9 @@
(BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_CHROMEOS_DEVICE))
if (!gl_disabled && !gl_use_swiftshader_ && std::getenv("RUNNING_UNDER_RR")) {
// https://rr-project.org/ is a Linux-only record-and-replay debugger that
-@@ -973,7 +973,7 @@ void GpuInit::InitializeInProcess(base::CommandLine* c
-
- InitializePlatformOverlaySettings(&gpu_info_, gpu_feature_info_);
+@@ -976,7 +976,7 @@ void GpuInit::InitializeInProcess(base::CommandLine* c
+ }
+ }
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_generate__bindings.py b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_generate__bindings.py
index 76b73961ae24..3fc4935c7a65 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_generate__bindings.py
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_generate__bindings.py
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/gpu/vulkan/generate_bindings.py.orig 2022-04-21 18:48:31 UTC
+--- src/3rdparty/chromium/gpu/vulkan/generate_bindings.py.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/gpu/vulkan/generate_bindings.py
-@@ -259,7 +259,7 @@ VULKAN_DEVICE_FUNCTIONS = [
+@@ -260,7 +260,7 @@ VULKAN_DEVICE_FUNCTIONS = [
]
},
{
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_semaphore__handle.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_semaphore__handle.cc
new file mode 100644
index 000000000000..a7b61ad210ab
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_semaphore__handle.cc
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/gpu/vulkan/semaphore_handle.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/gpu/vulkan/semaphore_handle.cc
+@@ -39,7 +39,7 @@ SemaphoreHandle::SemaphoreHandle(gfx::GpuFenceHandle f
+ // https://fuchsia.dev/reference/fidl/fuchsia.ui.scenic.
+ Init(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA,
+ std::move(fence_handle.owned_event));
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ Init(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR,
+ std::move(fence_handle.owned_fd));
+ #elif BUILDFLAG(IS_POSIX)
+@@ -64,7 +64,7 @@ gfx::GpuFenceHandle SemaphoreHandle::ToGpuFenceHandle(
+ // VkSemaphore, which can then be used to submit present work, see
+ // https://fuchsia.dev/reference/fidl/fuchsia.ui.scenic.
+ fence_handle.owned_event = TakeHandle();
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ if (type_ == VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR) {
+ fence_handle.owned_fd = TakeHandle();
+ } else {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_vulkan__device__queue.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_vulkan__device__queue.cc
index 1755a836be13..d67111ec0331 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_vulkan__device__queue.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_vulkan__device__queue.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/gpu/vulkan/vulkan_device_queue.cc.orig 2022-11-30 08:12:58 UTC
+--- src/3rdparty/chromium/gpu/vulkan/vulkan_device_queue.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/gpu/vulkan/vulkan_device_queue.cc
-@@ -89,7 +89,7 @@ bool VulkanDeviceQueue::Initialize(
+@@ -121,7 +121,7 @@ bool VulkanDeviceQueue::Initialize(
// In dual-CPU cases, we cannot detect the active GPU correctly on Linux,
// so don't select GPU device based on the |gpu_info|.
@@ -9,12 +9,12 @@
// If gpu_info is provided, the device should match it.
if (gpu_info && (device_properties.vendorID != gpu_info->gpu.vendor_id ||
device_properties.deviceID != gpu_info->gpu.device_id)) {
-@@ -229,7 +229,7 @@ bool VulkanDeviceQueue::Initialize(
- enabled_device_features_2_ = {VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2};
-
- // Android, Fuchsia, and Linux(VaapiVideoDecoder) need YCbCr sampler support.
--#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX)
-+#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+@@ -263,7 +263,7 @@ bool VulkanDeviceQueue::Initialize(
+ // Android, Fuchsia, Linux, and CrOS (VaapiVideoDecoder) need YCbCr sampler
+ // support.
+ #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
if (!physical_device_info.feature_sampler_ycbcr_conversion) {
LOG(ERROR) << "samplerYcbcrConversion is not supported.";
return false;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_vulkan__device__queue.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_vulkan__device__queue.h
index d3f545db878e..bc33c334dbab 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_vulkan__device__queue.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_vulkan__device__queue.h
@@ -1,11 +1,11 @@
---- src/3rdparty/chromium/gpu/vulkan/vulkan_device_queue.h.orig 2022-09-24 10:57:32 UTC
+--- src/3rdparty/chromium/gpu/vulkan/vulkan_device_queue.h.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/gpu/vulkan/vulkan_device_queue.h
-@@ -158,7 +158,7 @@ class COMPONENT_EXPORT(VULKAN) VulkanDeviceQueue {
-
+@@ -166,7 +166,7 @@ class COMPONENT_EXPORT(VULKAN) VulkanDeviceQueue
bool allow_protected_memory_ = false;
--#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX)
-+#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
VkPhysicalDeviceSamplerYcbcrConversionFeatures
sampler_ycbcr_conversion_features_{
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES};
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_vulkan__function__pointers.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_vulkan__function__pointers.cc
index bdc303a1f776..cfa5f590ebf5 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_vulkan__function__pointers.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_vulkan__function__pointers.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/gpu/vulkan/vulkan_function_pointers.cc.orig 2022-04-21 18:48:31 UTC
+--- src/3rdparty/chromium/gpu/vulkan/vulkan_function_pointers.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/gpu/vulkan/vulkan_function_pointers.cc
-@@ -1151,7 +1151,7 @@ bool VulkanFunctionPointers::BindDeviceFunctionPointer
+@@ -1161,7 +1161,7 @@ bool VulkanFunctionPointers::BindDeviceFunctionPointer
}
}
@@ -9,3 +9,12 @@
if (gfx::HasExtension(enabled_extensions,
VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME)) {
vkGetImageDrmFormatModifierPropertiesEXT =
+@@ -1350,7 +1350,7 @@ void VulkanFunctionPointers::ResetForTesting() {
+ vkGetSwapchainImagesKHR = nullptr;
+ vkQueuePresentKHR = nullptr;
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ vkGetImageDrmFormatModifierPropertiesEXT = nullptr;
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ }
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_vulkan__function__pointers.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_vulkan__function__pointers.h
index 4e7be2fb3567..8c52f65fe0a8 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_vulkan__function__pointers.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_vulkan__function__pointers.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/gpu/vulkan/vulkan_function_pointers.h.orig 2022-04-21 18:48:31 UTC
+--- src/3rdparty/chromium/gpu/vulkan/vulkan_function_pointers.h.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/gpu/vulkan/vulkan_function_pointers.h
-@@ -305,7 +305,7 @@ struct COMPONENT_EXPORT(VULKAN) VulkanFunctionPointers
+@@ -311,7 +311,7 @@ struct COMPONENT_EXPORT(VULKAN) VulkanFunctionPointers
VulkanFunction<PFN_vkGetSwapchainImagesKHR> vkGetSwapchainImagesKHR;
VulkanFunction<PFN_vkQueuePresentKHR> vkQueuePresentKHR;
@@ -9,7 +9,7 @@
VulkanFunction<PFN_vkGetImageDrmFormatModifierPropertiesEXT>
vkGetImageDrmFormatModifierPropertiesEXT;
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-@@ -1212,7 +1212,7 @@ ALWAYS_INLINE VkResult vkQueuePresentKHR(VkQueue queue
+@@ -1235,7 +1235,7 @@ ALWAYS_INLINE VkResult vkQueuePresentKHR(VkQueue queue
pPresentInfo);
}
@@ -18,7 +18,7 @@
ALWAYS_INLINE VkResult vkGetImageDrmFormatModifierPropertiesEXT(
VkDevice device,
VkImage image,
-@@ -1222,4 +1222,4 @@ ALWAYS_INLINE VkResult vkGetImageDrmFormatModifierProp
+@@ -1245,4 +1245,4 @@ ALWAYS_INLINE VkResult vkGetImageDrmFormatModifierProp
}
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_vulkan__image.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_vulkan__image.cc
deleted file mode 100644
index d00fc83963f5..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_vulkan__image.cc
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/3rdparty/chromium/gpu/vulkan/vulkan_image.cc.orig 2023-02-08 09:03:45 UTC
-+++ src/3rdparty/chromium/gpu/vulkan/vulkan_image.cc
-@@ -392,7 +392,7 @@ bool VulkanImage::InitializeWithExternalMemory(
-
- // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is
- // complete.
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
- VkPhysicalDeviceImageDrmFormatModifierInfoEXT modifier_info = {
- .sType =
- VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT,
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_vulkan__util.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_vulkan__util.cc
index 8ff623025c71..16b86dba4c0b 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_vulkan__util.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_vulkan_vulkan__util.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/gpu/vulkan/vulkan_util.cc.orig 2022-07-22 17:30:31 UTC
+--- src/3rdparty/chromium/gpu/vulkan/vulkan_util.cc.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/gpu/vulkan/vulkan_util.cc
-@@ -199,7 +199,7 @@ bool CheckVulkanCompabilities(const VulkanInfo& vulkan
+@@ -343,7 +343,7 @@ bool CheckVulkanCompabilities(const VulkanInfo& vulkan
}
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_headless_lib_browser_headless__browser__main__parts__posix.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_headless_lib_browser_headless__browser__main__parts__posix.cc
index fc98746712ee..2579ca453b33 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_headless_lib_browser_headless__browser__main__parts__posix.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_headless_lib_browser_headless__browser__main__parts__posix.cc
@@ -1,14 +1,14 @@
---- src/3rdparty/chromium/headless/lib/browser/headless_browser_main_parts_posix.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/headless/lib/browser/headless_browser_main_parts_posix.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/headless/lib/browser/headless_browser_main_parts_posix.cc
-@@ -19,13 +19,13 @@
+@@ -21,13 +21,13 @@
#include "content/public/browser/browser_thread.h"
#include "headless/lib/browser/headless_browser_impl.h"
-#if BUILDFLAG(IS_LINUX)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
#include "base/command_line.h"
- #include "components/os_crypt/key_storage_config_linux.h"
- #include "components/os_crypt/os_crypt.h"
+ #include "components/os_crypt/sync/key_storage_config_linux.h"
+ #include "components/os_crypt/sync/os_crypt.h"
#include "headless/public/switches.h"
-#if defined(USE_DBUS)
@@ -16,7 +16,7 @@
#include "device/bluetooth/dbus/bluez_dbus_manager.h"
#endif
-@@ -120,7 +120,7 @@ class BrowserShutdownHandler {
+@@ -161,7 +161,7 @@ class BrowserShutdownHandler {
} // namespace
@@ -25,9 +25,9 @@
constexpr char kProductName[] = "HeadlessChrome";
#endif
-@@ -128,9 +128,9 @@ void HeadlessBrowserMainParts::PostCreateMainMessageLo
- BrowserShutdownHandler::Install(
- base::BindOnce(&HeadlessBrowserImpl::Shutdown, browser_->GetWeakPtr()));
+@@ -169,9 +169,9 @@ void HeadlessBrowserMainParts::PostCreateMainMessageLo
+ BrowserShutdownHandler::Install(base::BindOnce(
+ &HeadlessBrowserImpl::ShutdownWithExitCode, browser_->GetWeakPtr()));
-#if BUILDFLAG(IS_LINUX)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_headless_lib_browser_headless__web__contents__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_headless_lib_browser_headless__web__contents__impl.cc
index 00c2637191db..d3dd85b56342 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_headless_lib_browser_headless__web__contents__impl.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_headless_lib_browser_headless__web__contents__impl.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/headless/lib/browser/headless_web_contents_impl.cc.orig 2023-02-08 09:03:45 UTC
+--- src/3rdparty/chromium/headless/lib/browser/headless_web_contents_impl.cc.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/headless/lib/browser/headless_web_contents_impl.cc
-@@ -61,7 +61,7 @@ namespace headless {
+@@ -60,7 +60,7 @@ namespace headless {
namespace {
void UpdatePrefsFromSystemSettings(blink::RendererPreferences* prefs) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_headless_lib_headless__content__main__delegate.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_headless_lib_headless__content__main__delegate.cc
index 8205206723ff..85f9b3d5814d 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_headless_lib_headless__content__main__delegate.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_headless_lib_headless__content__main__delegate.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/headless/lib/headless_content_main_delegate.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/headless/lib/headless_content_main_delegate.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/headless/lib/headless_content_main_delegate.cc
-@@ -327,7 +327,7 @@ void HeadlessContentMainDelegate::InitCrashReporter(
+@@ -344,7 +344,7 @@ void HeadlessContentMainDelegate::InitCrashReporter(
if (process_type != ::switches::kZygoteProcess) {
g_headless_crash_client.Pointer()->set_crash_dumps_dir(
command_line.GetSwitchValuePath(switches::kCrashDumpsDir));
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ipc_ipc__message__utils.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ipc_ipc__message__utils.cc
index 36e6fd9f3df8..0b4fb6c20bac 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ipc_ipc__message__utils.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ipc_ipc__message__utils.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ipc/ipc_message_utils.cc.orig 2022-05-19 14:06:27 UTC
+--- src/3rdparty/chromium/ipc/ipc_message_utils.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/ipc/ipc_message_utils.cc
-@@ -359,7 +359,7 @@ void ParamTraits<unsigned int>::Log(const param_type&
+@@ -393,7 +393,7 @@ void ParamTraits<unsigned int>::Log(const param_type&
}
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_BUILD.gn
index b74a242be8ae..196ee0c0a3c4 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_BUILD.gn
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/media/BUILD.gn.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/media/BUILD.gn.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/media/BUILD.gn
@@ -96,6 +96,9 @@ config("media_config") {
defines += [ "DLOPEN_PULSEAUDIO" ]
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_audio_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_audio_BUILD.gn
index 0aa9a075cc2d..db6fd122165c 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_audio_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_audio_BUILD.gn
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/media/audio/BUILD.gn.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/media/audio/BUILD.gn.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/media/audio/BUILD.gn
-@@ -264,9 +264,20 @@ source_set("audio") {
+@@ -278,9 +278,20 @@ jumbo_source_set("audio") {
]
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_audio_audio__input__device.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_audio_audio__input__device.cc
index 7763c850bf22..5ca79c181554 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_audio_audio__input__device.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_audio_audio__input__device.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/media/audio/audio_input_device.cc.orig 2022-08-31 12:19:35 UTC
+--- src/3rdparty/chromium/media/audio/audio_input_device.cc.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/media/audio/audio_input_device.cc
-@@ -259,7 +259,7 @@ void AudioInputDevice::OnStreamCreated(
+@@ -262,7 +262,7 @@ void AudioInputDevice::OnStreamCreated(
// here. See comments in AliveChecker and PowerObserverHelper for details and
// todos.
if (detect_dead_stream_ == DeadStreamDetection::kEnabled) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_audio_sndio_sndio__input.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_audio_sndio_sndio__input.cc
index bb502dad81a3..aebbac4f7a18 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_audio_sndio_sndio__input.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_audio_sndio_sndio__input.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/media/audio/sndio/sndio_input.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/media/audio/sndio/sndio_input.cc.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/media/audio/sndio/sndio_input.cc
@@ -0,0 +1,200 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
@@ -196,7 +196,7 @@
+
+
+ // invoke callback
-+ callback->OnData(audio_bus.get(), base::TimeTicks::Now() - delay, 1.);
++ callback->OnData(audio_bus.get(), base::TimeTicks::Now() - delay, 1., {});
+ }
+}
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_base_cdm__promise__adapter.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_base_cdm__promise__adapter.cc
new file mode 100644
index 000000000000..8661d571c150
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_base_cdm__promise__adapter.cc
@@ -0,0 +1,16 @@
+--- src/3rdparty/chromium/media/base/cdm_promise_adapter.cc.orig 2023-08-17 07:33:31 UTC
++++ src/3rdparty/chromium/media/base/cdm_promise_adapter.cc
+@@ -94,7 +94,13 @@ void CdmPromiseAdapter::RejectPromise(uint32_t promise
+ void CdmPromiseAdapter::Clear(ClearReason reason) {
+ // Reject all outstanding promises.
+ DCHECK(thread_checker_.CalledOnValidThread());
++#if defined(__clang__) && (__clang_major__ >= 16)
+ for (auto& [promise_id, promise] : promises_) {
++#else
++ for (auto& [p_i, p_e] : promises_) {
++ auto& promise_id = p_i;
++ auto& promise = p_e;
++#endif
+ TRACE_EVENT_NESTABLE_ASYNC_END1(
+ "media", "CdmPromise", TRACE_ID_WITH_SCOPE("CdmPromise", promise_id),
+ "status", "cleared");
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_base_media__switches.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_base_media__switches.cc
index 82fd131702ba..5cfee7ed784c 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_base_media__switches.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_base_media__switches.cc
@@ -1,15 +1,15 @@
---- src/3rdparty/chromium/media/base/media_switches.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/media/base/media_switches.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/media/base/media_switches.cc
-@@ -12,7 +12,7 @@
- #include "components/system_media_controls/linux/buildflags/buildflags.h"
- #include "media/media_buildflags.h"
+@@ -17,7 +17,7 @@
+ #include "ui/gl/gl_features.h"
+ #include "ui/gl/gl_utils.h"
-#if BUILDFLAG(IS_LINUX)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
#include "base/cpu.h"
#endif
-@@ -586,7 +586,7 @@ CONSTINIT const base::Feature kGlobalMediaControls(
+@@ -673,7 +673,7 @@ CONSTINIT const base::Feature kGlobalMediaControls(
// Show toolbar button that opens dialog for controlling media sessions.
CONSTINIT const base::Feature kGlobalMediaControls(
"GlobalMediaControls",
@@ -18,7 +18,16 @@
base::FEATURE_ENABLED_BY_DEFAULT
#else
base::FEATURE_DISABLED_BY_DEFAULT
-@@ -634,7 +634,7 @@ CONSTINIT const base::Feature kGlobalMediaControlsPict
+@@ -696,7 +696,7 @@ CONSTINIT const base::Feature kMediaRemotingWithoutFul
+ // If enabled, users can request Media Remoting without fullscreen-in-tab.
+ CONSTINIT const base::Feature kMediaRemotingWithoutFullscreen(
+ "MediaRemotingWithoutFullscreen",
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+ base::FEATURE_DISABLED_BY_DEFAULT
+@@ -708,7 +708,7 @@ CONSTINIT const base::Feature kGlobalMediaControlsPict
CONSTINIT const base::Feature kGlobalMediaControlsPictureInPicture(
"GlobalMediaControlsPictureInPicture",
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
@@ -27,7 +36,7 @@
base::FEATURE_ENABLED_BY_DEFAULT
#else
base::FEATURE_DISABLED_BY_DEFAULT
-@@ -678,7 +678,7 @@ BASE_FEATURE(kUnifiedAutoplay,
+@@ -752,7 +752,7 @@ BASE_FEATURE(kUnifiedAutoplay,
"UnifiedAutoplay",
base::FEATURE_ENABLED_BY_DEFAULT);
@@ -36,17 +45,18 @@
// Enable vaapi video decoding on linux. This is already enabled by default on
// chromeos, but needs an experiment on linux.
BASE_FEATURE(kVaapiVideoDecodeLinux,
-@@ -1198,14 +1198,14 @@ BASE_FEATURE(kAllowClearDolbyVisionInMseWhenPlatformEn
- base::FEATURE_DISABLED_BY_DEFAULT);
- #endif
-
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- // Spawn utility processes to perform hardware decode acceleration instead of
- // using the GPU process.
- const base::Feature MEDIA_EXPORT kUseOutOfProcessVideoDecoding{
- "UseOutOfProcessVideoDecoding", base::FEATURE_DISABLED_BY_DEFAULT};
- #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+@@ -832,7 +832,7 @@ BASE_FEATURE(kVaapiVp9kSVCHWEncoding,
+ "VaapiVp9kSVCHWEncoding",
+ base::FEATURE_ENABLED_BY_DEFAULT);
+ #endif // defined(ARCH_CPU_X86_FAMILY) && BUILDFLAG(IS_CHROMEOS)
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Enables the new V4L2StatefulVideoDecoder instead of V4L2VideoDecoder.
+ BASE_FEATURE(kV4L2FlatStatelessVideoDecoder,
+ "V4L2FlatStatelessVideoDecoder",
+@@ -1348,7 +1348,7 @@ const base::Feature MEDIA_EXPORT kUseOutOfProcessVideo
+ };
+ #endif // BUILDFLAG(ALLOW_OOP_VIDEO_DECODER)
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_base_media__switches.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_base_media__switches.h
index a9a8002374ce..7bf6a2138bd1 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_base_media__switches.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_base_media__switches.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/media/base/media_switches.h.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/media/base/media_switches.h.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/media/base/media_switches.h
-@@ -277,7 +277,7 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseDecoderStreamFor
+@@ -305,7 +305,7 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseElementInsteadOf
MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseFakeDeviceForMediaStream);
MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseMediaHistoryStore);
MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseR16Texture);
@@ -9,14 +9,18 @@
MEDIA_EXPORT BASE_DECLARE_FEATURE(kVaapiVideoDecodeLinux);
MEDIA_EXPORT BASE_DECLARE_FEATURE(kVaapiVideoDecodeLinuxGL);
MEDIA_EXPORT BASE_DECLARE_FEATURE(kVaapiVideoEncodeLinux);
-@@ -396,11 +396,11 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(
- kAllowClearDolbyVisionInMseWhenPlatformEncryptedDvEnabled);
- #endif
-
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+@@ -323,7 +323,7 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kVaapiH264TemporalLa
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kVaapiVp8TemporalLayerHWEncoding);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kVaapiVp9kSVCHWEncoding);
+ #endif // defined(ARCH_CPU_X86_FAMILY) && BUILDFLAG(IS_CHROMEOS)
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kV4L2FlatStatelessVideoDecoder);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kV4L2FlatStatefulVideoDecoder);
+ #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+@@ -443,7 +443,7 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kExposeOutOfProcessV
MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseOutOfProcessVideoDecoding);
- #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ #endif // BUILDFLAG(ALLOW_OOP_VIDEO_DECODER)
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_base_video__frame.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_base_video__frame.cc
index f5821433164b..347d8ca3beab 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_base_video__frame.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_base_video__frame.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/media/base/video_frame.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/media/base/video_frame.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/media/base/video_frame.cc
@@ -80,7 +80,7 @@ std::string VideoFrame::StorageTypeToString(
return "OWNED_MEMORY";
@@ -18,7 +18,7 @@
// This is not strictly needed but makes explicit that, at VideoFrame
// level, DmaBufs are not mappable from userspace.
storage_type != VideoFrame::STORAGE_DMABUFS &&
-@@ -307,7 +307,7 @@ static absl::optional<VideoFrameLayout> GetDefaultLayo
+@@ -306,7 +306,7 @@ static absl::optional<VideoFrameLayout> GetDefaultLayo
return VideoFrameLayout::CreateWithPlanes(format, coded_size, planes);
}
@@ -27,7 +27,7 @@
// This class allows us to embed a vector<ScopedFD> into a scoped_refptr, and
// thus to have several VideoFrames share the same set of DMABUF FDs.
class VideoFrame::DmabufHolder
-@@ -636,7 +636,7 @@ scoped_refptr<VideoFrame> VideoFrame::WrapExternalGpuM
+@@ -635,7 +635,7 @@ scoped_refptr<VideoFrame> VideoFrame::WrapExternalGpuM
for (size_t i = 0; i < num_planes; ++i)
planes[i].stride = gpu_memory_buffer->stride(i);
uint64_t modifier = gfx::NativePixmapHandle::kNoModifier;
@@ -36,7 +36,7 @@
if (gpu_memory_buffer->GetType() == gfx::NATIVE_PIXMAP) {
const auto gmb_handle = gpu_memory_buffer->CloneHandle();
if (gmb_handle.is_null() ||
-@@ -682,7 +682,7 @@ scoped_refptr<VideoFrame> VideoFrame::WrapExternalGpuM
+@@ -681,7 +681,7 @@ scoped_refptr<VideoFrame> VideoFrame::WrapExternalGpuM
return frame;
}
@@ -54,7 +54,7 @@
DCHECK(frame->dmabuf_fds_);
// If there are any |dmabuf_fds_| plugged in, we should refer them too.
wrapping_frame->dmabuf_fds_ = frame->dmabuf_fds_;
-@@ -1302,7 +1302,7 @@ const gpu::MailboxHolder& VideoFrame::mailbox_holder(
+@@ -1310,7 +1310,7 @@ const gpu::MailboxHolder& VideoFrame::mailbox_holder(
: mailbox_holders_[texture_index];
}
@@ -63,7 +63,7 @@
const std::vector<base::ScopedFD>& VideoFrame::DmabufFds() const {
DCHECK_EQ(storage_type_, STORAGE_DMABUFS);
-@@ -1415,7 +1415,7 @@ VideoFrame::VideoFrame(const VideoFrameLayout& layout,
+@@ -1423,7 +1423,7 @@ VideoFrame::VideoFrame(const VideoFrameLayout& layout,
storage_type_(storage_type),
visible_rect_(Intersection(visible_rect, gfx::Rect(layout.coded_size()))),
natural_size_(natural_size),
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_base_video__frame.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_base_video__frame.h
index d764548e57fc..537115395142 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_base_video__frame.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_base_video__frame.h
@@ -1,15 +1,15 @@
---- src/3rdparty/chromium/media/base/video_frame.h.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/media/base/video_frame.h.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/media/base/video_frame.h
@@ -44,7 +44,7 @@
- #include "base/mac/scoped_cftyperef.h"
- #endif // BUILDFLAG(IS_MAC)
+ #include "base/apple/scoped_cftyperef.h"
+ #endif // BUILDFLAG(IS_APPLE)
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "base/files/scoped_file.h"
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-@@ -113,7 +113,7 @@ class MEDIA_EXPORT VideoFrame : public base::RefCounte
+@@ -110,7 +110,7 @@ class MEDIA_EXPORT VideoFrame : public base::RefCounte
STORAGE_UNOWNED_MEMORY = 2, // External, non owned data pointers.
STORAGE_OWNED_MEMORY = 3, // VideoFrame has allocated its own data buffer.
STORAGE_SHMEM = 4, // Backed by read-only shared memory.
@@ -18,7 +18,7 @@
// TODO(mcasas): Consider turning this type into STORAGE_NATIVE
// based on the idea of using this same enum value for both DMA
// buffers on Linux and CVPixelBuffers on Mac (which currently use
-@@ -308,7 +308,7 @@ class MEDIA_EXPORT VideoFrame : public base::RefCounte
+@@ -313,7 +313,7 @@ class MEDIA_EXPORT VideoFrame : public base::RefCounte
ReleaseMailboxAndGpuMemoryBufferCB mailbox_holder_and_gmb_release_cb,
base::TimeDelta timestamp);
@@ -27,7 +27,7 @@
// Wraps provided dmabufs
// (https://www.kernel.org/doc/html/latest/driver-api/dma-buf.html) with a
// VideoFrame. The frame will take ownership of |dmabuf_fds|, and will
-@@ -596,7 +596,7 @@ class MEDIA_EXPORT VideoFrame : public base::RefCounte
+@@ -593,7 +593,7 @@ class MEDIA_EXPORT VideoFrame : public base::RefCounte
// mailbox, the caller must wait for the included sync point.
const gpu::MailboxHolder& mailbox_holder(size_t texture_index) const;
@@ -36,7 +36,7 @@
// Returns a vector containing the backing DmaBufs for this frame. The number
// of returned DmaBufs will be equal or less than the number of planes of
// the frame. If there are less, this means that the last FD contains the
-@@ -809,7 +809,7 @@ class MEDIA_EXPORT VideoFrame : public base::RefCounte
+@@ -811,7 +811,7 @@ class MEDIA_EXPORT VideoFrame : public base::RefCounte
// GPU memory buffer, if this frame is STORAGE_GPU_MEMORY_BUFFER.
std::unique_ptr<gfx::GpuMemoryBuffer> gpu_memory_buffer_;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_fake__video__capture__device__factory.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_fake__video__capture__device__factory.cc
index 3a78d3db1cd3..286f02368daf 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_fake__video__capture__device__factory.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_fake__video__capture__device__factory.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/media/capture/video/fake_video_capture_device_factory.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/media/capture/video/fake_video_capture_device_factory.cc.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/media/capture/video/fake_video_capture_device_factory.cc
-@@ -213,7 +213,7 @@ void FakeVideoCaptureDeviceFactory::GetDevicesInfo(
+@@ -229,7 +229,7 @@ void FakeVideoCaptureDeviceFactory::GetDevicesInfo(
int entry_index = 0;
for (const auto& entry : devices_config_) {
VideoCaptureApi api =
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_linux_fake__v4l2__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_linux_fake__v4l2__impl.cc
index caba3e655650..d5c23f1e1c31 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_linux_fake__v4l2__impl.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_linux_fake__v4l2__impl.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/media/capture/video/linux/fake_v4l2_impl.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/media/capture/video/linux/fake_v4l2_impl.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/media/capture/video/linux/fake_v4l2_impl.cc
-@@ -486,7 +486,7 @@ int FakeV4L2Impl::close(int fd) {
+@@ -560,7 +560,7 @@ int FakeV4L2Impl::close(int fd) {
return kSuccessReturnValue;
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_linux_fake__v4l2__impl.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_linux_fake__v4l2__impl.h
index 62da82dbf905..08dd4ff954b9 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_linux_fake__v4l2__impl.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_linux_fake__v4l2__impl.h
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/media/capture/video/linux/fake_v4l2_impl.h.orig 2022-03-01 11:59:41 UTC
+--- src/3rdparty/chromium/media/capture/video/linux/fake_v4l2_impl.h.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/media/capture/video/linux/fake_v4l2_impl.h
@@ -8,7 +8,13 @@
#include <map>
@@ -14,7 +14,7 @@
#include "base/synchronization/lock.h"
#include "media/capture/capture_export.h"
-@@ -36,7 +42,7 @@ class CAPTURE_EXPORT FakeV4L2Impl : public V4L2Capture
+@@ -38,7 +44,7 @@ class CAPTURE_EXPORT FakeV4L2Impl : public V4L2Capture
// Implementation of V4L2CaptureDevice interface:
int open(const char* device_name, int flags) override;
int close(int fd) override;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_linux_v4l2__capture__delegate.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_linux_v4l2__capture__delegate.cc
index a67fe37b61e0..2bbd51b2e2c5 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_linux_v4l2__capture__delegate.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_linux_v4l2__capture__delegate.cc
@@ -1,30 +1,80 @@
---- src/3rdparty/chromium/media/capture/video/linux/v4l2_capture_delegate.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/media/capture/video/linux/v4l2_capture_delegate.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/media/capture/video/linux/v4l2_capture_delegate.cc
@@ -4,8 +4,10 @@
#include "media/capture/video/linux/v4l2_capture_delegate.h"
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
#include <linux/version.h>
#include <linux/videodev2.h>
+#endif
#include <poll.h>
#include <sys/fcntl.h>
#include <sys/ioctl.h>
-@@ -29,10 +31,10 @@
+@@ -26,17 +28,19 @@
+ #include "media/capture/video/blob_utils.h"
+ #include "media/capture/video/linux/video_capture_device_linux.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "media/capture/capture_switches.h"
+ #include "media/capture/video/linux/v4l2_capture_delegate_gpu_helper.h"
+ #endif // BUILDFLAG(IS_LINUX)
using media::mojom::MeteringMode;
--#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0)
-+// #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0)
++#if !BUILDFLAG(IS_BSD)
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0)
// 16 bit depth, Realsense F200.
#define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ')
--#endif
-+// #endif
+ #endif
++#endif
// TODO(aleksandar.stojiljkovic): Wrap this with kernel version check once the
// format is introduced to kernel.
-@@ -728,7 +730,7 @@ base::WeakPtr<V4L2CaptureDelegate> V4L2CaptureDelegate
+@@ -46,6 +50,14 @@ using media::mojom::MeteringMode;
+ #define V4L2_PIX_FMT_INVZ v4l2_fourcc('I', 'N', 'V', 'Z')
+ #endif
+
++#ifndef V4L2_COLORSPACE_OPRGB
++#define V4L2_COLORSPACE_OPRGB V4L2_COLORSPACE_ADOBERGB
++#endif
++
++#ifndef V4L2_XFER_FUNC_OPRGB
++#define V4L2_XFER_FUNC_OPRGB V4L2_XFER_FUNC_ADOBERGB
++#endif
++
+ namespace media {
+
+ namespace {
+@@ -260,7 +272,7 @@ bool V4L2CaptureDelegate::IsBlockedControl(int control
+ // static
+ bool V4L2CaptureDelegate::IsControllableControl(
+ int control_id,
+- const base::RepeatingCallback<int(int, void*)>& do_ioctl) {
++ const base::RepeatingCallback<int(unsigned int, void*)>& do_ioctl) {
+ const int special_control_id = GetControllingSpecialControl(control_id);
+ if (!special_control_id) {
+ // The control is not controlled by a special control thus the control is
+@@ -316,7 +328,7 @@ V4L2CaptureDelegate::V4L2CaptureDelegate(
+ is_capturing_(false),
+ timeout_count_(0),
+ rotation_(rotation) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ use_gpu_buffer_ = switches::IsVideoCaptureUseGpuMemoryBufferEnabled();
+ #endif // BUILDFLAG(IS_LINUX)
+ }
+@@ -443,7 +455,7 @@ void V4L2CaptureDelegate::AllocateAndStart(
+
+ client_->OnStarted();
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (use_gpu_buffer_) {
+ v4l2_gpu_helper_ = std::make_unique<V4L2CaptureDelegateGpuHelper>(
+ std::move(gmb_support_test_));
+@@ -793,7 +805,7 @@ void V4L2CaptureDelegate::SetGPUEnvironmentForTesting(
V4L2CaptureDelegate::~V4L2CaptureDelegate() = default;
@@ -33,7 +83,7 @@
int num_retries = 0;
for (; DoIoctl(request, argp) < 0 && num_retries < kMaxIOCtrlRetries;
++num_retries) {
-@@ -738,7 +740,7 @@ bool V4L2CaptureDelegate::RunIoctl(int request, void*
+@@ -803,7 +815,7 @@ bool V4L2CaptureDelegate::RunIoctl(int request, void*
return num_retries != kMaxIOCtrlRetries;
}
@@ -42,18 +92,15 @@
return HANDLE_EINTR(v4l2_->ioctl(device_fd_.get(), request, argp));
}
-@@ -778,6 +780,10 @@ bool V4L2CaptureDelegate::IsControllableControl(int co
+@@ -814,6 +826,7 @@ bool V4L2CaptureDelegate::IsControllableControl(int co
}
void V4L2CaptureDelegate::ReplaceControlEventSubscriptions() {
-+// these ioctls are not implemented on *BSDs
-+#if BUILDFLAG(IS_BSD)
-+ NOTIMPLEMENTED();
-+#else
++#if !BUILDFLAG(IS_BSD)
constexpr uint32_t kControlIds[] = {V4L2_CID_AUTO_EXPOSURE_BIAS,
V4L2_CID_AUTO_WHITE_BALANCE,
V4L2_CID_BRIGHTNESS,
-@@ -805,6 +811,7 @@ void V4L2CaptureDelegate::ReplaceControlEventSubscript
+@@ -841,6 +854,7 @@ void V4L2CaptureDelegate::ReplaceControlEventSubscript
<< ", {type = V4L2_EVENT_CTRL, id = " << control_id << "}";
}
}
@@ -61,3 +108,49 @@
}
mojom::RangePtr V4L2CaptureDelegate::RetrieveUserControlRange(int control_id) {
+@@ -1021,7 +1035,11 @@ void V4L2CaptureDelegate::DoCapture() {
+
+ pollfd device_pfd = {};
+ device_pfd.fd = device_fd_.get();
++#if !BUILDFLAG(IS_BSD)
+ device_pfd.events = POLLIN | POLLPRI;
++#else
++ device_pfd.events = POLLIN;
++#endif
+
+ const int result =
+ HANDLE_EINTR(v4l2_->poll(&device_pfd, 1, kCaptureTimeoutMs));
+@@ -1059,6 +1077,7 @@ void V4L2CaptureDelegate::DoCapture() {
+ timeout_count_ = 0;
+ }
+
++#if !BUILDFLAG(IS_BSD)
+ // Dequeue events if the driver has filled in some.
+ if (device_pfd.revents & POLLPRI) {
+ bool controls_changed = false;
+@@ -1093,6 +1112,7 @@ void V4L2CaptureDelegate::DoCapture() {
+ client_->OnCaptureConfigurationChanged();
+ }
+ }
++#endif
+
+ // Deenqueue, send and reenqueue a buffer if the driver has filled one in.
+ if (device_pfd.revents & POLLIN) {
+@@ -1146,7 +1166,7 @@ void V4L2CaptureDelegate::DoCapture() {
+ // workable on Linux.
+
+ // See http://crbug.com/959919.
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (use_gpu_buffer_) {
+ v4l2_gpu_helper_->OnIncomingCapturedData(
+ client_.get(), buffer_tracker->start(),
+@@ -1219,7 +1239,7 @@ void V4L2CaptureDelegate::SetErrorState(VideoCaptureEr
+ client_->OnError(error, from_here, reason);
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ gfx::ColorSpace V4L2CaptureDelegate::BuildColorSpaceFromv4l2() {
+ v4l2_colorspace v4l2_primary = (v4l2_colorspace)video_fmt_.fmt.pix.colorspace;
+ v4l2_quantization v4l2_range =
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_linux_v4l2__capture__delegate.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_linux_v4l2__capture__delegate.h
index 725ca9301f3b..543d9fb3ec80 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_linux_v4l2__capture__delegate.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_linux_v4l2__capture__delegate.h
@@ -1,6 +1,24 @@
---- src/3rdparty/chromium/media/capture/video/linux/v4l2_capture_delegate.h.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/media/capture/video/linux/v4l2_capture_delegate.h.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/media/capture/video/linux/v4l2_capture_delegate.h
-@@ -87,10 +87,10 @@ class CAPTURE_EXPORT V4L2CaptureDelegate final {
+@@ -35,7 +35,7 @@ class Location;
+
+ namespace media {
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ class V4L2CaptureDelegateGpuHelper;
+ #endif // BUILDFLAG(IS_LINUX)
+
+@@ -86,7 +86,7 @@ class CAPTURE_EXPORT V4L2CaptureDelegate final {
+ static bool IsBlockedControl(int control_id);
+ static bool IsControllableControl(
+ int control_id,
+- const base::RepeatingCallback<int(int, void*)>& do_ioctl);
++ const base::RepeatingCallback<int(unsigned int, void*)>& do_ioctl);
+
+ void SetGPUEnvironmentForTesting(
+ std::unique_ptr<gpu::GpuMemoryBufferSupport> gmb_support);
+@@ -100,10 +100,10 @@ class CAPTURE_EXPORT V4L2CaptureDelegate final {
// device file descriptor or (re)starting streaming, can fail but works after
// retrying (https://crbug.com/670262). Returns false if the |request| ioctl
// fails too many times.
@@ -13,3 +31,21 @@
// Check whether the control is controllable (and not changed automatically).
bool IsControllableControl(int control_id);
+@@ -133,7 +133,7 @@ class CAPTURE_EXPORT V4L2CaptureDelegate final {
+ const base::Location& from_here,
+ const std::string& reason);
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Systems which describe a "color space" usually map that to one or more of
+ // {primary, matrix, transfer, range}. BuildColorSpaceFromv4l2() will use the
+ // matched value as first priority. Otherwise, if there is no best matching
+@@ -167,7 +167,7 @@ class CAPTURE_EXPORT V4L2CaptureDelegate final {
+ // Clockwise rotation in degrees. This value should be 0, 90, 180, or 270.
+ int rotation_;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Support GPU memory buffer.
+ bool use_gpu_buffer_;
+ std::unique_ptr<V4L2CaptureDelegateGpuHelper> v4l2_gpu_helper_;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_linux_video__capture__device__factory__v4l2.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_linux_video__capture__device__factory__v4l2.cc
index cd743a293f11..1bd27f575454 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_linux_video__capture__device__factory__v4l2.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_linux_video__capture__device__factory__v4l2.cc
@@ -1,10 +1,10 @@
---- src/3rdparty/chromium/media/capture/video/linux/video_capture_device_factory_v4l2.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/media/capture/video/linux/video_capture_device_factory_v4l2.cc.orig 2023-05-02 13:49:23 UTC
+++ src/3rdparty/chromium/media/capture/video/linux/video_capture_device_factory_v4l2.cc
@@ -75,6 +75,9 @@ class DevVideoFilePathsDeviceProvider
: public VideoCaptureDeviceFactoryV4L2::DeviceProvider {
public:
void GetDeviceIds(std::vector<std::string>* target_container) override {
-+#if defined(OS_OPENBSD)
++#if BUILDFLAG(IS_OPENBSD)
+ target_container->emplace_back("/dev/video");
+#else
const base::FilePath path("/dev/");
@@ -18,7 +18,7 @@
}
std::string GetDeviceModelId(const std::string& device_id) override {
-+#if defined(OS_OPENBSD)
++#if BUILDFLAG(IS_OPENBSD)
+ return std::string();
+#endif
const std::string file_name = ExtractFileNameFromDeviceId(device_id);
@@ -28,7 +28,7 @@
}
std::string GetDeviceDisplayName(const std::string& device_id) override {
-+#if defined(OS_OPENBSD)
++#if BUILDFLAG(IS_OPENBSD)
+ return std::string();
+#endif
const std::string file_name = ExtractFileNameFromDeviceId(device_id);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_video__capture__buffer__tracker__factory__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_video__capture__buffer__tracker__factory__impl.cc
new file mode 100644
index 000000000000..bfa563fa7b66
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_video__capture__buffer__tracker__factory__impl.cc
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/media/capture/video/video_capture_buffer_tracker_factory_impl.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/media/capture/video/video_capture_buffer_tracker_factory_impl.cc
+@@ -14,7 +14,7 @@
+ #include "media/capture/video/chromeos/gpu_memory_buffer_tracker_cros.h"
+ #elif BUILDFLAG(IS_APPLE)
+ #include "media/capture/video/apple/gpu_memory_buffer_tracker_apple.h"
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "media/capture/video/linux/v4l2_gpu_memory_buffer_tracker.h"
+ #elif BUILDFLAG(IS_WIN)
+ #include "media/capture/video/shared_memory_buffer_tracker.h"
+@@ -43,7 +43,7 @@ VideoCaptureBufferTrackerFactoryImpl::CreateTracker(
+ return std::make_unique<GpuMemoryBufferTrackerCros>();
+ #elif BUILDFLAG(IS_APPLE)
+ return std::make_unique<GpuMemoryBufferTrackerApple>();
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return std::make_unique<V4L2GpuMemoryBufferTracker>();
+ #elif BUILDFLAG(IS_WIN)
+ if (!dxgi_device_manager_) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_video__capture__device__client.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_video__capture__device__client.cc
index 69f741431c9f..842b9dda9100 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_video__capture__device__client.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_capture_video_video__capture__device__client.cc
@@ -1,11 +1,11 @@
---- src/3rdparty/chromium/media/capture/video/video_capture_device_client.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/media/capture/video/video_capture_device_client.cc.orig 2023-07-16 15:47:57 UTC
+++ src/3rdparty/chromium/media/capture/video/video_capture_device_client.cc
-@@ -322,7 +322,7 @@ void VideoCaptureDeviceClient::OnIncomingCapturedData(
- // see http://linuxtv.org/downloads/v4l-dvb-apis/packed-rgb.html.
- // Windows RGB24 defines blue at lowest byte,
- // see https://msdn.microsoft.com/en-us/library/windows/desktop/dd407253
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- fourcc_format = libyuv::FOURCC_RAW;
- #elif BUILDFLAG(IS_WIN)
- fourcc_format = libyuv::FOURCC_24BG;
+@@ -149,7 +149,7 @@ FourccAndFlip GetFourccAndFlipFromPixelFormat(
+ CHECK(!is_width_odd && !is_height_odd);
+ return {libyuv::FOURCC_UYVY};
+ case media::PIXEL_FORMAT_RGB24:
+- if constexpr (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) {
++ if constexpr (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) {
+ // Linux RGB24 defines red at lowest byte address,
+ // see http://linuxtv.org/downloads/v4l-dvb-apis/packed-rgb.html.
+ return {libyuv::FOURCC_RAW};
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_cdm_library__cdm_cdm__paths.gni b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_cdm_library__cdm_cdm__paths.gni
new file mode 100644
index 000000000000..02b8f3d6b112
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_cdm_library__cdm_cdm__paths.gni
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/media/cdm/library_cdm/cdm_paths.gni.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/media/cdm/library_cdm/cdm_paths.gni
+@@ -15,7 +15,7 @@ assert(enable_library_cdms)
+ # Explicitly define what we use to avoid confusion.
+ if (is_chromeos) {
+ component_os = "cros"
+-} else if (is_linux) {
++} else if (is_linux || is_bsd) {
+ component_os = "linux"
+ } else if (is_win) {
+ component_os = "win"
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_buffer__validation.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_buffer__validation.cc
index 2bc969973e5a..68e7cc0f92f2 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_buffer__validation.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_buffer__validation.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/media/gpu/buffer_validation.cc.orig 2022-05-19 14:06:27 UTC
+--- src/3rdparty/chromium/media/gpu/buffer_validation.cc.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/media/gpu/buffer_validation.cc
@@ -15,7 +15,7 @@
#include "ui/gfx/geometry/size.h"
@@ -18,7 +18,7 @@
if (fd < 0) {
VLOG(1) << "Invalid file descriptor";
return false;
-@@ -73,7 +73,7 @@ bool VerifyGpuMemoryBufferHandle(
+@@ -76,7 +76,7 @@ bool VerifyGpuMemoryBufferHandle(
VLOG(1) << "Unsupported: " << pixel_format;
return false;
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_chromeos_video__decoder__pipeline.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_chromeos_video__decoder__pipeline.cc
index 3eb5fcdfe8ba..2a6874c36898 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_chromeos_video__decoder__pipeline.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_chromeos_video__decoder__pipeline.cc
@@ -1,15 +1,6 @@
---- src/3rdparty/chromium/media/gpu/chromeos/video_decoder_pipeline.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/media/gpu/chromeos/video_decoder_pipeline.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/media/gpu/chromeos/video_decoder_pipeline.cc
-@@ -213,7 +213,7 @@ std::unique_ptr<VideoDecoder> VideoDecoderPipeline::Cr
- #if BUILDFLAG(USE_VAAPI)
- create_decoder_function_cb = base::BindOnce(&VaapiVideoDecoder::Create);
- #elif BUILDFLAG(USE_V4L2_CODEC) && \
-- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH))
-+ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD))
- create_decoder_function_cb = base::BindOnce(&V4L2VideoDecoder::Create);
- #else
- return nullptr;
-@@ -860,14 +860,14 @@ VideoDecoderPipeline::PickDecoderOutputFormat(
+@@ -1026,14 +1026,14 @@ VideoDecoderPipeline::PickDecoderOutputFormat(
}
}
@@ -26,7 +17,7 @@
// Linux w/ V4L2 should not use a custom allocator
// Only tested with video_decode_accelerator_tests
// TODO(wenst@) Test with full Chromium Browser
-@@ -997,7 +997,7 @@ VideoDecoderPipeline::PickDecoderOutputFormat(
+@@ -1170,7 +1170,7 @@ VideoDecoderPipeline::PickDecoderOutputFormat(
<< " VideoFrames";
auxiliary_frame_pool_->set_parent_task_runner(decoder_task_runner_);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_gpu__video__encode__accelerator__factory.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_gpu__video__encode__accelerator__factory.cc
index 84730e3c08b2..bad61d8e7bd2 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_gpu__video__encode__accelerator__factory.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_gpu__video__encode__accelerator__factory.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/media/gpu/gpu_video_encode_accelerator_factory.cc.orig 2023-02-08 09:03:45 UTC
+--- src/3rdparty/chromium/media/gpu/gpu_video_encode_accelerator_factory.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/media/gpu/gpu_video_encode_accelerator_factory.cc
-@@ -121,7 +121,7 @@ std::vector<VEAFactoryFunction> GetVEAFactoryFunctions
+@@ -119,7 +119,7 @@ std::vector<VEAFactoryFunction> GetVEAFactoryFunctions
return vea_factory_functions;
#if BUILDFLAG(USE_VAAPI)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.cc
index b054db0ad44b..1e2c2a8f7327 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.cc.orig 2023-02-08 09:03:45 UTC
+--- src/3rdparty/chromium/media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.cc.orig 2023-07-16 15:47:57 UTC
+++ src/3rdparty/chromium/media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.cc
@@ -15,7 +15,9 @@
#include "media/gpu/vaapi/vaapi_wrapper.h"
@@ -18,15 +18,15 @@
void AllowAccessToRenderNodes(std::vector<BrokerFilePermission>& permissions,
bool include_sys_dev_char,
bool read_write) {
-@@ -160,6 +163,7 @@ bool HardwareVideoDecodingPreSandboxHookForV4L2(
- return false;
+@@ -165,6 +168,7 @@ bool HardwareVideoDecodingPreSandboxHookForV4L2(
+ NOTREACHED_NORETURN();
#endif // BUILDFLAG(USE_V4L2_CODEC)
}
+#endif
} // namespace
-@@ -175,6 +179,7 @@ bool HardwareVideoDecodingPreSandboxHookForV4L2(
+@@ -180,6 +184,7 @@ bool HardwareVideoDecodingPreSandboxHookForV4L2(
// (at least).
bool HardwareVideoDecodingPreSandboxHook(
sandbox::policy::SandboxLinux::Options options) {
@@ -34,7 +34,7 @@
using HardwareVideoDecodingProcessPolicy =
sandbox::policy::HardwareVideoDecodingProcessPolicy;
using PolicyType =
-@@ -212,6 +217,7 @@ bool HardwareVideoDecodingPreSandboxHook(
+@@ -217,6 +222,7 @@ bool HardwareVideoDecodingPreSandboxHook(
sandbox::policy::SandboxLinux::GetInstance()->StartBrokerProcess(
command_set, permissions, sandbox::policy::SandboxLinux::PreSandboxHook(),
options);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.h
index 4063da78a1f8..3ef02d85160d 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.h
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.h.orig 2022-05-19 14:06:27 UTC
+--- src/3rdparty/chromium/media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.h.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.h
@@ -5,7 +5,13 @@
#ifndef MEDIA_GPU_SANDBOX_HARDWARE_VIDEO_DECODING_SANDBOX_HOOK_LINUX_H_
@@ -7,7 +7,7 @@
+#include "build/build_config.h"
+
+#if BUILDFLAG(IS_BSD)
-+#include "sandbox/policy/openbsd/sandbox_openbsd.h"
++#include "sandbox/policy/sandbox.h"
+#else
#include "sandbox/policy/linux/sandbox_linux.h"
+#endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.cc
index 973bd9244d1a..881836be0cc9 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/media/gpu/sandbox/hardware_video_encoding_sandbox_hook_linux.cc.orig 2023-01-11 09:17:16 UTC
+--- src/3rdparty/chromium/media/gpu/sandbox/hardware_video_encoding_sandbox_hook_linux.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/media/gpu/sandbox/hardware_video_encoding_sandbox_hook_linux.cc
@@ -18,12 +18,15 @@
#include "media/gpu/v4l2/v4l2_device.h"
@@ -16,15 +16,11 @@
sandbox::syscall_broker::BrokerCommandSet command_set;
std::vector<BrokerFilePermission> permissions;
-@@ -125,8 +128,8 @@ bool HardwareVideoEncodingPreSandboxHook(
- #endif // defined(__aarch64__)
+@@ -121,6 +124,7 @@ bool HardwareVideoEncodingPreSandboxHook(
+ return false;
+ }
}
- #endif
--
+#endif
+ #endif
return true;
}
-
--} // namespace media
-\ No newline at end of file
-+} // namespace media
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.h
index 02783baff405..9cc18190d195 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.h
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/media/gpu/sandbox/hardware_video_encoding_sandbox_hook_linux.h.orig 2023-01-11 09:17:16 UTC
+--- src/3rdparty/chromium/media/gpu/sandbox/hardware_video_encoding_sandbox_hook_linux.h.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/media/gpu/sandbox/hardware_video_encoding_sandbox_hook_linux.h
@@ -5,7 +5,13 @@
#ifndef MEDIA_GPU_SANDBOX_HARDWARE_VIDEO_ENCODING_SANDBOX_HOOK_LINUX_H_
@@ -7,7 +7,7 @@
+#include "build/build_config.h"
+
+#if BUILDFLAG(IS_BSD)
-+#include "sandbox/policy/openbsd/sandbox_openbsd.h"
++#include "sandbox/policy/sandbox.h"
+#else
#include "sandbox/policy/linux/sandbox_linux.h"
+#endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_vaapi_vaapi__video__decoder.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_vaapi_vaapi__video__decoder.cc
index 3ac879eb290b..541298f16108 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_vaapi_vaapi__video__decoder.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_vaapi_vaapi__video__decoder.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/media/gpu/vaapi/vaapi_video_decoder.cc.orig 2023-10-03 19:49:54 UTC
+--- src/3rdparty/chromium/media/gpu/vaapi/vaapi_video_decoder.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/media/gpu/vaapi/vaapi_video_decoder.cc
-@@ -772,7 +772,7 @@ void VaapiVideoDecoder::ApplyResolutionChangeWithScree
+@@ -782,7 +782,7 @@ void VaapiVideoDecoder::ApplyResolutionChangeWithScree
const gfx::Size decoder_natural_size =
aspect_ratio_.GetNaturalSize(decoder_visible_rect);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_vaapi_vaapi__wrapper.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_vaapi_vaapi__wrapper.cc
new file mode 100644
index 000000000000..78386389a125
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_gpu_vaapi_vaapi__wrapper.cc
@@ -0,0 +1,56 @@
+--- src/3rdparty/chromium/media/gpu/vaapi/vaapi_wrapper.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/media/gpu/vaapi/vaapi_wrapper.cc
+@@ -70,7 +70,7 @@
+ using media_gpu_vaapi::kModuleVa_prot;
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/files/file_util.h"
+ #include "base/strings/string_split.h"
+ #endif
+@@ -1441,7 +1441,7 @@ bool IsVBREncodingSupported(VAProfile va_profile) {
+ return VASupportedProfiles::Get().IsProfileSupported(mode, va_profile);
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Some VA-API drivers (vdpau-va-driver) will crash if used with VA/DRM on
+ // NVIDIA GPUs. This function checks if such drivers are present.
+ bool IsBrokenNvidiaVaapiDriverPresent() {
+@@ -1502,7 +1502,7 @@ void VADisplayStateSingleton::PreSandboxInitialization
+ VADisplayStateSingleton& va_display_state = GetInstance();
+ base::AutoLock lock(va_display_state.lock_);
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ std::string va_driver_name;
+ auto env = base::Environment::Create();
+ if (env->GetVar("LIBVA_DRIVER_NAME", &va_driver_name) &&
+@@ -1539,7 +1539,7 @@ void VADisplayStateSingleton::PreSandboxInitialization
+ if (base::EqualsCaseInsensitiveASCII(version_name, "vgem")) {
+ continue;
+ }
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Skip NVIDIA GPUs if the VA-API driver used for them is known for crashing
+ // with VA/DRM.
+ if (is_nvidia_va_drm_broken &&
+@@ -1572,7 +1572,7 @@ VADisplayStateHandle VADisplayStateSingleton::GetHandl
+ return {};
+ }
+
+-#if BUILDFLAG(IS_OZONE) && BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_OZONE) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD))
+ // TODO(crbug.com/1116701): add vaapi support for other Ozone platforms on
+ // Linux. See comment in OzonePlatform::PlatformProperties::supports_vaapi
+ // for more details. This will also require revisiting everything that's
+@@ -2403,7 +2403,7 @@ scoped_refptr<VASurface> VaapiWrapper::CreateVASurface
+ return nullptr;
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // TODO(crbug.com/1326754): enable use DRIME_PRIME_2 API on Linux with the
+ // iHD driver.
+ const bool use_drm_prime_2 = false;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_media__options.gni b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_media__options.gni
index 13d6f8e6fee3..737749461c1f 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_media__options.gni
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_media__options.gni
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/media/media_options.gni.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/media/media_options.gni.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/media/media_options.gni
-@@ -196,12 +196,15 @@ declare_args() {
+@@ -189,12 +189,15 @@ declare_args() {
# Enables runtime selection of ALSA library for audio.
use_alsa = false
@@ -17,7 +17,7 @@
(!is_castos || (target_cpu == "x86" || target_cpu == "x64") ||
is_cast_audio_only)) {
use_alsa = true
-@@ -217,6 +220,10 @@ declare_args() {
+@@ -210,6 +213,10 @@ declare_args() {
if (!use_cras && !is_castos && !is_asan && !is_tsan) {
use_pulseaudio = true
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_mojo_mojom_stable_stable__video__decoder__types__mojom__traits.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_mojo_mojom_stable_stable__video__decoder__types__mojom__traits.cc
index 929095529690..32f0c1350902 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_mojo_mojom_stable_stable__video__decoder__types__mojom__traits.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_mojo_mojom_stable_stable__video__decoder__types__mojom__traits.cc
@@ -1,15 +1,6 @@
---- src/3rdparty/chromium/media/mojo/mojom/stable/stable_video_decoder_types_mojom_traits.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/media/mojo/mojom/stable/stable_video_decoder_types_mojom_traits.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/media/mojo/mojom/stable/stable_video_decoder_types_mojom_traits.cc
-@@ -39,7 +39,7 @@ gfx::GpuMemoryBufferHandle GetVideoFrameGpuMemoryBuffe
- gfx::GpuMemoryBufferHandle gpu_memory_buffer_handle =
- input->GetGpuMemoryBuffer()->CloneHandle();
-
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- CHECK_EQ(gpu_memory_buffer_handle.type, gfx::NATIVE_PIXMAP);
- CHECK(!gpu_memory_buffer_handle.native_pixmap_handle.planes.empty());
- #else
-@@ -751,7 +751,7 @@ const gfx::GpuMemoryBufferId& StructTraits<
+@@ -837,7 +837,7 @@ const gfx::GpuMemoryBufferId& StructTraits<
return input.id;
}
@@ -18,7 +9,7 @@
// static
gfx::NativePixmapHandle StructTraits<
media::stable::mojom::NativeGpuMemoryBufferHandleDataView,
-@@ -772,7 +772,7 @@ bool StructTraits<media::stable::mojom::NativeGpuMemor
+@@ -858,7 +858,7 @@ bool StructTraits<media::stable::mojom::NativeGpuMemor
output->type = gfx::NATIVE_PIXMAP;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_mojo_mojom_stable_stable__video__decoder__types__mojom__traits.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_mojo_mojom_stable_stable__video__decoder__types__mojom__traits.h
index 58c76e3dad1f..badd3fb67fa7 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_mojo_mojom_stable_stable__video__decoder__types__mojom__traits.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_mojo_mojom_stable_stable__video__decoder__types__mojom__traits.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/media/mojo/mojom/stable/stable_video_decoder_types_mojom_traits.h.orig 2022-09-24 10:57:32 UTC
+--- src/3rdparty/chromium/media/mojo/mojom/stable/stable_video_decoder_types_mojom_traits.h.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/media/mojo/mojom/stable/stable_video_decoder_types_mojom_traits.h
-@@ -695,7 +695,7 @@ struct StructTraits<media::stable::mojom::NativeGpuMem
+@@ -693,7 +693,7 @@ struct StructTraits<media::stable::mojom::NativeGpuMem
static const gfx::GpuMemoryBufferId& id(
const gfx::GpuMemoryBufferHandle& input);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_video_gpu__memory__buffer__video__frame__pool.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_video_gpu__memory__buffer__video__frame__pool.cc
index 4ceffe452896..7330db5c2cd0 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_video_gpu__memory__buffer__video__frame__pool.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_video_gpu__memory__buffer__video__frame__pool.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/media/video/gpu_memory_buffer_video_frame_pool.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/media/video/gpu_memory_buffer_video_frame_pool.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/media/video/gpu_memory_buffer_video_frame_pool.cc
@@ -727,7 +727,7 @@ void GpuMemoryBufferVideoFramePool::PoolImpl::CreateHa
}
@@ -9,8 +9,8 @@
is_software_backed_video_frame &= !video_frame->HasDmaBufs();
#endif
-@@ -1158,7 +1158,7 @@ scoped_refptr<VideoFrame> GpuMemoryBufferVideoFramePoo
- is_webgpu_compatible = (gpu_memory_buffer != nullptr);
+@@ -1199,7 +1199,7 @@ scoped_refptr<VideoFrame> GpuMemoryBufferVideoFramePoo
+ }
#endif
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
@@ -18,7 +18,7 @@
is_webgpu_compatible = (gpu_memory_buffer != nullptr);
if (is_webgpu_compatible) {
is_webgpu_compatible &=
-@@ -1177,7 +1177,7 @@ scoped_refptr<VideoFrame> GpuMemoryBufferVideoFramePoo
+@@ -1218,7 +1218,7 @@ scoped_refptr<VideoFrame> GpuMemoryBufferVideoFramePoo
gpu::SHARED_IMAGE_USAGE_DISPLAY_READ |
gpu::SHARED_IMAGE_USAGE_SCANOUT;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_video_video__encode__accelerator__adapter.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_video_video__encode__accelerator__adapter.cc
index 3975d337f8cb..035aa5896513 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_video_video__encode__accelerator__adapter.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_video_video__encode__accelerator__adapter.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/media/video/video_encode_accelerator_adapter.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/media/video/video_encode_accelerator_adapter.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/media/video/video_encode_accelerator_adapter.cc
@@ -140,7 +140,7 @@ VideoEncodeAccelerator::Config SetUpVeaConfig(
if (is_rgb)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_video_video__encode__accelerator__adapter__test.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_video_video__encode__accelerator__adapter__test.cc
index 6ac94ed8b548..566d26253613 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_video_video__encode__accelerator__adapter__test.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_media_video_video__encode__accelerator__adapter__test.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/media/video/video_encode_accelerator_adapter_test.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/media/video/video_encode_accelerator_adapter_test.cc.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/media/video/video_encode_accelerator_adapter_test.cc
-@@ -449,7 +449,7 @@ TEST_P(VideoEncodeAcceleratorAdapterTest, TwoFramesRes
+@@ -459,7 +459,7 @@ TEST_P(VideoEncodeAcceleratorAdapterTest, TwoFramesRes
CreateGreenFrame(large_size, pixel_format, base::Milliseconds(2));
VideoPixelFormat expected_input_format = PIXEL_FORMAT_I420;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_mojo_core_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_mojo_core_BUILD.gn
index 3c99434c12d2..a96a138f0536 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_mojo_core_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_mojo_core_BUILD.gn
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/mojo/core/BUILD.gn.orig 2023-02-08 09:03:45 UTC
+--- src/3rdparty/chromium/mojo/core/BUILD.gn.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/mojo/core/BUILD.gn
-@@ -164,7 +164,7 @@ template("core_impl_source_set") {
+@@ -166,7 +166,7 @@ template("core_impl_source_set") {
]
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_mojo_core_embedder_features.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_mojo_core_embedder_features.h
index 9ed0dc06fcdd..e36f5ba80304 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_mojo_core_embedder_features.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_mojo_core_embedder_features.h
@@ -1,9 +1,9 @@
---- src/3rdparty/chromium/mojo/core/embedder/features.h.orig 2022-11-30 08:12:58 UTC
+--- src/3rdparty/chromium/mojo/core/embedder/features.h.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/mojo/core/embedder/features.h
-@@ -14,7 +14,7 @@ namespace mojo {
- namespace core {
+@@ -16,7 +16,7 @@ namespace core {
- #if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_MAC)
+ #if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_NACL) && \
+ !BUILDFLAG(MOJO_USE_APPLE_CHANNEL)
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
COMPONENT_EXPORT(MOJO_CORE_EMBEDDER_FEATURES)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_mojo_public_tools_bindings_mojom.gni b/www/qt6-webengine/files/patch-src_3rdparty_chromium_mojo_public_tools_bindings_mojom.gni
index ddad9b308a12..da3560fe7f91 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_mojo_public_tools_bindings_mojom.gni
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_mojo_public_tools_bindings_mojom.gni
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/mojo/public/tools/bindings/mojom.gni.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/mojo/public/tools/bindings/mojom.gni.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/mojo/public/tools/bindings/mojom.gni
-@@ -722,6 +722,16 @@ template("mojom") {
+@@ -743,6 +743,16 @@ template("mojom") {
enabled_features += [ "is_apple" ]
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_BUILD.gn
index 3b132db0a7d7..b35ef2592495 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_BUILD.gn
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/net/BUILD.gn.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/net/BUILD.gn.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/net/BUILD.gn
-@@ -108,7 +108,7 @@ net_configs = [
+@@ -126,7 +126,7 @@ net_configs = [
"//build/config/compiler:wexit_time_destructors",
]
@@ -9,12 +9,16 @@
net_configs += [ "//build/config/linux:libresolv" ]
}
-@@ -1228,6 +1228,15 @@ component("net") {
+@@ -1255,6 +1255,19 @@ component("net") {
deps += [ "//third_party/xdg_shared_mime_info" ]
}
+ if (is_bsd) {
+ sources -= [
++ "base/address_map_cache_linux.cc",
++ "base/address_map_cache_linux.h",
++ "base/address_map_linux.cc",
++ "base/address_map_linux.h",
+ "base/address_tracker_linux.cc",
+ "base/address_tracker_linux.h",
+ "base/network_change_notifier_linux.cc",
@@ -25,16 +29,7 @@
if (is_mac) {
sources += [
"base/network_notification_thread_mac.cc",
-@@ -1360,7 +1369,7 @@ component("net") {
- }
- }
-
-- if (is_android || is_chromeos) {
-+ if (is_android || is_chromeos || is_bsd) {
- sources += [
- "base/network_change_notifier_posix.cc",
- "base/network_change_notifier_posix.h",
-@@ -1393,7 +1402,7 @@ component("net") {
+@@ -1410,7 +1423,7 @@ component("net") {
}
# Use getifaddrs() on POSIX platforms, except Linux.
@@ -43,8 +38,8 @@
sources += [
"base/network_interfaces_getifaddrs.cc",
"base/network_interfaces_getifaddrs.h",
-@@ -2837,7 +2846,7 @@ test("net_unittests") {
- sources += [ "proxy_resolution/proxy_config_service_linux_unittest.cc" ]
+@@ -2905,7 +2918,7 @@ test("net_unittests") {
+ ]
}
- if (is_linux || is_chromeos) {
@@ -52,7 +47,7 @@
sources += [
"base/address_tracker_linux_unittest.cc",
"base/network_interfaces_linux_unittest.cc",
-@@ -2909,6 +2918,10 @@ test("net_unittests") {
+@@ -2973,6 +2986,10 @@ test("net_unittests") {
"//url:buildflags",
]
@@ -63,7 +58,7 @@
if (enable_websockets) {
deps += [ "//net/server:tests" ]
}
-@@ -2976,7 +2989,7 @@ test("net_unittests") {
+@@ -3055,7 +3072,7 @@ test("net_unittests") {
]
}
@@ -72,7 +67,7 @@
sources += [ "tools/quic/quic_simple_server_test.cc" ]
}
-@@ -3101,7 +3114,7 @@ test("net_unittests") {
+@@ -3190,7 +3207,7 @@ test("net_unittests") {
}
# Use getifaddrs() on POSIX platforms, except Linux.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_base_features.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_base_features.cc
new file mode 100644
index 000000000000..f9d3da04f73d
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_base_features.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/net/base/features.cc.orig 2023-12-12 22:08:45 UTC
++++ src/3rdparty/chromium/net/base/features.cc
+@@ -181,7 +181,7 @@ BASE_FEATURE(kChromeRootStoreUsed,
+ #if BUILDFLAG(CHROME_ROOT_STORE_OPTIONAL)
+ BASE_FEATURE(kChromeRootStoreUsed,
+ "ChromeRootStoreUsed",
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+ base::FEATURE_DISABLED_BY_DEFAULT
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_base_mock__network__change__notifier.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_base_mock__network__change__notifier.cc
new file mode 100644
index 000000000000..54f65b481329
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_base_mock__network__change__notifier.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/net/base/mock_network_change_notifier.cc.orig 2023-08-17 07:33:31 UTC
++++ src/3rdparty/chromium/net/base/mock_network_change_notifier.cc
+@@ -103,7 +103,7 @@ MockNetworkChangeNotifier::GetCurrentConnectionCost()
+ return connection_cost_;
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ AddressMapOwnerLinux* MockNetworkChangeNotifier::GetAddressMapOwnerInternal() {
+ return address_map_owner_;
+ }
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_base_mock__network__change__notifier.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_base_mock__network__change__notifier.h
new file mode 100644
index 000000000000..fa6daf99c99f
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_base_mock__network__change__notifier.h
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/net/base/mock_network_change_notifier.h.orig 2023-08-17 07:33:31 UTC
++++ src/3rdparty/chromium/net/base/mock_network_change_notifier.h
+@@ -84,7 +84,7 @@ class MockNetworkChangeNotifier : public NetworkChange
+ // use_default_connection_cost_implementation is set to true.
+ ConnectionCost GetCurrentConnectionCost() override;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void SetAddressMapOwnerLinux(AddressMapOwnerLinux* address_map_owner) {
+ address_map_owner_ = address_map_owner;
+ }
+@@ -104,7 +104,7 @@ class MockNetworkChangeNotifier : public NetworkChange
+ bool use_default_connection_cost_implementation_ = false;
+ NetworkChangeNotifier::NetworkList connected_networks_;
+ std::unique_ptr<SystemDnsConfigChangeNotifier> dns_config_notifier_;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ raw_ptr<AddressMapOwnerLinux> address_map_owner_ = nullptr;
+ #endif
+ };
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_base_network__change__notifier.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_base_network__change__notifier.cc
index 614239a8ac70..54dd12bf63a8 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_base_network__change__notifier.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_base_network__change__notifier.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/net/base/network_change_notifier.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/net/base/network_change_notifier.cc.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/net/base/network_change_notifier.cc
@@ -37,7 +37,7 @@
#include "net/base/network_change_notifier_linux.h"
@@ -6,10 +6,10 @@
#include "net/base/network_change_notifier_mac.h"
-#elif BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
+#elif BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
- #include "net/base/network_change_notifier_posix.h"
+ #include "net/base/network_change_notifier_passive.h"
#elif BUILDFLAG(IS_FUCHSIA)
#include "net/base/network_change_notifier_fuchsia.h"
-@@ -327,6 +327,9 @@ std::unique_ptr<NetworkChangeNotifier> NetworkChangeNo
+@@ -329,6 +329,9 @@ std::unique_ptr<NetworkChangeNotifier> NetworkChangeNo
#elif BUILDFLAG(IS_FUCHSIA)
return std::make_unique<NetworkChangeNotifierFuchsia>(
/*require_wlan=*/false);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_base_network__change__notifier__posix.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_base_network__change__notifier__passive.cc
index 19b2300e0bba..4ab4523fae18 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_base_network__change__notifier__posix.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_base_network__change__notifier__passive.cc
@@ -1,8 +1,8 @@
---- src/3rdparty/chromium/net/base/network_change_notifier_posix.cc.orig 2022-08-31 12:19:35 UTC
-+++ src/3rdparty/chromium/net/base/network_change_notifier_posix.cc
-@@ -92,7 +92,7 @@ void NetworkChangeNotifierPosix::GetCurrentMaxBandwidt
+--- src/3rdparty/chromium/net/base/network_change_notifier_passive.cc.orig 2023-05-31 08:12:17 UTC
++++ src/3rdparty/chromium/net/base/network_change_notifier_passive.cc
+@@ -107,7 +107,7 @@ NetworkChangeNotifierPassive::GetAddressMapOwnerIntern
NetworkChangeNotifier::NetworkChangeCalculatorParams
- NetworkChangeNotifierPosix::NetworkChangeCalculatorParamsPosix() {
+ NetworkChangeNotifierPassive::NetworkChangeCalculatorParamsPassive() {
NetworkChangeCalculatorParams params;
-#if BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_cert_cert__verifier.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_cert_cert__verifier.cc
index 75371fc06d21..49de64966dff 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_cert_cert__verifier.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_cert_cert__verifier.cc
@@ -1,11 +1,11 @@
---- src/3rdparty/chromium/net/cert/cert_verifier.cc.orig 2022-11-30 08:12:58 UTC
+--- src/3rdparty/chromium/net/cert/cert_verifier.cc.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/net/cert/cert_verifier.cc
-@@ -87,7 +87,7 @@ std::unique_ptr<CertVerifier> CertVerifier::CreateDefa
- }
- #endif
- if (!verify_proc) {
--#if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- verify_proc =
- CertVerifyProc::CreateBuiltinVerifyProc(std::move(cert_net_fetcher));
+@@ -40,7 +40,7 @@ class DefaultCertVerifyProcFactory : public net::CertV
+ return CertVerifyProc::CreateBuiltinWithChromeRootStore(
+ std::move(cert_net_fetcher), impl_params.crl_set,
+ base::OptionalToPtr(impl_params.root_store_data));
+-#elif BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ return CertVerifyProc::CreateBuiltinVerifyProc(std::move(cert_net_fetcher),
+ impl_params.crl_set);
#else
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_cert_cert__verify__proc.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_cert_cert__verify__proc.cc
index 5da70a7c4a36..99e797965813 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_cert_cert__verify__proc.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_cert_cert__verify__proc.cc
@@ -1,11 +1,11 @@
---- src/3rdparty/chromium/net/cert/cert_verify_proc.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/net/cert/cert_verify_proc.cc.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/net/cert/cert_verify_proc.cc
-@@ -414,7 +414,7 @@ base::Value CertVerifyParams(X509Certificate* cert,
+@@ -409,7 +409,7 @@ base::Value::Dict CertVerifyParams(
} // namespace
--#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
-+#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD))
+-#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || \
++#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \
+ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(CHROME_ROOT_STORE_ONLY))
// static
scoped_refptr<CertVerifyProc> CertVerifyProc::CreateSystemVerifyProc(
- scoped_refptr<CertNetFetcher> cert_net_fetcher) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_cert_cert__verify__proc.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_cert_cert__verify__proc.h
index d2ff3390f0eb..9946d7f3a1f4 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_cert_cert__verify__proc.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_cert_cert__verify__proc.h
@@ -1,11 +1,11 @@
---- src/3rdparty/chromium/net/cert/cert_verify_proc.h.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/net/cert/cert_verify_proc.h.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/net/cert/cert_verify_proc.h
-@@ -68,7 +68,7 @@ class NET_EXPORT CertVerifyProc
+@@ -79,7 +79,7 @@ class NET_EXPORT CertVerifyProc
kMaxValue = kChainLengthOne
};
--#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
-+#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD))
+-#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || \
++#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \
+ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(CHROME_ROOT_STORE_ONLY))
// Creates and returns a CertVerifyProc that uses the system verifier.
// |cert_net_fetcher| may not be used, depending on the implementation.
- static scoped_refptr<CertVerifyProc> CreateSystemVerifyProc(
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_cert_pki_general__names.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_cert_pki_general__names.h
new file mode 100644
index 000000000000..3beddde56ec9
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_cert_pki_general__names.h
@@ -0,0 +1,10 @@
+--- src/3rdparty/chromium/net/cert/pki/general_names.h.orig 2023-12-12 22:08:45 UTC
++++ src/3rdparty/chromium/net/cert/pki/general_names.h
+@@ -8,6 +8,7 @@
+ #include <memory>
+ #include <string_view>
+ #include <vector>
++#include <string>
+
+ #include "net/base/net_export.h"
+ #include "net/cert/pki/cert_error_id.h"
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_disk__cache_blockfile_disk__format.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_disk__cache_blockfile_disk__format.h
deleted file mode 100644
index f9ae7455c2f3..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_disk__cache_blockfile_disk__format.h
+++ /dev/null
@@ -1,12 +0,0 @@
---- src/3rdparty/chromium/net/disk_cache/blockfile/disk_format.h.orig 2022-08-31 12:19:35 UTC
-+++ src/3rdparty/chromium/net/disk_cache/blockfile/disk_format.h
-@@ -153,7 +153,9 @@ struct RankingsNode {
- };
- #pragma pack(pop)
-
-+#if !defined(OS_BSD)
- static_assert(sizeof(RankingsNode) == 36, "bad RankingsNode");
-+#endif
-
- } // namespace disk_cache
-
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_dns_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_dns_BUILD.gn
index 93250dcd0367..3617747ac2ba 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_dns_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_dns_BUILD.gn
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/net/dns/BUILD.gn.orig 2023-02-08 09:03:45 UTC
+--- src/3rdparty/chromium/net/dns/BUILD.gn.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/net/dns/BUILD.gn
-@@ -124,7 +124,7 @@ source_set("dns") {
+@@ -128,7 +128,7 @@ source_set("dns") {
"dns_config_service_android.cc",
"dns_config_service_android.h",
]
@@ -9,16 +9,26 @@
sources += [
"dns_config_service_linux.cc",
"dns_config_service_linux.h",
-@@ -165,6 +165,7 @@ source_set("dns") {
+@@ -162,6 +162,9 @@ source_set("dns") {
+ }
+
+ deps = [ "//net:net_deps" ]
++ if (is_bsd) {
++ deps += [ "//components/services/screen_ai/buildflags" ]
++ }
+
+ public_deps = [
+ ":dns_client",
+@@ -169,6 +172,7 @@ source_set("dns") {
":host_resolver_manager",
":mdns_client",
"//net:net_public_deps",
+ "//printing/buildflags",
]
-
+
allow_circular_includes_from = [
-@@ -428,9 +429,9 @@ source_set("tests") {
-
+@@ -436,9 +440,9 @@ source_set("tests") {
+
if (is_android) {
sources += [ "dns_config_service_android_unittest.cc" ]
- } else if (is_linux) {
@@ -28,4 +38,4 @@
+ } else if (is_posix && !is_bsd) {
sources += [ "dns_config_service_posix_unittest.cc" ]
}
-
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_dns_address__info.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_dns_address__info.cc
new file mode 100644
index 000000000000..645bc6db9596
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_dns_address__info.cc
@@ -0,0 +1,16 @@
+--- src/3rdparty/chromium/net/dns/address_info.cc.orig 2023-09-29 10:14:06 UTC
++++ src/3rdparty/chromium/net/dns/address_info.cc
+@@ -77,8 +77,12 @@ AddressInfo::AddressInfoAndResult AddressInfo::Get(
+ // error.
+ // http://crbug.com/134142
+ err = ERR_NAME_NOT_RESOLVED;
+-#elif BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_FREEBSD)
++#elif BUILDFLAG(IS_POSIX)
++#ifdef EAI_NODATA
+ if (os_error != EAI_NONAME && os_error != EAI_NODATA)
++#else
++ if (os_error != EAI_NONAME)
++#endif
+ err = ERR_NAME_RESOLUTION_FAILED;
+ #endif
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_dns_address__sorter__posix.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_dns_address__sorter__posix.cc
index 6e159df9c59f..56f6e5420624 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_dns_address__sorter__posix.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_dns_address__sorter__posix.cc
@@ -1,10 +1,10 @@
---- src/3rdparty/chromium/net/dns/address_sorter_posix.cc.orig 2022-03-25 21:59:56 UTC
+--- src/3rdparty/chromium/net/dns/address_sorter_posix.cc.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/net/dns/address_sorter_posix.cc
-@@ -18,6 +18,7 @@
- #include <ifaddrs.h>
- #include <net/if.h>
+@@ -27,6 +27,7 @@
+ #include "net/dns/netinet_in_var_ios.h"
+ #else
#include <netinet/in_var.h>
+#include <netinet6/in6_var.h>
- #include <string.h>
- #include <sys/ioctl.h>
+ #endif // BUILDFLAG(IS_IOS)
#endif
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_http_http__auth__gssapi__posix.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_http_http__auth__gssapi__posix.cc
index 981b7ed99ffb..56580ae1ca4e 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_http_http__auth__gssapi__posix.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_http_http__auth__gssapi__posix.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/net/http/http_auth_gssapi_posix.cc.orig 2022-08-31 12:19:35 UTC
+--- src/3rdparty/chromium/net/http/http_auth_gssapi_posix.cc.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/net/http/http_auth_gssapi_posix.cc
-@@ -368,8 +368,9 @@ base::NativeLibrary GSSAPISharedLibrary::LoadSharedLib
+@@ -370,8 +370,9 @@ base::NativeLibrary GSSAPISharedLibrary::LoadSharedLib
static const char* const kDefaultLibraryNames[] = {
#if BUILDFLAG(IS_APPLE)
"/System/Library/Frameworks/GSS.framework/GSS"
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_http_http__auth__handler__negotiate.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_http_http__auth__handler__negotiate.cc
new file mode 100644
index 000000000000..8433aae87595
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_http_http__auth__handler__negotiate.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/net/http/http_auth_handler_negotiate.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/net/http/http_auth_handler_negotiate.cc
+@@ -121,7 +121,7 @@ int HttpAuthHandlerNegotiate::Factory::CreateAuthHandl
+ #elif BUILDFLAG(IS_POSIX)
+ if (is_unsupported_)
+ return ERR_UNSUPPORTED_AUTH_SCHEME;
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Note: Don't set is_unsupported_ = true here. AllowGssapiLibraryLoad()
+ // might change to true during a session.
+ if (!http_auth_preferences() ||
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_http_http__auth__preferences.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_http_http__auth__preferences.cc
new file mode 100644
index 000000000000..a4a4207ce0bf
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_http_http__auth__preferences.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/net/http/http_auth_preferences.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/net/http/http_auth_preferences.cc
+@@ -39,7 +39,7 @@ std::string HttpAuthPreferences::AuthAndroidNegotiateA
+ }
+ #endif // BUILDFLAG(IS_ANDROID)
+
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool HttpAuthPreferences::AllowGssapiLibraryLoad() const {
+ return allow_gssapi_library_load_;
+ }
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_http_http__auth__preferences.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_http_http__auth__preferences.h
new file mode 100644
index 000000000000..7b8e4bdd586c
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_http_http__auth__preferences.h
@@ -0,0 +1,29 @@
+--- src/3rdparty/chromium/net/http/http_auth_preferences.h.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/net/http/http_auth_preferences.h
+@@ -50,7 +50,7 @@ class NET_EXPORT HttpAuthPreferences {
+ #if BUILDFLAG(IS_ANDROID)
+ virtual std::string AuthAndroidNegotiateAccountType() const;
+ #endif
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ virtual bool AllowGssapiLibraryLoad() const;
+ #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+ virtual bool CanUseDefaultCredentials(
+@@ -86,7 +86,7 @@ class NET_EXPORT HttpAuthPreferences {
+ }
+ #endif // BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA)
+
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void set_allow_gssapi_library_load(bool allow_gssapi_library_load) {
+ allow_gssapi_library_load_ = allow_gssapi_library_load;
+ }
+@@ -137,7 +137,7 @@ class NET_EXPORT HttpAuthPreferences {
+ std::string auth_android_negotiate_account_type_;
+ #endif // BUILDFLAG(IS_ANDROID)
+
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool allow_gssapi_library_load_ = true;
+ #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_proxy__resolution_proxy__config__service__linux.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_proxy__resolution_proxy__config__service__linux.cc
index bed4b7b584a5..a9af59c8661f 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_proxy__resolution_proxy__config__service__linux.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_proxy__resolution_proxy__config__service__linux.cc
@@ -1,10 +1,10 @@
---- src/3rdparty/chromium/net/proxy_resolution/proxy_config_service_linux.cc.orig 2023-01-11 09:17:16 UTC
+--- src/3rdparty/chromium/net/proxy_resolution/proxy_config_service_linux.cc.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/net/proxy_resolution/proxy_config_service_linux.cc
@@ -6,7 +6,9 @@
#include <errno.h>
#include <limits.h>
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
#include <sys/inotify.h>
+#endif
#include <unistd.h>
@@ -14,7 +14,7 @@
}
#endif // defined(USE_GIO)
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
// Converts |value| from a decimal string to an int. If there was a failure
// parsing, returns |default_value|.
int StringToIntOrDefault(base::StringPiece value, int default_value) {
@@ -26,11 +26,11 @@
} // namespace
-@@ -1248,9 +1252,11 @@ ProxyConfigServiceLinux::Delegate::Delegate(
- case base::nix::DESKTOP_ENVIRONMENT_KDE3:
+@@ -1249,9 +1253,11 @@ ProxyConfigServiceLinux::Delegate::Delegate(
case base::nix::DESKTOP_ENVIRONMENT_KDE4:
case base::nix::DESKTOP_ENVIRONMENT_KDE5:
-+#if !defined(OS_BSD)
+ case base::nix::DESKTOP_ENVIRONMENT_KDE6:
++#if !BUILDFLAG(IS_BSD)
setting_getter_ =
std::make_unique<SettingGetterImplKDE>(env_var_getter_.get());
break;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_socket_tcp__socket__posix.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_socket_tcp__socket__posix.cc
index a2eb5a7980c2..1e27146b95fe 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_socket_tcp__socket__posix.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_socket_tcp__socket__posix.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/net/socket/tcp_socket_posix.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/net/socket/tcp_socket_posix.cc.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/net/socket/tcp_socket_posix.cc
-@@ -99,6 +99,17 @@ bool SetTCPKeepAlive(int fd, bool enable, int delay) {
+@@ -98,6 +98,17 @@ bool SetTCPKeepAlive(int fd, bool enable, int delay) {
PLOG(ERROR) << "Failed to set TCP_KEEPALIVE on fd: " << fd;
return false;
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_socket_udp__socket__posix.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_socket_udp__socket__posix.cc
index d6ad69879dbd..68a680130778 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_socket_udp__socket__posix.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_socket_udp__socket__posix.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/net/socket/udp_socket_posix.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/net/socket/udp_socket_posix.cc.orig 2023-07-16 15:47:57 UTC
+++ src/3rdparty/chromium/net/socket/udp_socket_posix.cc
-@@ -577,7 +577,7 @@ int UDPSocketPosix::SetDoNotFragment() {
+@@ -591,7 +591,7 @@ int UDPSocketPosix::SetDoNotFragment() {
}
void UDPSocketPosix::SetMsgConfirm(bool confirm) {
@@ -9,7 +9,7 @@
if (confirm) {
sendto_flags_ |= MSG_CONFIRM;
} else {
-@@ -598,7 +598,7 @@ int UDPSocketPosix::SetBroadcast(bool broadcast) {
+@@ -612,7 +612,7 @@ int UDPSocketPosix::SetBroadcast(bool broadcast) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
int value = broadcast ? 1 : 0;
int rv;
@@ -18,7 +18,7 @@
// SO_REUSEPORT on OSX permits multiple processes to each receive
// UDP multicast or broadcast datagrams destined for the bound
// port.
-@@ -911,7 +911,7 @@ int UDPSocketPosix::DoBind(const IPEndPoint& address)
+@@ -925,7 +925,7 @@ int UDPSocketPosix::DoBind(const IPEndPoint& address)
#if BUILDFLAG(IS_CHROMEOS_ASH)
if (last_error == EINVAL)
return ERR_ADDRESS_IN_USE;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_tools_cert__verify__tool_cert__verify__comparision__tool.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_tools_cert__verify__tool_cert__verify__comparision__tool.cc
index 92fd48113d9e..c715ee91ed28 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_tools_cert__verify__tool_cert__verify__comparision__tool.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_tools_cert__verify__tool_cert__verify__comparision__tool.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/net/tools/cert_verify_tool/cert_verify_comparision_tool.cc.orig 2022-06-17 14:20:10 UTC
+--- src/3rdparty/chromium/net/tools/cert_verify_tool/cert_verify_comparision_tool.cc.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/net/tools/cert_verify_tool/cert_verify_comparision_tool.cc
@@ -35,7 +35,7 @@
#include "net/url_request/url_request_context_builder.h"
@@ -18,12 +18,12 @@
// On Linux, use a fixed ProxyConfigService, since the default one
// depends on glib.
//
-@@ -127,7 +127,7 @@ class CertVerifyImpl {
+@@ -126,7 +126,7 @@ class CertVerifyImpl {
std::unique_ptr<CertVerifyImpl> CreateCertVerifyImplFromName(
base::StringPiece impl_name,
scoped_refptr<net::CertNetFetcher> cert_net_fetcher) {
--#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
-+#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD))
+-#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || \
++#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \
+ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(CHROME_ROOT_STORE_ONLY))
if (impl_name == "platform") {
return std::make_unique<CertVerifyImpl>(
- "CertVerifyProc (system)", net::CertVerifyProc::CreateSystemVerifyProc(
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_tools_cert__verify__tool_cert__verify__tool.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_tools_cert__verify__tool_cert__verify__tool.cc
index 21a600136e64..4d2b90081384 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_tools_cert__verify__tool_cert__verify__tool.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_tools_cert__verify__tool_cert__verify__tool.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/net/tools/cert_verify_tool/cert_verify_tool.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/net/tools/cert_verify_tool/cert_verify_tool.cc.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/net/tools/cert_verify_tool/cert_verify_tool.cc
@@ -31,7 +31,7 @@
#include "net/url_request/url_request_context_builder.h"
@@ -18,21 +18,21 @@
// On Linux, use a fixed ProxyConfigService, since the default one
// depends on glib.
//
-@@ -222,7 +222,7 @@ std::unique_ptr<CertVerifyImpl> CreateCertVerifyImplFr
- base::StringPiece impl_name,
+@@ -223,7 +223,7 @@ std::unique_ptr<CertVerifyImpl> CreateCertVerifyImplFr
scoped_refptr<net::CertNetFetcher> cert_net_fetcher,
+ scoped_refptr<net::CRLSet> crl_set,
RootStoreType root_store_type) {
--#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
-+#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) || BUILDFLAG(IS_BSD)
+-#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || \
++#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \
+ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(CHROME_ROOT_STORE_ONLY))
if (impl_name == "platform") {
if (root_store_type != RootStoreType::kSystem) {
- std::cerr << "WARNING: platform verifier not supported with "
-@@ -534,7 +534,7 @@ int main(int argc, char** argv) {
+@@ -537,7 +537,7 @@ int main(int argc, char** argv) {
std::string impls_str = command_line.GetSwitchValueASCII("impls");
if (impls_str.empty()) {
// Default value.
--#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
-+#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) || BUILDFLAG(IS_BSD)
+-#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || \
++#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \
+ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(CHROME_ROOT_STORE_ONLY))
impls_str = "platform,";
#endif
- impls_str += "builtin,pathbuilder";
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_url__request_url__request__context__builder.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_url__request_url__request__context__builder.cc
index 89ac3cd25dc2..1d82ab2392fc 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_url__request_url__request__context__builder.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_net_url__request_url__request__context__builder.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/net/url_request/url_request_context_builder.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/net/url_request/url_request_context_builder.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/net/url_request/url_request_context_builder.cc
-@@ -443,7 +443,7 @@ std::unique_ptr<URLRequestContext> URLRequestContextBu
+@@ -446,7 +446,7 @@ std::unique_ptr<URLRequestContext> URLRequestContextBu
}
if (!proxy_resolution_service_) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_pdf_pdfium_pdfium__engine.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_pdf_pdfium_pdfium__engine.cc
index 150ef4b2664b..7bfd41e35275 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_pdf_pdfium_pdfium__engine.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_pdf_pdfium_pdfium__engine.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/pdf/pdfium/pdfium_engine.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/pdf/pdfium/pdfium_engine.cc.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/pdf/pdfium/pdfium_engine.cc
-@@ -84,7 +84,7 @@
+@@ -83,7 +83,7 @@
#include "gin/public/cppgc.h"
#endif
@@ -9,7 +9,7 @@
#include "pdf/pdfium/pdfium_font_linux.h"
#endif
-@@ -526,7 +526,7 @@ void InitializeSDK(bool enable_v8, FontMappingMode fon
+@@ -525,7 +525,7 @@ void InitializeSDK(bool enable_v8,
FPDF_InitLibraryWithConfig(&config);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_backend_cups__helper.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_backend_cups__helper.cc
deleted file mode 100644
index 5a90544a5b4f..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_backend_cups__helper.cc
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/3rdparty/chromium/printing/backend/cups_helper.cc.orig 2023-04-05 11:05:06 UTC
-+++ src/3rdparty/chromium/printing/backend/cups_helper.cc
-@@ -127,7 +127,7 @@ void GetResolutionSettings(ppd_file_t* ppd,
- // found.
- #if BUILDFLAG(IS_MAC)
- constexpr gfx::Size kDefaultMissingDpi(kDefaultMacDpi, kDefaultMacDpi);
--#elif BUILDFLAG(IS_LINUX)
-+#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
- constexpr gfx::Size kDefaultMissingDpi(kPixelsPerInch, kPixelsPerInch);
- #else
- constexpr gfx::Size kDefaultMissingDpi(kDefaultPdfDpi, kDefaultPdfDpi);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_backend_cups__ipp__helper.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_backend_cups__ipp__helper.cc
index a0de02e92b31..e3b7090806f5 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_backend_cups__ipp__helper.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_backend_cups__ipp__helper.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/printing/backend/cups_ipp_helper.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/printing/backend/cups_ipp_helper.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/printing/backend/cups_ipp_helper.cc
-@@ -210,7 +210,7 @@ void ExtractResolutions(const CupsOptionProvider& prin
+@@ -215,7 +215,7 @@ void ExtractResolutions(const CupsOptionProvider& prin
// Provide a default DPI if no valid DPI is found.
#if BUILDFLAG(IS_MAC)
constexpr gfx::Size kDefaultMissingDpi(kDefaultMacDpi, kDefaultMacDpi);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_mojom_printing__context__mojom__traits.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_mojom_printing__context__mojom__traits.cc
index f7f14d9a11f0..5e70a52bef9b 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_mojom_printing__context__mojom__traits.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_mojom_printing__context__mojom__traits.cc
@@ -1,15 +1,15 @@
---- src/3rdparty/chromium/printing/mojom/printing_context_mojom_traits.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/printing/mojom/printing_context_mojom_traits.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/printing/mojom/printing_context_mojom_traits.cc
-@@ -15,7 +15,7 @@
- #include "ui/gfx/geometry/mojom/geometry_mojom_traits.h"
- #include "ui/gfx/geometry/size.h"
+@@ -19,7 +19,7 @@
+ #include "base/numerics/safe_conversions.h"
+ #endif
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "mojo/public/mojom/base/values.mojom.h"
#endif
-@@ -150,7 +150,7 @@ bool StructTraits<
+@@ -161,7 +161,7 @@ bool StructTraits<
}
out->set_pages_per_sheet(data.pages_per_sheet());
@@ -18,3 +18,12 @@
DCHECK(out->advanced_settings().empty());
if (!data.ReadAdvancedSettings(&out->advanced_settings()))
return false;
+@@ -239,7 +239,7 @@ bool StructTraits<
+ return false;
+ }
+
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // The dictionary must contain three strings.
+ base::Value* value = system_print_dialog_data.Find(
+ printing::kLinuxSystemPrintDialogDataPrinter);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_mojom_printing__context__mojom__traits.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_mojom_printing__context__mojom__traits.h
index aa26b6bb7df4..fcdfc946bf1f 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_mojom_printing__context__mojom__traits.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_mojom_printing__context__mojom__traits.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/printing/mojom/printing_context_mojom_traits.h.orig 2022-06-17 14:20:10 UTC
+--- src/3rdparty/chromium/printing/mojom/printing_context_mojom_traits.h.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/printing/mojom/printing_context_mojom_traits.h
-@@ -158,7 +158,7 @@ struct StructTraits<printing::mojom::PrintSettingsData
+@@ -166,7 +166,7 @@ struct StructTraits<printing::mojom::PrintSettingsData
return s.pages_per_sheet();
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_print__settings.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_print__settings.cc
index 363d83e8e5d5..a4f4d9d86d32 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_print__settings.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_print__settings.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/printing/print_settings.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/printing/print_settings.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/printing/print_settings.cc
-@@ -314,7 +314,7 @@ PrintSettings& PrintSettings::operator=(const PrintSet
+@@ -320,7 +320,7 @@ PrintSettings& PrintSettings::operator=(const PrintSet
#endif
is_modifiable_ = settings.is_modifiable_;
pages_per_sheet_ = settings.pages_per_sheet_;
@@ -9,7 +9,25 @@
for (const auto& item : settings.advanced_settings_)
advanced_settings_.emplace(item.first, item.second.Clone());
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-@@ -405,7 +405,7 @@ void PrintSettings::Clear() {
+@@ -350,7 +350,7 @@ bool PrintSettings::operator==(const PrintSettings& ot
+ #endif
+ is_modifiable_, requested_custom_margins_in_points_,
+ pages_per_sheet_
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ ,
+ advanced_settings_
+ #endif
+@@ -374,7 +374,7 @@ bool PrintSettings::operator==(const PrintSettings& ot
+ other.is_modifiable_,
+ other.requested_custom_margins_in_points_,
+ other.pages_per_sheet_
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ ,
+ other.advanced_settings_
+ #endif
+@@ -414,7 +414,7 @@ void PrintSettings::Clear() {
#endif
is_modifiable_ = true;
pages_per_sheet_ = 1;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_print__settings.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_print__settings.h
index bf497f113add..3d7d309de02d 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_print__settings.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_print__settings.h
@@ -1,15 +1,24 @@
---- src/3rdparty/chromium/printing/print_settings.h.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/printing/print_settings.h.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/printing/print_settings.h
-@@ -21,7 +21,7 @@
- #include "ui/gfx/geometry/rect.h"
- #include "ui/gfx/geometry/size.h"
+@@ -25,7 +25,7 @@
+ #include "base/values.h"
+ #endif
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include <map>
#include "base/values.h"
-@@ -74,7 +74,7 @@ class COMPONENT_EXPORT(PRINTING) PrintSettings {
+@@ -51,7 +51,7 @@ inline constexpr char kMacSystemPrintDialogDataPrintSe
+ "print_settings";
+ #endif // BUILDFLAG(IS_MAC)
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ inline constexpr char kLinuxSystemPrintDialogDataPrinter[] = "printer_name";
+ inline constexpr char kLinuxSystemPrintDialogDataPrintSettings[] =
+ "print_settings";
+@@ -101,7 +101,7 @@ class COMPONENT_EXPORT(PRINTING) PrintSettings {
std::string vendor_id;
};
@@ -18,7 +27,7 @@
using AdvancedSettings = std::map<std::string, base::Value>;
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-@@ -241,7 +241,7 @@ class COMPONENT_EXPORT(PRINTING) PrintSettings {
+@@ -276,7 +276,7 @@ class COMPONENT_EXPORT(PRINTING) PrintSettings {
pages_per_sheet_ = pages_per_sheet;
}
@@ -27,7 +36,7 @@
AdvancedSettings& advanced_settings() { return advanced_settings_; }
const AdvancedSettings& advanced_settings() const {
return advanced_settings_;
-@@ -372,7 +372,7 @@ class COMPONENT_EXPORT(PRINTING) PrintSettings {
+@@ -429,7 +429,7 @@ class COMPONENT_EXPORT(PRINTING) PrintSettings {
// Number of pages per sheet.
int pages_per_sheet_;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_print__settings__conversion.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_print__settings__conversion.cc
index 124d6ab84e9d..5da292797b4a 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_print__settings__conversion.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_print__settings__conversion.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/printing/print_settings_conversion.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/printing/print_settings_conversion.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/printing/print_settings_conversion.cc
-@@ -277,7 +277,7 @@ std::unique_ptr<PrintSettings> PrintSettingsFromJobSet
+@@ -287,7 +287,7 @@ std::unique_ptr<PrintSettings> PrintSettingsFromJobSet
settings->set_is_modifiable(is_modifiable.value());
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_printing__context__linux.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_printing__context__linux.cc
index 5849f4064098..948fad7aa10e 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_printing__context__linux.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_printing__context__linux.cc
@@ -1,7 +1,7 @@
---- src/3rdparty/chromium/printing/printing_context_linux.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/printing/printing_context_linux.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/printing/printing_context_linux.cc
-@@ -19,7 +19,7 @@
- #include "printing/units.h"
+@@ -23,7 +23,7 @@
+ #endif
// Avoid using LinuxUi on Fuchsia.
-#if BUILDFLAG(IS_LINUX)
@@ -9,7 +9,7 @@
#include "ui/linux/linux_ui.h"
#endif
-@@ -68,7 +68,7 @@ mojom::ResultCode PrintingContextLinux::UseDefaultSett
+@@ -72,7 +72,7 @@ mojom::ResultCode PrintingContextLinux::UseDefaultSett
ResetSettings();
@@ -18,7 +18,7 @@
if (!ui::LinuxUi::instance())
return mojom::ResultCode::kSuccess;
-@@ -84,7 +84,7 @@ mojom::ResultCode PrintingContextLinux::UseDefaultSett
+@@ -88,7 +88,7 @@ mojom::ResultCode PrintingContextLinux::UseDefaultSett
}
gfx::Size PrintingContextLinux::GetPdfPaperSizeDeviceUnits() {
@@ -27,7 +27,7 @@
if (ui::LinuxUi::instance())
return ui::LinuxUi::instance()->GetPdfPaperSize(this);
#endif
-@@ -97,7 +97,7 @@ mojom::ResultCode PrintingContextLinux::UpdatePrinterS
+@@ -101,7 +101,7 @@ mojom::ResultCode PrintingContextLinux::UpdatePrinterS
DCHECK(!printer_settings.show_system_dialog);
DCHECK(!in_print_job_);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_sandbox_print__backend__sandbox__hook__linux.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_sandbox_print__backend__sandbox__hook__linux.cc
index 3abb9b1db71f..8f2aa000c2c1 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_sandbox_print__backend__sandbox__hook__linux.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_sandbox_print__backend__sandbox__hook__linux.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/printing/sandbox/print_backend_sandbox_hook_linux.cc.orig 2023-02-08 09:03:45 UTC
+--- src/3rdparty/chromium/printing/sandbox/print_backend_sandbox_hook_linux.cc.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/printing/sandbox/print_backend_sandbox_hook_linux.cc
-@@ -10,21 +10,28 @@
+@@ -10,20 +10,27 @@
#include "base/path_service.h"
#include "build/build_config.h"
#include "printing/buildflags/buildflags.h"
@@ -9,9 +9,8 @@
#include "sandbox/linux/syscall_broker/broker_file_permission.h"
#include "sandbox/policy/export.h"
#include "sandbox/policy/linux/sandbox_linux.h"
- #include "services/network/network_sandbox_hook_linux.h"
+#else
-+#include "sandbox/policy/openbsd/sandbox_openbsd.h"
++#include "sandbox/policy/sandbox.h"
+#endif
#if BUILDFLAG(IS_CHROMEOS) && BUILDFLAG(USE_CUPS)
@@ -29,7 +28,7 @@
namespace {
sandbox::syscall_broker::BrokerCommandSet GetPrintBackendBrokerCommandSet() {
-@@ -85,9 +92,11 @@ std::vector<BrokerFilePermission> GetPrintBackendFileP
+@@ -76,9 +83,11 @@ std::vector<BrokerFilePermission> GetPrintBackendFileP
}
} // namespace
@@ -41,7 +40,7 @@
#if BUILDFLAG(IS_CHROMEOS) && BUILDFLAG(USE_CUPS)
// Create the socket connections to the CUPS server before engaging the
// sandbox, since new connections cannot be made after that.
-@@ -101,6 +110,7 @@ bool PrintBackendPreSandboxHook(
+@@ -92,6 +101,7 @@ bool PrintBackendPreSandboxHook(
sandbox::policy::SandboxLinux::PreSandboxHook(), options);
instance->EngageNamespaceSandboxIfPossible();
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_sandbox_print__backend__sandbox__hook__linux.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_sandbox_print__backend__sandbox__hook__linux.h
index 562558862c61..57c55c4add93 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_sandbox_print__backend__sandbox__hook__linux.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_printing_sandbox_print__backend__sandbox__hook__linux.h
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/printing/sandbox/print_backend_sandbox_hook_linux.h.orig 2022-02-07 13:39:41 UTC
+--- src/3rdparty/chromium/printing/sandbox/print_backend_sandbox_hook_linux.h.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/printing/sandbox/print_backend_sandbox_hook_linux.h
@@ -5,8 +5,13 @@
#ifndef PRINTING_SANDBOX_PRINT_BACKEND_SANDBOX_HOOK_LINUX_H_
@@ -6,8 +6,8 @@
+#include "build/build_config.h"
#include "base/component_export.h"
-+#if defined(OS_BSD)
-+#include "sandbox/policy/openbsd/sandbox_openbsd.h"
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
+#else
#include "sandbox/policy/linux/sandbox_linux.h"
+#endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_linux_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_linux_BUILD.gn
index ee65ecf8a3a5..cfdee966f711 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_linux_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_linux_BUILD.gn
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/sandbox/linux/BUILD.gn.orig 2023-02-08 09:03:45 UTC
+--- src/3rdparty/chromium/sandbox/linux/BUILD.gn.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/sandbox/linux/BUILD.gn
@@ -12,11 +12,11 @@ if (is_android) {
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_linux_services_libc__interceptor.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_linux_services_libc__interceptor.cc
index 1007bb73db43..7593efce8eed 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_linux_services_libc__interceptor.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_linux_services_libc__interceptor.cc
@@ -1,10 +1,10 @@
---- src/3rdparty/chromium/sandbox/linux/services/libc_interceptor.cc.orig 2023-01-11 09:17:16 UTC
+--- src/3rdparty/chromium/sandbox/linux/services/libc_interceptor.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/sandbox/linux/services/libc_interceptor.cc
@@ -12,7 +12,9 @@
#include <stddef.h>
#include <stdint.h>
#include <string.h>
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
#include <sys/prctl.h>
+#endif
#include <sys/socket.h>
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_BUILD.gn
index 3f5ef1a4abdd..2d970ec34ee7 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_BUILD.gn
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/sandbox/policy/BUILD.gn.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/sandbox/policy/BUILD.gn.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/sandbox/policy/BUILD.gn
@@ -35,7 +35,7 @@ component("policy") {
"//sandbox/policy/mojom",
@@ -9,7 +9,7 @@
sources += [
"linux/bpf_audio_policy_linux.cc",
"linux/bpf_audio_policy_linux.h",
-@@ -103,6 +103,27 @@ component("policy") {
+@@ -106,6 +106,27 @@ component("policy") {
"//sandbox/linux:sandbox_services",
"//sandbox/linux:seccomp_bpf",
"//sandbox/linux:suid_sandbox_client",
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_features.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_features.cc
index c85e54bcce00..b5c11fdb5f0b 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_features.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_features.cc
@@ -1,7 +1,7 @@
---- src/3rdparty/chromium/sandbox/policy/features.cc.orig 2022-11-30 08:12:58 UTC
+--- src/3rdparty/chromium/sandbox/policy/features.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/sandbox/policy/features.cc
-@@ -15,7 +15,11 @@ namespace sandbox::policy::features {
- // (Only causes an effect when feature kNetworkService is enabled.)
+@@ -19,7 +19,11 @@ namespace sandbox::policy::features {
+ // (Only causes an effect when feature kNetworkServiceInProcess is disabled.)
BASE_FEATURE(kNetworkServiceSandbox,
"NetworkServiceSandbox",
+#if BUILDFLAG(IS_BSD)
@@ -9,6 +9,6 @@
+#else
base::FEATURE_DISABLED_BY_DEFAULT);
+#endif
- #endif // !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_FUCHSIA)
- #if BUILDFLAG(IS_WIN)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ // Enables a fine-grained seccomp-BPF syscall filter for the network service.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_freebsd_sandbox__freebsd.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_freebsd_sandbox__freebsd.cc
index 113fe2c35295..2c31ebe63ce2 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_freebsd_sandbox__freebsd.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_freebsd_sandbox__freebsd.cc
@@ -120,7 +120,7 @@
+ base::FilePath cache_directory, local_directory;
+
+ base::PathService::Get(base::DIR_CACHE, &cache_directory);
-+ base::PathService::Get(base::DIR_HOME, &local_directory);
++ base::PathService::Get(base::DIR_HOME, &local_directory);
+
+ cache_directory = cache_directory.AppendASCII("chromium");
+ local_directory = local_directory.AppendASCII(".local").AppendASCII("share").AppendASCII("applications");
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_freebsd_sandbox__freebsd.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_freebsd_sandbox__freebsd.h
index 63c091d8eaab..bf58da39099d 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_freebsd_sandbox__freebsd.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_freebsd_sandbox__freebsd.h
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/sandbox/policy/freebsd/sandbox_freebsd.h.orig 2022-11-30 08:12:58 UTC
+--- src/3rdparty/chromium/sandbox/policy/freebsd/sandbox_freebsd.h.orig 2023-12-22 15:04:02 UTC
+++ src/3rdparty/chromium/sandbox/policy/freebsd/sandbox_freebsd.h
@@ -0,0 +1,278 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_mojom_sandbox.mojom b/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_mojom_sandbox.mojom
index 8534b0cee625..39ac0d6e34b4 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_mojom_sandbox.mojom
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_mojom_sandbox.mojom
@@ -1,8 +1,8 @@
---- src/3rdparty/chromium/sandbox/policy/mojom/sandbox.mojom.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/sandbox/policy/mojom/sandbox.mojom.orig 2023-07-16 15:47:57 UTC
+++ src/3rdparty/chromium/sandbox/policy/mojom/sandbox.mojom
-@@ -76,6 +76,12 @@ enum Sandbox {
- [EnableIf=is_win]
- kFileUtil,
+@@ -72,6 +72,12 @@ enum Sandbox {
+ [EnableIf=is_fuchsia]
+ kVideoCapture,
+ [EnableIf=is_openbsd]
+ kVideoCapture,
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_openbsd_sandbox__openbsd.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_openbsd_sandbox__openbsd.cc
index 79833e898578..dbc297b8a2ab 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_openbsd_sandbox__openbsd.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_openbsd_sandbox__openbsd.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/sandbox/policy/openbsd/sandbox_openbsd.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/sandbox/policy/openbsd/sandbox_openbsd.cc.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/sandbox/policy/openbsd/sandbox_openbsd.cc
-@@ -0,0 +1,399 @@
+@@ -0,0 +1,420 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
@@ -37,6 +37,8 @@
+#include "base/threading/thread.h"
+#include "base/time/time.h"
+#include "build/build_config.h"
++#include "crypto/crypto_buildflags.h"
++#include "ppapi/buildflags/buildflags.h"
+#include "sandbox/constants.h"
+#include "sandbox/linux/services/credentials.h"
+#include "sandbox/linux/services/namespace_sandbox.h"
@@ -55,7 +57,7 @@
+#include <sanitizer/common_interface_defs.h>
+#endif
+
-+#if defined(USE_NSS_CERTS)
++#if BUILDFLAG(USE_NSS_CERTS)
+#include "crypto/nss_util.h"
+#endif
+
@@ -66,10 +68,7 @@
+#define MAXTOKENS 3
+
+#define _UNVEIL_MAIN "/etc/chromium/unveil.main";
-+#define _UNVEIL_RENDERER "/etc/chromium/unveil.renderer";
+#define _UNVEIL_GPU "/etc/chromium/unveil.gpu";
-+#define _UNVEIL_PLUGIN "/etc/chromium/unveil.plugin";
-+#define _UNVEIL_UTILITY "/etc/chromium/unveil.utility";
+#define _UNVEIL_UTILITY_NETWORK "/etc/chromium/unveil.utility_network";
+#define _UNVEIL_UTILITY_AUDIO "/etc/chromium/unveil.utility_audio";
+#define _UNVEIL_UTILITY_VIDEO "/etc/chromium/unveil.utility_video";
@@ -118,40 +117,41 @@
+ base::SysInfo::NumberOfProcessors();
+ base::SysInfo::CPUModelName();
+
-+#if defined(USE_NSS_CERTS)
-+ // The main process has to initialize the ~/.pki dir which won't work
-+ // after unveil(2).
-+ if (process_type.empty())
-+ crypto::EnsureNSSInit();
++ switch (sandbox_type) {
++ case sandbox::mojom::Sandbox::kNoSandbox:
++ {
++#if BUILDFLAG(USE_NSS_CERTS)
++ // The main process has to initialize the ~/.pki dir which won't work
++ // after unveil(2).
++ crypto::EnsureNSSInit();
+#endif
++ CRYPTO_pre_sandbox_init();
+
-+ if (process_type.empty())
-+ CRYPTO_pre_sandbox_init();
++ base::FilePath cache_directory, local_directory;
+
-+ if (process_type.empty()) {
-+ base::FilePath cache_directory, local_directory;
++ base::PathService::Get(base::DIR_CACHE, &cache_directory);
++ base::PathService::Get(base::DIR_HOME, &local_directory);
+
-+ base::PathService::Get(base::DIR_CACHE, &cache_directory);
-+ base::PathService::Get(base::DIR_HOME, &local_directory);
++ cache_directory = cache_directory.AppendASCII("chromium");
++ local_directory = local_directory.AppendASCII(".local").AppendASCII("share").AppendASCII("applications");
+
-+ cache_directory = cache_directory.AppendASCII("chromium");
-+ local_directory = local_directory.AppendASCII(".local").AppendASCII("share").AppendASCII("applications");
++ if (!base::CreateDirectory(cache_directory)) {
++ LOG(ERROR) << "Failed to create " << cache_directory.value() << " directory.";
++ }
+
-+ if (!base::CreateDirectory(cache_directory)) {
-+ LOG(ERROR) << "Failed to create " << cache_directory.value() << " directory.";
-+ }
++ if (!base::CreateDirectory(local_directory)) {
++ LOG(ERROR) << "Failed to create " << local_directory.value() << " directory.";
++ }
+
-+ if (!base::CreateDirectory(local_directory)) {
-+ LOG(ERROR) << "Failed to create " << local_directory.value() << " directory.";
++ break;
+ }
++ case sandbox::mojom::Sandbox::kRenderer:
++ gfx::InitializeFonts();
++ break;
++ default:
++ break;
+ }
+
-+ if (process_type == switches::kRendererProcess)
-+ gfx::InitializeFonts();
-+
-+ if (!command_line->HasSwitch(switches::kDisableUnveil))
-+ SetUnveil(process_type, sandbox_type);
-+
+ pre_initialized_ = true;
+}
+
@@ -164,6 +164,7 @@
+ if (pstring != NULL) {
+ if (pledge(pstring, NULL) == -1)
+ goto err;
++ VLOG(5) << "pledge " << pstring;
+ } else if (ppath != NULL) {
+ fp = fopen(ppath, "r");
+ if (fp != NULL) {
@@ -172,10 +173,11 @@
+ s[strlen(s)-1] = '\0';
+ if (pledge(s, NULL) == -1)
+ goto err;
++ VLOG(5) << "pledge " << s;
+ }
+ fclose(fp);
+ } else {
-+ LOG(ERROR) << "fopen() failed, errno: " << errno;
++ LOG(ERROR) << "fopen(" << ppath << ") failed, errno: " << errno;
+ return false;
+ }
+ }
@@ -192,24 +194,25 @@
+ const char *ufile;
+ size_t len = 0, lineno = 0;
+
-+ if (process_type.empty()) {
-+ ufile = _UNVEIL_MAIN;
-+ } else if (process_type == switches::kRendererProcess) {
-+ ufile = _UNVEIL_RENDERER;
-+ } else if (process_type == switches::kGpuProcess) {
-+ ufile = _UNVEIL_GPU;
-+ } else if (process_type == switches::kPpapiPluginProcess) {
-+ ufile = _UNVEIL_PLUGIN;
-+ } else if (process_type == switches::kUtilityProcess) {
-+ if (sandbox_type == sandbox::mojom::Sandbox::kNetwork) {
++ switch (sandbox_type) {
++ case sandbox::mojom::Sandbox::kNoSandbox:
++ ufile = _UNVEIL_MAIN;
++ break;
++ case sandbox::mojom::Sandbox::kGpu:
++ ufile = _UNVEIL_GPU;
++ break;
++ case sandbox::mojom::Sandbox::kNetwork:
+ ufile = _UNVEIL_UTILITY_NETWORK;
-+ } else if (sandbox_type == sandbox::mojom::Sandbox::kAudio) {
++ break;
++ case sandbox::mojom::Sandbox::kAudio:
+ ufile = _UNVEIL_UTILITY_AUDIO;
-+ } else if (sandbox_type == sandbox::mojom::Sandbox::kVideoCapture) {
++ break;
++ case sandbox::mojom::Sandbox::kVideoCapture:
+ ufile = _UNVEIL_UTILITY_VIDEO;
-+ } else {
-+ ufile = _UNVEIL_UTILITY;
-+ }
++ break;
++ default:
++ unveil("/dev/null", "r");
++ goto done;
+ }
+
+ fp = fopen(ufile, "r");
@@ -259,7 +262,7 @@
+ LOG(ERROR) << "failed unveiling " << path << " with permissions " << tokens[1];
+ _exit(1);
+ } else {
-+ VLOG(1) << "unveiling " << path << " with permissions " << tokens[1];
++ VLOG(5) << "unveiling " << path << " with permissions " << tokens[1];
+ }
+ }
+ fclose(fp);
@@ -268,6 +271,7 @@
+ _exit(1);
+ }
+
++done:
+ unveil_initialized_ = true;
+
+ return true;
@@ -307,31 +311,46 @@
+ PCHECK(limited_as);
+ }
+
-+ if (process_type.empty()) {
-+ // XXX use a file for listing pledges of the main process for now
-+ // XXX not having the file is not a fatal error
-+ SetPledge(NULL, "/etc/chromium/pledge.main");
-+ } else if (process_type == switches::kRendererProcess) {
-+ // prot_exec needed by v8
-+ // flock needed by sqlite3 locking
-+ SetPledge("stdio rpath flock prot_exec recvfd sendfd ps", NULL);
-+ } else if (process_type == switches::kGpuProcess) {
-+ SetPledge("stdio rpath flock cpath wpath getpw drm prot_exec recvfd sendfd tmppath", NULL);
-+ } else if (process_type == switches::kPpapiPluginProcess) {
-+ // prot_exec needed by v8
-+ SetPledge("stdio rpath prot_exec recvfd sendfd", NULL);
-+ } else if (process_type == switches::kUtilityProcess) {
-+ if (sandbox_type == sandbox::mojom::Sandbox::kAudio)
++ if (hook)
++ CHECK(std::move(hook).Run(options));
++
++ if (!command_line->HasSwitch(switches::kDisableUnveil))
++ SetUnveil(process_type, sandbox_type);
++
++ switch(sandbox_type) {
++ case sandbox::mojom::Sandbox::kNoSandbox:
++ SetPledge(NULL, "/etc/chromium/pledge.main");
++ break;
++ case sandbox::mojom::Sandbox::kRenderer:
++ // prot_exec needed by v8
++ // flock needed by sqlite3 locking
++ SetPledge("stdio rpath flock prot_exec recvfd sendfd ps", NULL);
++ break;
++ case sandbox::mojom::Sandbox::kGpu:
++ SetPledge("stdio drm rpath flock cpath wpath prot_exec recvfd sendfd tmppath", NULL);
++ break;
++#if BUILDFLAG(ENABLE_PPAPI)
++ case sandbox::mojom::Sandbox::kPpapi:
++ // prot_exec needed by v8
++ SetPledge("stdio rpath prot_exec recvfd sendfd", NULL);
++ break;
++#endif
++ case sandbox::mojom::Sandbox::kAudio:
+ SetPledge(NULL, "/etc/chromium/pledge.utility_audio");
-+ else if (sandbox_type == sandbox::mojom::Sandbox::kNetwork)
++ break;
++ case sandbox::mojom::Sandbox::kNetwork:
+ SetPledge(NULL, "/etc/chromium/pledge.utility_network");
-+ else if (sandbox_type == sandbox::mojom::Sandbox::kVideoCapture)
++ break;
++ case sandbox::mojom::Sandbox::kVideoCapture:
+ SetPledge(NULL, "/etc/chromium/pledge.utility_video");
-+ else
++ break;
++ case sandbox::mojom::Sandbox::kUtility:
++ case sandbox::mojom::Sandbox::kService:
+ SetPledge("stdio rpath cpath wpath fattr flock sendfd recvfd prot_exec", NULL);
-+ } else {
-+ LOG(ERROR) << "non-pledge()'d process: " << process_type;
-+ return false;
++ break;
++ default:
++ LOG(ERROR) << "non-pledge()'d process: " << GetSandboxTypeInEnglish(sandbox_type);
++ break;
+ }
+
+ return true;
@@ -377,8 +396,10 @@
+ return "Utility";
+ case sandbox::mojom::Sandbox::kGpu:
+ return "GPU";
++#if BUILDFLAG(ENABLE_PPAPI)
+ case sandbox::mojom::Sandbox::kPpapi:
+ return "PPAPI";
++#endif
+ case sandbox::mojom::Sandbox::kNetwork:
+ return "Network";
+ case sandbox::mojom::Sandbox::kCdm:
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_sandbox.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_sandbox.cc
index 227228695db7..3adb46cdb0a8 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_sandbox.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_sandbox.cc
@@ -1,11 +1,11 @@
---- src/3rdparty/chromium/sandbox/policy/sandbox.cc.orig 2022-11-30 08:12:58 UTC
+--- src/3rdparty/chromium/sandbox/policy/sandbox.cc.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/sandbox/policy/sandbox.cc
@@ -18,6 +18,10 @@
#include "sandbox/policy/linux/sandbox_linux.h"
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_BSD)
-+#include "sandbox/policy/openbsd/sandbox_openbsd.h"
++#include "sandbox/policy/sandbox.h"
+#endif // BUILDFLAG(IS_BSD)
+
#if BUILDFLAG(IS_MAC)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_sandbox.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_sandbox.h
index cd61caa4672c..4c335f283a21 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_sandbox.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_sandbox.h
@@ -1,17 +1,19 @@
---- src/3rdparty/chromium/sandbox/policy/sandbox.h.orig 2022-02-28 16:54:41 UTC
+--- src/3rdparty/chromium/sandbox/policy/sandbox.h.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/sandbox/policy/sandbox.h
-@@ -12,6 +12,10 @@
+@@ -12,6 +12,12 @@
#include "sandbox/policy/linux/sandbox_linux.h"
#endif
-+#if BUILDFLAG(IS_BSD)
++#if BUILDFLAG(IS_OPENBSD)
+#include "sandbox/policy/openbsd/sandbox_openbsd.h"
-+#endif
++#elif BUILDFLAG(IS_FREEBSD)
++#include "sandbox/policy/freebsd/sandbox_freebsd.h"
++#endif
+
namespace sandbox {
namespace mojom {
enum class Sandbox;
-@@ -32,7 +36,7 @@ namespace policy {
+@@ -32,7 +38,7 @@ namespace policy {
class SANDBOX_POLICY_EXPORT Sandbox {
public:
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_sandbox__type.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_sandbox__type.cc
index 19c190830793..a9c05cd93b7d 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_sandbox__type.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_sandbox__type.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/sandbox/policy/sandbox_type.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/sandbox/policy/sandbox_type.cc.orig 2023-07-16 15:47:57 UTC
+++ src/3rdparty/chromium/sandbox/policy/sandbox_type.cc
-@@ -39,7 +39,7 @@ bool IsUnsandboxedSandboxType(Sandbox sandbox_type) {
+@@ -38,7 +38,7 @@ bool IsUnsandboxedSandboxType(Sandbox sandbox_type) {
#endif
case Sandbox::kAudio:
return false;
@@ -9,7 +9,7 @@
case Sandbox::kVideoCapture:
return false;
#endif
-@@ -62,7 +62,7 @@ bool IsUnsandboxedSandboxType(Sandbox sandbox_type) {
+@@ -61,7 +61,7 @@ bool IsUnsandboxedSandboxType(Sandbox sandbox_type) {
case Sandbox::kMirroring:
case Sandbox::kNaClLoader:
#endif
@@ -18,7 +18,7 @@
case Sandbox::kHardwareVideoDecoding:
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
#if BUILDFLAG(IS_CHROMEOS_ASH)
-@@ -72,7 +72,7 @@ bool IsUnsandboxedSandboxType(Sandbox sandbox_type) {
+@@ -71,7 +71,7 @@ bool IsUnsandboxedSandboxType(Sandbox sandbox_type) {
case Sandbox::kLibassistant:
#endif // BUILDFLAG(ENABLE_CROS_LIBASSISTANT)
#endif // // BUILDFLAG(IS_CHROMEOS_ASH)
@@ -27,7 +27,7 @@
case Sandbox::kZygoteIntermediateSandbox:
case Sandbox::kHardwareVideoEncoding:
#endif
-@@ -128,7 +128,7 @@ void SetCommandLineFlagsForSandboxType(base::CommandLi
+@@ -127,7 +127,7 @@ void SetCommandLineFlagsForSandboxType(base::CommandLi
#endif
case Sandbox::kPrintCompositor:
case Sandbox::kAudio:
@@ -36,9 +36,9 @@
case Sandbox::kVideoCapture:
#endif
#if BUILDFLAG(IS_WIN)
-@@ -140,10 +140,10 @@ void SetCommandLineFlagsForSandboxType(base::CommandLi
+@@ -138,10 +138,10 @@ void SetCommandLineFlagsForSandboxType(base::CommandLi
+ case Sandbox::kMediaFoundationCdm:
case Sandbox::kWindowsSystemProxyResolver:
- case Sandbox::kFileUtil:
#endif // BUILDFLAG(IS_WIN)
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
@@ -49,7 +49,7 @@
case Sandbox::kHardwareVideoEncoding:
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
#if BUILDFLAG(IS_CHROMEOS_ASH)
-@@ -171,7 +171,7 @@ void SetCommandLineFlagsForSandboxType(base::CommandLi
+@@ -169,7 +169,7 @@ void SetCommandLineFlagsForSandboxType(base::CommandLi
case Sandbox::kNaClLoader:
break;
#endif // BUILDFLAG(IS_MAC)
@@ -58,7 +58,7 @@
case Sandbox::kZygoteIntermediateSandbox:
break;
#endif
-@@ -218,7 +218,7 @@ sandbox::mojom::Sandbox SandboxTypeFromCommandLine(
+@@ -216,7 +216,7 @@ sandbox::mojom::Sandbox SandboxTypeFromCommandLine(
if (process_type == switches::kNaClBrokerProcess)
return Sandbox::kNoSandbox;
@@ -67,7 +67,7 @@
// Intermediate process gains a sandbox later.
if (process_type == switches::kZygoteProcessType)
return Sandbox::kZygoteIntermediateSandbox;
-@@ -262,7 +262,7 @@ std::string StringFromUtilitySandboxType(Sandbox sandb
+@@ -260,7 +260,7 @@ std::string StringFromUtilitySandboxType(Sandbox sandb
return switches::kUtilitySandbox;
case Sandbox::kAudio:
return switches::kAudioSandbox;
@@ -76,7 +76,7 @@
case Sandbox::kVideoCapture:
return switches::kVideoCaptureSandbox;
#endif
-@@ -292,11 +292,11 @@ std::string StringFromUtilitySandboxType(Sandbox sandb
+@@ -290,11 +290,11 @@ std::string StringFromUtilitySandboxType(Sandbox sandb
case Sandbox::kMirroring:
return switches::kMirroringSandbox;
#endif
@@ -90,7 +90,7 @@
case Sandbox::kHardwareVideoEncoding:
return switches::kHardwareVideoEncodingSandbox;
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-@@ -320,7 +320,7 @@ std::string StringFromUtilitySandboxType(Sandbox sandb
+@@ -314,7 +314,7 @@ std::string StringFromUtilitySandboxType(Sandbox sandb
#if BUILDFLAG(IS_MAC)
case Sandbox::kNaClLoader:
#endif // BUILDFLAG(IS_MAC)
@@ -99,7 +99,7 @@
case Sandbox::kZygoteIntermediateSandbox:
#endif
NOTREACHED();
-@@ -391,11 +391,11 @@ sandbox::mojom::Sandbox UtilitySandboxTypeFromString(
+@@ -382,11 +382,11 @@ sandbox::mojom::Sandbox UtilitySandboxTypeFromString(
if (sandbox_string == switches::kScreenAISandbox)
return Sandbox::kScreenAI;
#endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_switches.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_switches.cc
index 0bd48e0c9d4e..90b08ff08439 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_switches.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_switches.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/sandbox/policy/switches.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/sandbox/policy/switches.cc.orig 2023-07-16 15:47:57 UTC
+++ src/3rdparty/chromium/sandbox/policy/switches.cc
-@@ -54,10 +54,10 @@ const char kFileUtilSandbox[] = "file_util";
+@@ -53,10 +53,10 @@ const char kWindowsSystemProxyResolverSandbox[] = "pro
const char kMirroringSandbox[] = "mirroring";
#endif // BUILDFLAG(IS_MAC)
@@ -13,7 +13,7 @@
const char kHardwareVideoEncodingSandbox[] = "hardware_video_encoding";
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-@@ -104,7 +104,9 @@ const char kGpuSandboxFailuresFatal[] = "gpu-sandbox-f
+@@ -95,7 +95,9 @@ const char kGpuSandboxFailuresFatal[] = "gpu-sandbox-f
// Meant to be used as a browser-level switch for testing purposes only.
const char kNoSandbox[] = "no-sandbox";
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_switches.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_switches.h
index 7b40176617d3..592df44c1c2b 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_switches.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_sandbox_policy_switches.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/sandbox/policy/switches.h.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/sandbox/policy/switches.h.orig 2023-07-16 15:47:57 UTC
+++ src/3rdparty/chromium/sandbox/policy/switches.h
-@@ -57,10 +57,10 @@ SANDBOX_POLICY_EXPORT extern const char kFileUtilSandb
+@@ -56,10 +56,10 @@ SANDBOX_POLICY_EXPORT extern const char kWindowsSystem
SANDBOX_POLICY_EXPORT extern const char kMirroringSandbox[];
#endif // BUILDFLAG(IS_MAC)
@@ -13,7 +13,7 @@
SANDBOX_POLICY_EXPORT extern const char kHardwareVideoEncodingSandbox[];
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-@@ -82,7 +82,8 @@ SANDBOX_POLICY_EXPORT extern const char kDisableSetuid
+@@ -80,7 +80,8 @@ SANDBOX_POLICY_EXPORT extern const char kDisableSetuid
SANDBOX_POLICY_EXPORT extern const char kGpuSandboxAllowSysVShm[];
SANDBOX_POLICY_EXPORT extern const char kGpuSandboxFailuresFatal[];
SANDBOX_POLICY_EXPORT extern const char kNoSandbox[];
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_audio_audio__sandbox__hook__linux.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_audio_audio__sandbox__hook__linux.cc
index faadfc71d1b0..b1f86a21a7c0 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_audio_audio__sandbox__hook__linux.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_audio_audio__sandbox__hook__linux.cc
@@ -1,10 +1,10 @@
---- src/3rdparty/chromium/services/audio/audio_sandbox_hook_linux.cc.orig 2022-02-07 13:39:41 UTC
+--- src/3rdparty/chromium/services/audio/audio_sandbox_hook_linux.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/services/audio/audio_sandbox_hook_linux.cc
@@ -143,6 +143,7 @@ void AddPulseAudioFilePermissions(
}
#endif
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
std::vector<BrokerFilePermission> GetAudioFilePermissions() {
std::vector<BrokerFilePermission> permissions{
BrokerFilePermission::ReadOnly("/dev/urandom"),
@@ -17,7 +17,7 @@
} // namespace
bool AudioPreSandboxHook(sandbox::policy::SandboxLinux::Options options) {
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
LoadAudioLibraries();
auto* instance = sandbox::policy::SandboxLinux::GetInstance();
instance->StartBrokerProcess(MakeBrokerCommandSet({
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_audio_audio__sandbox__hook__linux.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_audio_audio__sandbox__hook__linux.h
index 14582b531ce2..bbb595ea5940 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_audio_audio__sandbox__hook__linux.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_audio_audio__sandbox__hook__linux.h
@@ -1,11 +1,13 @@
---- src/3rdparty/chromium/services/audio/audio_sandbox_hook_linux.h.orig 2022-02-07 13:39:41 UTC
+--- src/3rdparty/chromium/services/audio/audio_sandbox_hook_linux.h.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/services/audio/audio_sandbox_hook_linux.h
-@@ -5,7 +5,11 @@
+@@ -5,7 +5,13 @@
#ifndef SERVICES_AUDIO_AUDIO_SANDBOX_HOOK_LINUX_H_
#define SERVICES_AUDIO_AUDIO_SANDBOX_HOOK_LINUX_H_
-+#if defined(OS_BSD)
-+#include "sandbox/policy/openbsd/sandbox_openbsd.h"
++#include "build/build_config.h"
++
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
+#else
#include "sandbox/policy/linux/sandbox_linux.h"
+#endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_cert__verifier_cert__verifier__creation.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_cert__verifier_cert__verifier__creation.cc
index 133b559de600..992107b54222 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_cert__verifier_cert__verifier__creation.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_cert__verifier_cert__verifier__creation.cc
@@ -1,7 +1,7 @@
---- src/3rdparty/chromium/services/cert_verifier/cert_verifier_creation.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/services/cert_verifier/cert_verifier_creation.cc.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/services/cert_verifier/cert_verifier_creation.cc
-@@ -12,7 +12,7 @@
- #include "net/cert_net/cert_net_fetcher_url_request.h"
+@@ -13,7 +13,7 @@
+ #include "net/cert/multi_threaded_cert_verifier.h"
#include "net/net_buildflags.h"
-#if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
@@ -9,16 +9,16 @@
#include "net/cert/cert_verify_proc_builtin.h"
#include "net/cert/internal/system_trust_store.h"
#endif
-@@ -89,7 +89,7 @@ class OldDefaultCertVerifyProcFactory : public net::Ce
+@@ -112,7 +112,7 @@ class CertVerifyProcFactoryImpl : public net::CertVeri
user_slot_restriction_ ? crypto::ScopedPK11Slot(PK11_ReferenceSlot(
user_slot_restriction_.get()))
: nullptr));
-#elif BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX)
+#elif BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
- verify_proc = net::CreateCertVerifyProcBuiltin(
- std::move(cert_net_fetcher), net::CreateSslSystemTrustStore());
- #else
-@@ -226,6 +226,7 @@ std::unique_ptr<net::CertVerifierWithUpdatableProc> Cr
+ return net::CreateCertVerifyProcBuiltin(std::move(cert_net_fetcher),
+ std::move(crl_set),
+ net::CreateSslSystemTrustStore());
+@@ -212,6 +212,7 @@ std::unique_ptr<net::CertVerifierWithUpdatableProc> Cr
bool IsUsingCertNetFetcher() {
#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \
BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || \
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_compute__pressure_cpu__probe.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_compute__pressure_cpu__probe.cc
index 401ce80fbf17..34292de6c8f9 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_compute__pressure_cpu__probe.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_compute__pressure_cpu__probe.cc
@@ -1,8 +1,8 @@
---- src/3rdparty/chromium/services/device/compute_pressure/cpu_probe.cc.orig 2022-11-30 08:12:58 UTC
+--- src/3rdparty/chromium/services/device/compute_pressure/cpu_probe.cc.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/services/device/compute_pressure/cpu_probe.cc
-@@ -29,6 +29,7 @@ std::unique_ptr<CpuProbe> CpuProbe::Create() {
+@@ -44,6 +44,7 @@ std::unique_ptr<CpuProbe> CpuProbe::Create(
#elif BUILDFLAG(IS_MAC)
- return CpuProbeMac::Create();
+ return CpuProbeMac::Create(sampling_interval, std::move(sampling_callback));
#else
+ NOTIMPLEMENTED();
return nullptr;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_geolocation_location__arbitrator.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_geolocation_location__arbitrator.cc
index c62c8e44c171..118fd20757cb 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_geolocation_location__arbitrator.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_geolocation_location__arbitrator.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/services/device/geolocation/location_arbitrator.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/services/device/geolocation/location_arbitrator.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/services/device/geolocation/location_arbitrator.cc
-@@ -162,7 +162,7 @@ LocationArbitrator::NewSystemLocationProvider() {
+@@ -190,7 +190,7 @@ LocationArbitrator::NewSystemLocationProvider() {
std::unique_ptr<LocationProvider>
LocationArbitrator::NewSystemLocationProvider() {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_hid_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_hid_BUILD.gn
index 5d27502e2a44..5ab6b092215f 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_hid_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_hid_BUILD.gn
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/services/device/hid/BUILD.gn.orig 2022-11-30 08:12:58 UTC
+--- src/3rdparty/chromium/services/device/hid/BUILD.gn.orig 2023-07-16 15:47:57 UTC
+++ src/3rdparty/chromium/services/device/hid/BUILD.gn
-@@ -35,7 +35,26 @@ source_set("hid") {
+@@ -34,7 +34,26 @@ source_set("hid") {
"//services/device/public/mojom",
]
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_public_cpp_generic__sensor_sensor__reading.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_public_cpp_generic__sensor_sensor__reading.h
new file mode 100644
index 000000000000..021f577d67fc
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_public_cpp_generic__sensor_sensor__reading.h
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/services/device/public/cpp/generic_sensor/sensor_reading.h.orig 2023-12-12 22:08:45 UTC
++++ src/3rdparty/chromium/services/device/public/cpp/generic_sensor/sensor_reading.h
+@@ -8,6 +8,8 @@
+ #include <stddef.h>
+ #include <stdint.h>
+
++#include <cstdint>
++
+ #include <type_traits>
+
+ namespace device {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_public_mojom_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_public_mojom_BUILD.gn
index 0699fae497ce..88ef09f6821b 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_public_mojom_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_public_mojom_BUILD.gn
@@ -1,7 +1,7 @@
---- src/3rdparty/chromium/services/device/public/mojom/BUILD.gn.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/services/device/public/mojom/BUILD.gn.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/services/device/public/mojom/BUILD.gn
-@@ -90,7 +90,7 @@ mojom("device_service") {
- cpp_only = true
+@@ -97,7 +97,7 @@ mojom("device_service") {
+ enable_js_fuzzing = false
enabled_features = []
- if ((is_linux || is_chromeos) && use_udev) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_serial_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_serial_BUILD.gn
new file mode 100644
index 000000000000..9496dbd69359
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_serial_BUILD.gn
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/services/device/serial/BUILD.gn.orig 2022-11-30 08:12:58 UTC
++++ src/3rdparty/chromium/services/device/serial/BUILD.gn
+@@ -5,7 +5,7 @@
+ import("//build/config/chromeos/ui_mode.gni")
+ import("//build/config/features.gni")
+
+-if (is_win || ((is_linux || is_chromeos) && use_udev) || is_mac) {
++if (is_win || ((!is_bsd && is_linux || is_chromeos) && use_udev) || is_mac) {
+ config("platform_support") {
+ visibility = [ ":serial" ]
+ if (is_win) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_serial_serial__device__enumerator.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_serial_serial__device__enumerator.cc
new file mode 100644
index 000000000000..4551edb6aefa
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_serial_serial__device__enumerator.cc
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/services/device/serial/serial_device_enumerator.cc.orig 2023-03-09 06:31:50 UTC
++++ src/3rdparty/chromium/services/device/serial/serial_device_enumerator.cc
+@@ -12,7 +12,7 @@
+ #include "build/build_config.h"
+ #include "components/device_event_log/device_event_log.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "services/device/serial/serial_device_enumerator_linux.h"
+ #elif BUILDFLAG(IS_MAC)
+ #include "services/device/serial/serial_device_enumerator_mac.h"
+@@ -25,7 +25,7 @@ namespace device {
+ // static
+ std::unique_ptr<SerialDeviceEnumerator> SerialDeviceEnumerator::Create(
+ scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ return SerialDeviceEnumeratorLinux::Create();
+ #elif BUILDFLAG(IS_MAC)
+ return std::make_unique<SerialDeviceEnumeratorMac>();
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_serial_serial__io__handler__posix.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_serial_serial__io__handler__posix.cc
new file mode 100644
index 000000000000..b3316232bea7
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_serial_serial__io__handler__posix.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/services/device/serial/serial_io_handler_posix.cc.orig 2023-03-09 06:31:50 UTC
++++ src/3rdparty/chromium/services/device/serial/serial_io_handler_posix.cc
+@@ -68,7 +68,7 @@ bool BitrateToSpeedConstant(int bitrate, speed_t* spee
+ BITRATE_TO_SPEED_CASE(9600)
+ BITRATE_TO_SPEED_CASE(19200)
+ BITRATE_TO_SPEED_CASE(38400)
+-#if !BUILDFLAG(IS_MAC)
++#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD)
+ BITRATE_TO_SPEED_CASE(57600)
+ BITRATE_TO_SPEED_CASE(115200)
+ BITRATE_TO_SPEED_CASE(230400)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_time__zone__monitor_time__zone__monitor__linux.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_time__zone__monitor_time__zone__monitor__linux.cc
index bb7e24c66c52..fce74f22c9bb 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_time__zone__monitor_time__zone__monitor__linux.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_time__zone__monitor_time__zone__monitor__linux.cc
@@ -1,10 +1,10 @@
---- src/3rdparty/chromium/services/device/time_zone_monitor/time_zone_monitor_linux.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/services/device/time_zone_monitor/time_zone_monitor_linux.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/services/device/time_zone_monitor/time_zone_monitor_linux.cc
@@ -131,7 +131,11 @@ class TimeZoneMonitorLinuxImpl
// false positives are harmless, assuming the false positive rate is
// reasonable.
const char* const kFilesToWatch[] = {
-+#if defined(OS_BSD)
++#if BUILDFLAG(IS_BSD)
+ "/etc/localtime",
+#else
"/etc/localtime", "/etc/timezone", "/etc/TZ",
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_usb_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_usb_BUILD.gn
index 4911a73de228..0f25748aedb0 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_usb_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_device_usb_BUILD.gn
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/services/device/usb/BUILD.gn.orig 2022-10-29 13:32:26 UTC
+--- src/3rdparty/chromium/services/device/usb/BUILD.gn.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/services/device/usb/BUILD.gn
-@@ -103,15 +103,17 @@ static_library("usb") {
+@@ -89,15 +89,17 @@ static_library("usb") {
deps += [ "//third_party/re2" ]
}
@@ -27,7 +27,7 @@
# These sources and deps are required for libusb.
# TODO(https://crbug.com/1096743) Remove these sources.
-@@ -135,6 +137,13 @@ static_library("usb") {
+@@ -121,6 +123,13 @@ static_library("usb") {
deps += [ "//third_party/libusb" ]
}
@@ -41,7 +41,7 @@
if (is_linux || is_chromeos) {
sources += [
"usb_device_linux.cc",
-@@ -152,7 +161,7 @@ static_library("usb") {
+@@ -138,7 +147,7 @@ static_library("usb") {
deps += [ "//device/udev_linux" ]
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_BUILD.gn
index 8b746237f99b..dd715b10d896 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_BUILD.gn
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/services/network/BUILD.gn.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/services/network/BUILD.gn.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/services/network/BUILD.gn
-@@ -339,7 +339,6 @@ if (is_linux || is_chromeos) {
+@@ -393,7 +393,6 @@ if (is_linux || is_chromeos) {
]
deps = [
"//base:base",
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_network__context.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_network__context.cc
new file mode 100644
index 000000000000..5c50f6899215
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_network__context.cc
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/services/network/network_context.cc.orig 2023-12-12 22:08:45 UTC
++++ src/3rdparty/chromium/services/network/network_context.cc
+@@ -447,7 +447,7 @@ NetworkContext::NetworkContextHttpAuthPreferences::
+ NetworkContext::NetworkContextHttpAuthPreferences::
+ ~NetworkContextHttpAuthPreferences() = default;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool NetworkContext::NetworkContextHttpAuthPreferences::AllowGssapiLibraryLoad()
+ const {
+ if (network_service_) {
+@@ -2322,7 +2322,7 @@ void NetworkContext::OnHttpAuthDynamicParamsChanged(
+ http_auth_dynamic_network_service_params->android_negotiate_account_type);
+ #endif // BUILDFLAG(IS_ANDROID)
+
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ http_auth_merged_preferences_.set_allow_gssapi_library_load(
+ http_auth_dynamic_network_service_params->allow_gssapi_library_load);
+ #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_network__context.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_network__context.h
new file mode 100644
index 000000000000..ef65756f7dca
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_network__context.h
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/services/network/network_context.h.orig 2023-12-12 22:08:45 UTC
++++ src/3rdparty/chromium/services/network/network_context.h
+@@ -668,7 +668,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
+ public:
+ explicit NetworkContextHttpAuthPreferences(NetworkService* network_service);
+ ~NetworkContextHttpAuthPreferences() override;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool AllowGssapiLibraryLoad() const override;
+ #endif // BUILDFLAG(IS_LINUX)
+ private:
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_network__sandbox__hook__linux.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_network__sandbox__hook__linux.cc
index ea09515f2353..a7e1ceef53df 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_network__sandbox__hook__linux.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_network__sandbox__hook__linux.cc
@@ -1,26 +1,37 @@
---- src/3rdparty/chromium/services/network/network_sandbox_hook_linux.cc.orig 2022-03-19 12:56:15 UTC
+--- src/3rdparty/chromium/services/network/network_sandbox_hook_linux.cc.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/services/network/network_sandbox_hook_linux.cc
-@@ -26,12 +26,15 @@ sandbox::syscall_broker::BrokerCommandSet GetNetworkBr
- });
- }
+@@ -14,11 +14,14 @@
+ #include "sandbox/policy/features.h"
+ #include "third_party/abseil-cpp/absl/types/optional.h"
-+#if !defined(OS_BSD)
- std::vector<BrokerFilePermission> GetNetworkFilePermissions() {
- // TODO(tsepez): remove universal permission under filesystem root.
- return {BrokerFilePermission::ReadWriteCreateRecursive("/")};
- }
++#if !BUILDFLAG(IS_BSD)
+ using sandbox::syscall_broker::BrokerFilePermission;
+ using sandbox::syscall_broker::MakeBrokerCommandSet;
+#endif
- bool NetworkPreSandboxHook(sandbox::policy::SandboxLinux::Options options) {
-+#if !defined(OS_BSD)
- auto* instance = sandbox::policy::SandboxLinux::GetInstance();
+ namespace network {
- instance->StartBrokerProcess(
-@@ -39,6 +42,7 @@ bool NetworkPreSandboxHook(sandbox::policy::SandboxLin
- sandbox::policy::SandboxLinux::PreSandboxHook(), options);
++#if !BUILDFLAG(IS_BSD)
+ sandbox::syscall_broker::BrokerCommandSet GetNetworkBrokerCommandSet() {
+ return MakeBrokerCommandSet({
+ sandbox::syscall_broker::COMMAND_ACCESS,
+@@ -102,9 +105,11 @@ void LoadNetworkLibraries() {
+ }
+ }
+ #endif // BUILDFLAG(IS_CHROMEOS)
++#endif
- instance->EngageNamespaceSandboxIfPossible();
+ bool NetworkPreSandboxHook(std::vector<std::string> network_context_parent_dirs,
+ sandbox::policy::SandboxLinux::Options options) {
++#if !BUILDFLAG(IS_BSD)
+ #if BUILDFLAG(IS_CHROMEOS)
+ LoadNetworkLibraries();
+ #endif
+@@ -117,6 +122,7 @@ bool NetworkPreSandboxHook(std::vector<std::string> ne
+ GetNetworkBrokerCommandSet(),
+ GetNetworkFilePermissions(std::move(network_context_parent_dirs)),
+ sandbox::policy::SandboxLinux::PreSandboxHook(), options);
+#endif
+
return true;
}
-
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_network__sandbox__hook__linux.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_network__sandbox__hook__linux.h
index ebc2e1117b38..b7f9e169b92b 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_network__sandbox__hook__linux.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_network__sandbox__hook__linux.h
@@ -1,11 +1,11 @@
---- src/3rdparty/chromium/services/network/network_sandbox_hook_linux.h.orig 2022-02-07 13:39:41 UTC
+--- src/3rdparty/chromium/services/network/network_sandbox_hook_linux.h.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/services/network/network_sandbox_hook_linux.h
-@@ -10,7 +10,11 @@
+@@ -6,7 +6,11 @@
+ #define SERVICES_NETWORK_NETWORK_SANDBOX_HOOK_LINUX_H_
+
#include "base/component_export.h"
- #include "sandbox/linux/syscall_broker/broker_command.h"
- #include "sandbox/linux/syscall_broker/broker_file_permission.h"
-+#if defined(OS_BSD)
-+#include "sandbox/policy/openbsd/sandbox_openbsd.h"
++#if defined(__OpenBSD__) || defined(__FreeBSD__)
++#include "sandbox/policy/sandbox.h"
+#else
#include "sandbox/policy/linux/sandbox_linux.h"
+#endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_network__service.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_network__service.cc
index 41b2a15c06f6..0387004ccf70 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_network__service.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_network__service.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/services/network/network_service.cc.orig 2023-10-03 19:49:54 UTC
+--- src/3rdparty/chromium/services/network/network_service.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/services/network/network_service.cc
-@@ -92,7 +92,7 @@
+@@ -96,7 +96,7 @@
#include "third_party/boringssl/src/include/openssl/cpu.h"
#endif
@@ -8,4 +8,22 @@
+#if ((BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS)) || BUILDFLAG(IS_BSD)) || \
BUILDFLAG(IS_CHROMEOS_LACROS)
- #include "components/os_crypt/key_storage_config_linux.h"
+ #include "components/os_crypt/sync/key_storage_config_linux.h"
+@@ -1003,7 +1003,7 @@ void NetworkService::SetExplicitlyAllowedPorts(
+ net::SetExplicitlyAllowedPorts(ports);
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void NetworkService::SetGssapiLibraryLoadObserver(
+ mojo::PendingRemote<mojom::GssapiLibraryLoadObserver>
+ gssapi_library_load_observer) {
+@@ -1085,7 +1085,7 @@ NetworkService::CreateHttpAuthHandlerFactory(NetworkCo
+ );
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void NetworkService::OnBeforeGssapiLibraryLoad() {
+ if (gssapi_library_load_observer_.is_bound()) {
+ gssapi_library_load_observer_->OnBeforeGssapiLibraryLoad();
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_network__service.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_network__service.h
new file mode 100644
index 000000000000..49004dda8f15
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_network__service.h
@@ -0,0 +1,29 @@
+--- src/3rdparty/chromium/services/network/network_service.h.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/services/network/network_service.h
+@@ -235,7 +235,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkService
+ mojo::PendingReceiver<mojom::NetworkServiceTest> receiver) override;
+ void SetFirstPartySets(net::GlobalFirstPartySets sets) override;
+ void SetExplicitlyAllowedPorts(const std::vector<uint16_t>& ports) override;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void SetGssapiLibraryLoadObserver(
+ mojo::PendingRemote<mojom::GssapiLibraryLoadObserver>
+ gssapi_library_load_observer) override;
+@@ -266,7 +266,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkService
+ std::unique_ptr<net::HttpAuthHandlerFactory> CreateHttpAuthHandlerFactory(
+ NetworkContext* network_context);
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // This is called just before a GSSAPI library may be loaded.
+ void OnBeforeGssapiLibraryLoad();
+ #endif // BUILDFLAG(IS_LINUX)
+@@ -507,7 +507,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkService
+ // leaking stale listeners between tests.
+ std::unique_ptr<net::NetworkChangeNotifier> mock_network_change_notifier_;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ mojo::Remote<mojom::GssapiLibraryLoadObserver> gssapi_library_load_observer_;
+ #endif // BUILDFLAG(IS_LINUX)
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_public_cpp_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_public_cpp_BUILD.gn
new file mode 100644
index 000000000000..98fa9af485a3
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_public_cpp_BUILD.gn
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/services/network/public/cpp/BUILD.gn.orig 2023-12-12 22:08:45 UTC
++++ src/3rdparty/chromium/services/network/public/cpp/BUILD.gn
+@@ -481,7 +481,7 @@ jumbo_component("cpp_base") {
+ sources += [ "transferable_directory_fuchsia.cc" ]
+ }
+
+- if (is_linux) {
++ if (is_linux && !is_bsd) {
+ sources += [
+ "network_interface_change_listener_mojom_traits.cc",
+ "network_interface_change_listener_mojom_traits.h",
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_public_cpp_features.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_public_cpp_features.cc
new file mode 100644
index 000000000000..d2cc30bdf15a
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_public_cpp_features.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/services/network/public/cpp/features.cc.orig 2023-12-12 22:08:45 UTC
++++ src/3rdparty/chromium/services/network/public/cpp/features.cc
+@@ -383,7 +383,7 @@ CONSTINIT const base::Feature kOutOfProcessSystemDnsRe
+ // that can be adequately sandboxed.
+ CONSTINIT const base::Feature kOutOfProcessSystemDnsResolution(
+ "OutOfProcessSystemDnsResolution",
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+ base::FEATURE_DISABLED_BY_DEFAULT
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_public_mojom_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_public_mojom_BUILD.gn
new file mode 100644
index 000000000000..05b8728422f8
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_public_mojom_BUILD.gn
@@ -0,0 +1,25 @@
+--- src/3rdparty/chromium/services/network/public/mojom/BUILD.gn.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/services/network/public/mojom/BUILD.gn
+@@ -515,11 +515,11 @@ mojom("url_loader_base") {
+ }
+
+ enabled_features = []
+- if (is_android || is_chromeos || is_linux) {
++ if (!is_bsd && (is_android || is_chromeos || is_linux)) {
+ enabled_features += [ "network_change_notifier_in_browser" ]
+ }
+
+- if (is_linux) {
++ if (is_linux && !is_bsd) {
+ # TODO(crbug.com/1431866): Remove this once is_linux in the mojom IDL does
+ # not include lacros.
+ enabled_features += [ "use_network_interface_change_listener" ]
+@@ -1435,7 +1435,7 @@ mojom("mojom") {
+ }
+ }
+
+- if (is_linux) {
++ if (is_linux && !is_bsd) {
+ # TODO(crbug.com/1431866): Remove this once is_linux in the mojom IDL does
+ # not include lacros.
+ enabled_features += [ "use_network_interface_change_listener" ]
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_shared__dictionary_shared__dictionary__writer__in__memory.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_shared__dictionary_shared__dictionary__writer__in__memory.h
new file mode 100644
index 000000000000..be502691c819
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_network_shared__dictionary_shared__dictionary__writer__in__memory.h
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/services/network/shared_dictionary/shared_dictionary_writer_in_memory.h.orig 2023-08-17 07:33:31 UTC
++++ src/3rdparty/chromium/services/network/shared_dictionary/shared_dictionary_writer_in_memory.h
+@@ -9,6 +9,8 @@
+ #include <string>
+ #include <vector>
+
++#include <vector>
++
+ #include "base/component_export.h"
+ #include "base/functional/callback.h"
+ #include "crypto/secure_hash.h"
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_resource__coordinator_memory__instrumentation_queued__request__dispatcher.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_resource__coordinator_memory__instrumentation_queued__request__dispatcher.cc
index 3b7b3cff2c06..13f892b50c1b 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_resource__coordinator_memory__instrumentation_queued__request__dispatcher.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_resource__coordinator_memory__instrumentation_queued__request__dispatcher.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/services/resource_coordinator/memory_instrumentation/queued_request_dispatcher.cc.orig 2022-11-30 08:12:58 UTC
+--- src/3rdparty/chromium/services/resource_coordinator/memory_instrumentation/queued_request_dispatcher.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/services/resource_coordinator/memory_instrumentation/queued_request_dispatcher.cc
-@@ -54,7 +54,7 @@ uint32_t CalculatePrivateFootprintKb(const mojom::RawO
+@@ -53,7 +53,7 @@ uint32_t CalculatePrivateFootprintKb(const mojom::RawO
uint32_t shared_resident_kb) {
DCHECK(os_dump.platform_private_footprint);
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
@@ -9,7 +9,7 @@
uint64_t rss_anon_bytes = os_dump.platform_private_footprint->rss_anon_bytes;
uint64_t vm_swap_bytes = os_dump.platform_private_footprint->vm_swap_bytes;
return (rss_anon_bytes + vm_swap_bytes) / 1024;
-@@ -82,7 +82,7 @@ memory_instrumentation::mojom::OSMemDumpPtr CreatePubl
+@@ -81,7 +81,7 @@ memory_instrumentation::mojom::OSMemDumpPtr CreatePubl
os_dump->is_peak_rss_resettable = internal_os_dump.is_peak_rss_resettable;
os_dump->private_footprint_kb =
CalculatePrivateFootprintKb(internal_os_dump, shared_resident_kb);
@@ -18,7 +18,7 @@
os_dump->private_footprint_swap_kb =
internal_os_dump.platform_private_footprint->vm_swap_bytes / 1024;
#endif
-@@ -261,7 +261,7 @@ void QueuedRequestDispatcher::SetUpAndDispatch(
+@@ -217,7 +217,7 @@ void QueuedRequestDispatcher::SetUpAndDispatch(
// On most platforms each process can dump data about their own process
// so ask each process to do so Linux is special see below.
@@ -27,7 +27,7 @@
request->pending_responses.insert({client_info.pid, ResponseType::kOSDump});
client->RequestOSMemoryDump(request->memory_map_option(),
{base::kNullProcessId},
-@@ -276,7 +276,7 @@ void QueuedRequestDispatcher::SetUpAndDispatch(
+@@ -232,7 +232,7 @@ void QueuedRequestDispatcher::SetUpAndDispatch(
// In some cases, OS stats can only be dumped from a privileged process to
// get around to sandboxing/selinux restrictions (see crbug.com/461788).
@@ -36,7 +36,7 @@
std::vector<base::ProcessId> pids;
mojom::ClientProcess* browser_client = nullptr;
base::ProcessId browser_client_pid = base::kNullProcessId;
-@@ -322,7 +322,7 @@ void QueuedRequestDispatcher::SetUpAndDispatchVmRegion
+@@ -278,7 +278,7 @@ void QueuedRequestDispatcher::SetUpAndDispatchVmRegion
const OsCallback& os_callback) {
// On Linux, OS stats can only be dumped from a privileged process to
// get around to sandboxing/selinux restrictions (see crbug.com/461788).
@@ -45,7 +45,7 @@
mojom::ClientProcess* browser_client = nullptr;
base::ProcessId browser_client_pid = 0;
for (const auto& client_info : clients) {
-@@ -372,7 +372,7 @@ QueuedRequestDispatcher::FinalizeVmRegionRequest(
+@@ -328,7 +328,7 @@ QueuedRequestDispatcher::FinalizeVmRegionRequest(
// each client process provides 1 OS dump, % the case where the client is
// disconnected mid dump.
OSMemDumpMap& extra_os_dumps = response.second.os_dumps;
@@ -54,7 +54,7 @@
for (auto& kv : extra_os_dumps) {
auto pid = kv.first == base::kNullProcessId ? original_pid : kv.first;
DCHECK(results.find(pid) == results.end());
-@@ -434,7 +434,7 @@ void QueuedRequestDispatcher::Finalize(QueuedRequest*
+@@ -389,7 +389,7 @@ void QueuedRequestDispatcher::Finalize(QueuedRequest*
// crash). In the latter case (OS_LINUX) we expect the full map to come
// from the browser process response.
OSMemDumpMap& extra_os_dumps = response.second.os_dumps;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_resource__coordinator_public_cpp_memory__instrumentation_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_resource__coordinator_public_cpp_memory__instrumentation_BUILD.gn
index 7a5ee75672b2..04cda496465e 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_resource__coordinator_public_cpp_memory__instrumentation_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_resource__coordinator_public_cpp_memory__instrumentation_BUILD.gn
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/services/resource_coordinator/public/cpp/memory_instrumentation/BUILD.gn.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/services/resource_coordinator/public/cpp/memory_instrumentation/BUILD.gn.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/services/resource_coordinator/public/cpp/memory_instrumentation/BUILD.gn
-@@ -33,8 +33,12 @@ component("memory_instrumentation") {
+@@ -29,8 +29,12 @@ component("memory_instrumentation") {
sources += [ "os_metrics_win.cc" ]
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_tracing_public_cpp_stack__sampling_tracing__sampler__profiler.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_tracing_public_cpp_stack__sampling_tracing__sampler__profiler.cc
index 98424621078e..da4d13bb211d 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_tracing_public_cpp_stack__sampling_tracing__sampler__profiler.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_tracing_public_cpp_stack__sampling_tracing__sampler__profiler.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc
@@ -39,7 +39,7 @@
#include "third_party/perfetto/protos/perfetto/trace/track_event/process_descriptor.pbzero.h"
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_video__capture_video__capture__service__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_video__capture_video__capture__service__impl.cc
new file mode 100644
index 000000000000..75a613c10a31
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_video__capture_video__capture__service__impl.cc
@@ -0,0 +1,38 @@
+--- src/3rdparty/chromium/services/video_capture/video_capture_service_impl.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/services/video_capture/video_capture_service_impl.cc
+@@ -40,7 +40,7 @@
+ #include "services/video_capture/lacros/device_factory_adapter_lacros.h"
+ #endif // BUILDFLAG(IS_CHROMEOS_LACROS)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "media/capture/capture_switches.h"
+ #include "media/capture/video/video_capture_gpu_channel_host.h"
+ #include "services/viz/public/cpp/gpu/context_provider_command_buffer.h"
+@@ -107,7 +107,7 @@ class VideoCaptureServiceImpl::GpuDependenciesContext
+ this};
+ };
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ // Intended usage of this class is to create viz::Gpu in utility process and
+ // connect to viz::GpuClient of browser process, which will call to Gpu service.
+ // Also, this class holds the viz::ContextProvider to listen and monitor Gpu
+@@ -288,7 +288,7 @@ void VideoCaptureServiceImpl::LazyInitializeGpuDepende
+ if (!gpu_dependencies_context_)
+ gpu_dependencies_context_ = std::make_unique<GpuDependenciesContext>();
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ if (switches::IsVideoCaptureUseGpuMemoryBufferEnabled()) {
+ if (!viz_gpu_context_provider_) {
+ viz_gpu_context_provider_ =
+@@ -384,7 +384,7 @@ void VideoCaptureServiceImpl::OnGpuInfoUpdate(const CH
+ }
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ void VideoCaptureServiceImpl::SetVizGpu(std::unique_ptr<viz::Gpu> viz_gpu) {
+ viz_gpu_ = std::move(viz_gpu);
+ }
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_video__capture_video__capture__service__impl.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_video__capture_video__capture__service__impl.h
new file mode 100644
index 000000000000..acb5813fd8f4
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_services_video__capture_video__capture__service__impl.h
@@ -0,0 +1,29 @@
+--- src/3rdparty/chromium/services/video_capture/video_capture_service_impl.h.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/services/video_capture/video_capture_service_impl.h
+@@ -24,7 +24,7 @@
+ #include "services/video_capture/ash/video_capture_device_factory_ash.h"
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "services/viz/public/cpp/gpu/gpu.h"
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
+
+@@ -62,7 +62,7 @@ class VideoCaptureServiceImpl : public mojom::VideoCap
+ #if BUILDFLAG(IS_WIN)
+ void OnGpuInfoUpdate(const CHROME_LUID& luid) override;
+ #endif
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ void SetVizGpu(std::unique_ptr<viz::Gpu> viz_gpu);
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
+ private:
+@@ -87,7 +87,7 @@ class VideoCaptureServiceImpl : public mojom::VideoCap
+ factory_receivers_ash_;
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ class VizGpuContextProvider;
+ std::unique_ptr<VizGpuContextProvider> viz_gpu_context_provider_;
+ std::unique_ptr<viz::Gpu> viz_gpu_;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_skia_ext_SkMemory__new__handler.cpp b/www/qt6-webengine/files/patch-src_3rdparty_chromium_skia_ext_SkMemory__new__handler.cpp
index 55bfcd8fe428..151e9652875e 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_skia_ext_SkMemory__new__handler.cpp
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_skia_ext_SkMemory__new__handler.cpp
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/skia/ext/SkMemory_new_handler.cpp.orig 2022-03-25 21:59:56 UTC
+--- src/3rdparty/chromium/skia/ext/SkMemory_new_handler.cpp.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/skia/ext/SkMemory_new_handler.cpp
-@@ -79,7 +79,7 @@ static void* malloc_nothrow(size_t size) {
+@@ -86,7 +86,7 @@ static void* malloc_nothrow(size_t size) {
// TODO(b.kelemen): we should always use UncheckedMalloc but currently it
// doesn't work as intended everywhere.
void* result;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_skia_ext_skcolorspace__trfn.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_skia_ext_skcolorspace__trfn.cc
new file mode 100644
index 000000000000..cb22466885c4
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_skia_ext_skcolorspace__trfn.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/skia/ext/skcolorspace_trfn.cc.orig 2023-08-17 07:33:31 UTC
++++ src/3rdparty/chromium/skia/ext/skcolorspace_trfn.cc
+@@ -2,6 +2,8 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include <cmath>
++
+ #include "skia/ext/skcolorspace_trfn.h"
+
+ #include <cmath>
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_abseil-cpp_absl_base_config.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_abseil-cpp_absl_base_config.h
index d0ca2bd9ca3f..f34a7506e942 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_abseil-cpp_absl_base_config.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_abseil-cpp_absl_base_config.h
@@ -1,21 +1,21 @@
---- src/3rdparty/chromium/third_party/abseil-cpp/absl/base/config.h.orig 2022-11-30 08:12:58 UTC
+--- src/3rdparty/chromium/third_party/abseil-cpp/absl/base/config.h.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/third_party/abseil-cpp/absl/base/config.h
-@@ -460,7 +460,8 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] !=
- // POSIX.1-2001.
+@@ -450,7 +450,7 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] !=
#ifdef ABSL_HAVE_SCHED_YIELD
#error ABSL_HAVE_SCHED_YIELD cannot be directly set
--#elif defined(__linux__) || defined(__ros__) || defined(__native_client__)
-+#elif defined(__linux__) || defined(__ros__) || defined(__native_client__) || \
-+ defined(__OpenBSD__) || defined(__FreeBSD__)
+ #elif defined(__linux__) || defined(__ros__) || defined(__native_client__) || \
+- defined(__VXWORKS__)
++ defined(__VXWORKS__) || defined(__OpenBSD__) || defined(__FreeBSD__)
#define ABSL_HAVE_SCHED_YIELD 1
#endif
-@@ -475,7 +476,7 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] !=
+@@ -465,7 +465,8 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] !=
// platforms.
#ifdef ABSL_HAVE_SEMAPHORE_H
#error ABSL_HAVE_SEMAPHORE_H cannot be directly set
--#elif defined(__linux__) || defined(__ros__)
-+#elif defined(__linux__) || defined(__ros__) || defined(__OpenBSD__) || defined(__FreeBSD__)
+-#elif defined(__linux__) || defined(__ros__) || defined(__VXWORKS__)
++#elif defined(__linux__) || defined(__ros__) || defined(__VXWORKS__) || \
++ defined(__OpenBSD__) || defined(__FreeBSD__)
#define ABSL_HAVE_SEMAPHORE_H 1
#endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_abseil-cpp_absl_base_internal_raw__logging.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_abseil-cpp_absl_base_internal_raw__logging.cc
index ade86489b072..a00606557592 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_abseil-cpp_absl_base_internal_raw__logging.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_abseil-cpp_absl_base_internal_raw__logging.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/abseil-cpp/absl/base/internal/raw_logging.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/third_party/abseil-cpp/absl/base/internal/raw_logging.cc.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/third_party/abseil-cpp/absl/base/internal/raw_logging.cc
-@@ -52,10 +52,12 @@
+@@ -56,10 +56,12 @@
// ABSL_HAVE_SYSCALL_WRITE is defined when the platform provides the syscall
// syscall(SYS_write, /*int*/ fd, /*char* */ buf, /*size_t*/ len);
// for low level operations that want to avoid libc.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_abseil-cpp_absl_base_internal_sysinfo.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_abseil-cpp_absl_base_internal_sysinfo.cc
index 8b5c784ee738..b8e4d18eabb0 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_abseil-cpp_absl_base_internal_sysinfo.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_abseil-cpp_absl_base_internal_sysinfo.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/abseil-cpp/absl/base/internal/sysinfo.cc.orig 2022-11-30 08:12:58 UTC
+--- src/3rdparty/chromium/third_party/abseil-cpp/absl/base/internal/sysinfo.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/third_party/abseil-cpp/absl/base/internal/sysinfo.cc
-@@ -30,7 +30,7 @@
+@@ -30,10 +30,14 @@
#include <sys/syscall.h>
#endif
@@ -9,7 +9,30 @@
#include <sys/sysctl.h>
#endif
-@@ -310,9 +310,11 @@ static double GetNominalCPUFrequency() {
++#if defined(__FreeBSD__)
++#include <pthread_np.h>
++#endif
++
+ #if defined(__myriad2__)
+ #include <rtems.h>
+ #endif
+@@ -186,6 +190,7 @@ static double GetNominalCPUFrequency() {
+
+ #else
+
++#if !defined(__OpenBSD__) && !defined(__FreeBSD__)
+ // Helper function for reading a long from a file. Returns true if successful
+ // and the memory location pointed to by value is set to the value read.
+ static bool ReadLongFromFile(const char *file, long *value) {
+@@ -218,6 +223,7 @@ static bool ReadLongFromFile(const char *file, long *v
+ }
+ return ret;
+ }
++#endif
+
+ #if defined(ABSL_INTERNAL_UNSCALED_CYCLECLOCK_FREQUENCY_IS_CPU_FREQUENCY)
+
+@@ -317,9 +323,11 @@ static double GetNominalCPUFrequency() {
// a new mode (turbo mode). Essentially, those frequencies cannot
// always be relied upon. The same reasons apply to /proc/cpuinfo as
// well.
@@ -21,3 +44,35 @@
#if defined(ABSL_INTERNAL_UNSCALED_CYCLECLOCK_FREQUENCY_IS_CPU_FREQUENCY)
// On these platforms, the TSC frequency is the nominal CPU
+@@ -338,10 +346,12 @@ static double GetNominalCPUFrequency() {
+ // If CPU scaling is in effect, we want to use the *maximum*
+ // frequency, not whatever CPU speed some random processor happens
+ // to be using now.
++#if !defined(__OpenBSD__) && !defined(__FreeBSD__) // pledge violation
+ if (ReadLongFromFile("/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq",
+ &freq)) {
+ return freq * 1e3; // Value is kHz.
+ }
++#endif
+
+ return 1.0;
+ #endif // !ABSL_INTERNAL_UNSCALED_CYCLECLOCK_FREQUENCY_IS_CPU_FREQUENCY
+@@ -439,6 +449,18 @@ pid_t GetTID() {
+ static_assert(sizeof(pid_t) == sizeof(thread),
+ "In NaCL int expected to be the same size as a pointer");
+ return reinterpret_cast<pid_t>(thread);
++}
++
++#elif defined(__OpenBSD__)
++
++pid_t GetTID() {
++ return getthrid();
++}
++
++#elif defined(__FreeBSD__)
++
++pid_t GetTID() {
++ return pthread_getthreadid_np();
+ }
+
+ #else
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_abseil-cpp_absl_debugging_internal_elf__mem__image.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_abseil-cpp_absl_debugging_internal_elf__mem__image.h
index 44235736ba9a..d375d14c6dbe 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_abseil-cpp_absl_debugging_internal_elf__mem__image.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_abseil-cpp_absl_debugging_internal_elf__mem__image.h
@@ -1,11 +1,11 @@
---- src/3rdparty/chromium/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h.orig 2022-08-31 12:19:35 UTC
+--- src/3rdparty/chromium/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h
-@@ -33,7 +33,7 @@
-
+@@ -34,7 +34,7 @@
#if defined(__ELF__) && !defined(__OpenBSD__) && !defined(__QNX__) && \
!defined(__native_client__) && !defined(__asmjs__) && \
-- !defined(__wasm__) && !defined(__HAIKU__)
-+ !defined(__wasm__) && !defined(__HAIKU__) && !defined(__FreeBSD__)
+ !defined(__wasm__) && !defined(__HAIKU__) && !defined(__sun) && \
+- !defined(__VXWORKS__) && !defined(__hexagon__)
++ !defined(__VXWORKS__) && !defined(__hexagon__) && !defined(__FreeBSD__)
#define ABSL_HAVE_ELF_MEM_IMAGE 1
#endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_abseil-cpp_absl_time_internal_cctz_src_time__zone__format.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_abseil-cpp_absl_time_internal_cctz_src_time__zone__format.cc
deleted file mode 100644
index 4db0493638ae..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_abseil-cpp_absl_time_internal_cctz_src_time__zone__format.cc
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/3rdparty/chromium/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc.orig 2022-09-24 10:57:32 UTC
-+++ src/3rdparty/chromium/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc
-@@ -19,7 +19,7 @@
- #endif
-
- #if defined(HAS_STRPTIME) && HAS_STRPTIME
--#if !defined(_XOPEN_SOURCE) && !defined(__OpenBSD__)
-+#if !defined(_XOPEN_SOURCE) && !defined(__OpenBSD__) && !defined(__FreeBSD__)
- #define _XOPEN_SOURCE // Definedness suffices for strptime.
- #endif
- #endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_BUILD.gn
index a611e87d0332..8829526ae674 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_BUILD.gn
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/angle/BUILD.gn.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/third_party/angle/BUILD.gn.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/third_party/angle/BUILD.gn
-@@ -280,7 +280,6 @@ config("extra_warnings") {
+@@ -325,7 +325,6 @@ config("extra_warnings") {
"-Wtautological-type-limit-compare",
"-Wundefined-reinterpret-cast",
"-Wunneeded-internal-declaration",
@@ -8,7 +8,7 @@
"-Wsuggest-destructor-override",
"-Wsuggest-override",
-@@ -451,7 +450,7 @@ template("angle_common_lib") {
+@@ -496,7 +495,7 @@ template("angle_common_lib") {
all_dependent_configs = [ ":angle_disable_pool_alloc" ]
}
@@ -17,7 +17,7 @@
libs = [ "dl" ]
}
-@@ -606,6 +605,9 @@ angle_static_library("angle_gpu_info_util") {
+@@ -651,6 +650,9 @@ angle_static_library("angle_gpu_info_util") {
"Xi",
"Xext",
]
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_common_platform__helpers.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_common_platform__helpers.h
new file mode 100644
index 000000000000..ba4eb7f74eee
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_common_platform__helpers.h
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/third_party/angle/src/common/platform_helpers.h.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/third_party/angle/src/common/platform_helpers.h
+@@ -62,7 +62,7 @@ inline constexpr bool IsIOS()
+
+ inline constexpr bool IsLinux()
+ {
+-#if defined(ANGLE_PLATFORM_LINUX)
++#if defined(ANGLE_PLATFORM_LINUX) || defined(ANGLE_PLATFORM_BSD)
+ return true;
+ #else
+ return false;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_common_vulkan_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_common_vulkan_BUILD.gn
deleted file mode 100644
index 19c3b7997a88..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_common_vulkan_BUILD.gn
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/3rdparty/chromium/third_party/angle/src/common/vulkan/BUILD.gn.orig 2023-03-28 19:45:02 UTC
-+++ src/3rdparty/chromium/third_party/angle/src/common/vulkan/BUILD.gn
-@@ -33,7 +33,7 @@ if (angle_enable_vulkan || angle_build_vulkan_system_i
- if (angle_shared_libvulkan) {
- defines = [ "ANGLE_SHARED_LIBVULKAN=1" ]
- }
-- if (angle_use_wayland) {
-+ if (angle_use_wayland && !use_system_libwayland) {
- include_dirs = [ "$wayland_dir/src" ]
- }
- configs = [ "$angle_root:angle_vulkan_wayland_config" ]
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_gpu__info__util_SystemInfo__internal.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_gpu__info__util_SystemInfo__internal.h
index 74ed5951c3cb..721f6c16dbde 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_gpu__info__util_SystemInfo__internal.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_gpu__info__util_SystemInfo__internal.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/angle/src/gpu_info_util/SystemInfo_internal.h.orig 2022-02-23 19:25:59 UTC
+--- src/3rdparty/chromium/third_party/angle/src/gpu_info_util/SystemInfo_internal.h.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/third_party/angle/src/gpu_info_util/SystemInfo_internal.h
-@@ -14,6 +14,13 @@
+@@ -15,6 +15,13 @@
namespace angle
{
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_libANGLE_Display.cpp b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_libANGLE_Display.cpp
index 67f708c8ae60..8d52ddf1e027 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_libANGLE_Display.cpp
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_libANGLE_Display.cpp
@@ -1,16 +1,16 @@
---- src/3rdparty/chromium/third_party/angle/src/libANGLE/Display.cpp.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/third_party/angle/src/libANGLE/Display.cpp.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/third_party/angle/src/libANGLE/Display.cpp
-@@ -55,7 +55,7 @@
- # include "libANGLE/renderer/gl/wgl/DisplayWGL.h"
- # elif defined(ANGLE_PLATFORM_MACOS) || defined(ANGLE_PLATFORM_IOS)
- # include "libANGLE/renderer/gl/apple/DisplayApple_api.h"
+@@ -60,7 +60,7 @@
+ # include "libANGLE/renderer/gl/cgl/DisplayCGL.h"
+ # elif ANGLE_ENABLE_EAGL
+ # include "libANGLE/renderer/gl/eagl/DisplayEAGL.h"
-# elif defined(ANGLE_PLATFORM_LINUX)
+# elif defined(ANGLE_PLATFORM_LINUX) || defined(ANGLE_PLATFORM_BSD)
# include "libANGLE/renderer/gl/egl/DisplayEGL.h"
# if defined(ANGLE_USE_X11)
# include "libANGLE/renderer/gl/glx/DisplayGLX.h"
-@@ -346,7 +346,7 @@ rx::DisplayImpl *CreateDisplayFromAttribs(EGLAttrib di
- impl = rx::CreateDisplayCGLOrEAGL(state);
+@@ -411,7 +411,7 @@ rx::DisplayImpl *CreateDisplayFromAttribs(EGLAttrib di
+ impl = new rx::DisplayEAGL(state);
break;
-# elif defined(ANGLE_PLATFORM_LINUX)
@@ -18,16 +18,16 @@
# if defined(ANGLE_USE_GBM)
if (platformType == 0)
{
-@@ -387,7 +387,7 @@ rx::DisplayImpl *CreateDisplayFromAttribs(EGLAttrib di
+@@ -457,7 +457,7 @@ rx::DisplayImpl *CreateDisplayFromAttribs(EGLAttrib di
#if defined(ANGLE_ENABLE_OPENGL)
# if defined(ANGLE_PLATFORM_WINDOWS)
impl = new rx::DisplayWGL(state);
-# elif defined(ANGLE_PLATFORM_LINUX)
+# elif defined(ANGLE_PLATFORM_LINUX) || defined(ANGLE_PLATFORM_BSD)
# if defined(ANGLE_USE_GBM)
- if (platformType == 0 ||
- platformType == EGL_PLATFORM_VULKAN_DISPLAY_MODE_HEADLESS_ANGLE)
-@@ -436,7 +436,7 @@ rx::DisplayImpl *CreateDisplayFromAttribs(EGLAttrib di
+ if (platformType == 0)
+ {
+@@ -508,7 +508,7 @@ rx::DisplayImpl *CreateDisplayFromAttribs(EGLAttrib di
impl = rx::CreateVulkanWin32Display(state);
}
break;
@@ -36,7 +36,7 @@
# if defined(ANGLE_USE_GBM)
if (platformType == EGL_PLATFORM_GBM_KHR && rx::IsVulkanGbmDisplayAvailable())
{
-@@ -2046,7 +2046,7 @@ static ClientExtensions GenerateClientExtensions()
+@@ -2148,7 +2148,7 @@ static ClientExtensions GenerateClientExtensions()
extensions.x11Visual = true;
#endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_libANGLE_formatutils.cpp b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_libANGLE_formatutils.cpp
index d4a68f0b4eed..e59e83967111 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_libANGLE_formatutils.cpp
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_libANGLE_formatutils.cpp
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/angle/src/libANGLE/formatutils.cpp.orig 2023-04-20 13:16:39 UTC
+--- src/3rdparty/chromium/third_party/angle/src/libANGLE/formatutils.cpp.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/third_party/angle/src/libANGLE/formatutils.cpp
-@@ -1486,7 +1486,7 @@ static InternalFormatInfoMap BuildInternalFormatInfoMa
+@@ -1475,7 +1475,7 @@ static InternalFormatInfoMap BuildInternalFormatInfoMa
AddYUVFormat(&map, GL_G8_B8R8_2PLANE_420_UNORM_ANGLE, true, 8, 8, 8, 0, 0, GL_G8_B8R8_2PLANE_420_UNORM_ANGLE, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::yuvInternalFormatANGLE>, RequireExt<&Extensions::yuvInternalFormatANGLE>, RequireExt<&Extensions::yuvInternalFormatANGLE>, NeverSupported, NeverSupported);
AddYUVFormat(&map, GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE, true, 8, 8, 8, 0, 0, GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::yuvInternalFormatANGLE>, RequireExt<&Extensions::yuvInternalFormatANGLE>, RequireExt<&Extensions::yuvInternalFormatANGLE>, NeverSupported, NeverSupported);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_libANGLE_renderer_driver__utils.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_libANGLE_renderer_driver__utils.h
deleted file mode 100644
index c83f0e5a4fb5..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_libANGLE_renderer_driver__utils.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/3rdparty/chromium/third_party/angle/src/libANGLE/renderer/driver_utils.h.orig 2023-03-09 06:31:50 UTC
-+++ src/3rdparty/chromium/third_party/angle/src/libANGLE/renderer/driver_utils.h
-@@ -206,7 +206,7 @@ inline bool IsWindows()
-
- inline bool IsLinux()
- {
--#if defined(ANGLE_PLATFORM_LINUX)
-+#if defined(ANGLE_PLATFORM_LINUX) || defined(ANGLE_PLATFORM_BSD)
- return true;
- #else
- return false;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_third__party_volk_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_third__party_volk_BUILD.gn
deleted file mode 100644
index 8882c027c537..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_src_third__party_volk_BUILD.gn
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/3rdparty/chromium/third_party/angle/src/third_party/volk/BUILD.gn.orig 2023-03-28 19:45:02 UTC
-+++ src/3rdparty/chromium/third_party/angle/src/third_party/volk/BUILD.gn
-@@ -20,7 +20,7 @@ source_set("volk") {
- public_configs = [ ":volk_config" ]
- configs += [ "$angle_root:angle_no_cfi_icall" ]
- public_deps = [ "$angle_vulkan_headers_dir:vulkan_headers" ]
-- if (angle_use_wayland) {
-+ if (angle_use_wayland && !use_system_libwayland) {
- include_dirs = [ "$wayland_dir/src" ]
- }
- }
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_util_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_util_BUILD.gn
index bdcc8380c778..89e05cbb806f 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_util_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_angle_util_BUILD.gn
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/angle/util/BUILD.gn.orig 2023-02-08 09:03:45 UTC
+--- src/3rdparty/chromium/third_party/angle/util/BUILD.gn.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/third_party/angle/util/BUILD.gn
-@@ -292,7 +292,7 @@ foreach(is_shared_library,
+@@ -311,7 +311,7 @@ foreach(is_shared_library,
]
libs = []
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_common_privacy__budget_active__sampling.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_common_privacy__budget_active__sampling.cc
deleted file mode 100644
index 2498eff5ae1c..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_common_privacy__budget_active__sampling.cc
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/3rdparty/chromium/third_party/blink/common/privacy_budget/active_sampling.cc.orig 2022-08-31 12:19:35 UTC
-+++ src/3rdparty/chromium/third_party/blink/common/privacy_budget/active_sampling.cc
-@@ -24,7 +24,7 @@ namespace blink {
- bool IdentifiabilityActiveSampler::IsFontFamilyAvailable(const char* family,
- SkFontMgr* fm) {
- base::ScopedAllowBaseSyncPrimitives allow;
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- return !!fm->legacyMakeTypeface(family, SkFontStyle());
- #else
- sk_sp<SkFontStyleSet> set(fm->matchFamily(family));
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_common_renderer__preferences_renderer__preferences__mojom__traits.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_common_renderer__preferences_renderer__preferences__mojom__traits.cc
index 633d3d8166d0..9e33b07c62d0 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_common_renderer__preferences_renderer__preferences__mojom__traits.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_common_renderer__preferences_renderer__preferences__mojom__traits.cc
@@ -1,8 +1,8 @@
---- src/3rdparty/chromium/third_party/blink/common/renderer_preferences/renderer_preferences_mojom_traits.cc.orig 2022-03-25 21:59:56 UTC
+--- src/3rdparty/chromium/third_party/blink/common/renderer_preferences/renderer_preferences_mojom_traits.cc.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/third_party/blink/common/renderer_preferences/renderer_preferences_mojom_traits.cc
-@@ -64,7 +64,7 @@ bool StructTraits<blink::mojom::RendererPreferencesDat
- if (!data.ReadAcceptLanguages(&out->accept_languages))
- return false;
+@@ -66,7 +66,7 @@ bool StructTraits<blink::mojom::RendererPreferencesDat
+
+ out->send_subresource_notification = data.send_subresource_notification();
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_public_common_renderer__preferences_renderer__preferences.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_public_common_renderer__preferences_renderer__preferences.h
index db513ac3f494..32cad4b736ee 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_public_common_renderer__preferences_renderer__preferences.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_public_common_renderer__preferences_renderer__preferences.h
@@ -1,9 +1,9 @@
---- src/3rdparty/chromium/third_party/blink/public/common/renderer_preferences/renderer_preferences.h.orig 2022-03-25 21:59:56 UTC
+--- src/3rdparty/chromium/third_party/blink/public/common/renderer_preferences/renderer_preferences.h.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/third_party/blink/public/common/renderer_preferences/renderer_preferences.h
-@@ -50,7 +50,7 @@ struct BLINK_COMMON_EXPORT RendererPreferences {
- bool webrtc_allow_legacy_tls_protocols{false};
+@@ -64,7 +64,7 @@ struct BLINK_COMMON_EXPORT RendererPreferences {
UserAgentOverride user_agent_override;
std::string accept_languages;
+ bool send_subresource_notification{false};
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
std::string system_font_family_name;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_public_common_renderer__preferences_renderer__preferences__mojom__traits.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_public_common_renderer__preferences_renderer__preferences__mojom__traits.h
index e4805d43e10b..67169fd8511f 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_public_common_renderer__preferences_renderer__preferences__mojom__traits.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_public_common_renderer__preferences_renderer__preferences__mojom__traits.h
@@ -1,7 +1,7 @@
---- src/3rdparty/chromium/third_party/blink/public/common/renderer_preferences/renderer_preferences_mojom_traits.h.orig 2022-03-25 21:59:56 UTC
+--- src/3rdparty/chromium/third_party/blink/public/common/renderer_preferences/renderer_preferences_mojom_traits.h.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/third_party/blink/public/common/renderer_preferences/renderer_preferences_mojom_traits.h
-@@ -157,7 +157,7 @@ struct BLINK_COMMON_EXPORT
- return data.accept_languages;
+@@ -162,7 +162,7 @@ struct BLINK_COMMON_EXPORT
+ return data.send_subresource_notification;
}
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_public_platform_platform.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_public_platform_platform.h
index 3b10091dc9cc..23a41de0d93b 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_public_platform_platform.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_public_platform_platform.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/blink/public/platform/platform.h.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/third_party/blink/public/platform/platform.h.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/third_party/blink/public/platform/platform.h
-@@ -349,7 +349,7 @@ class BLINK_PLATFORM_EXPORT Platform {
+@@ -338,7 +338,7 @@ class BLINK_PLATFORM_EXPORT Platform {
return nullptr;
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_controller_blink__initializer.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_controller_blink__initializer.cc
index 6bca1da72ea0..ac6d110766df 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_controller_blink__initializer.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_controller_blink__initializer.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/blink/renderer/controller/blink_initializer.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/third_party/blink/renderer/controller/blink_initializer.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/third_party/blink/renderer/controller/blink_initializer.cc
-@@ -74,12 +74,12 @@
+@@ -78,12 +78,12 @@
#include "third_party/blink/renderer/controller/private_memory_footprint_provider.h"
#endif
@@ -10,12 +10,12 @@
#endif
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
-- BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
-+ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+- BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
#include "third_party/blink/renderer/controller/highest_pmf_reporter.h"
#include "third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator.h"
#endif
-@@ -222,7 +222,7 @@ void BlinkInitializer::RegisterInterfaces(mojo::Binder
+@@ -227,7 +227,7 @@ void BlinkInitializer::RegisterInterfaces(mojo::Binder
main_thread_task_runner);
#endif
@@ -24,12 +24,12 @@
binders.Add<mojom::blink::MemoryUsageMonitorLinux>(
ConvertToBaseRepeatingCallback(
CrossThreadBindRepeating(&MemoryUsageMonitorPosix::Bind)),
-@@ -255,7 +255,7 @@ void BlinkInitializer::RegisterMemoryWatchers() {
+@@ -266,7 +266,7 @@ void BlinkInitializer::RegisterMemoryWatchers(Platform
#endif
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
-- BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
-+ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
- // Initialize UserLevelMemoryPressureSignalGenerator so it starts monitoring.
- UserLevelMemoryPressureSignalGenerator::Initialize(main_thread_task_runner);
-
+- BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_WIN)
++ BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ // Start reporting the highest private memory footprint after the first
+ // navigation.
+ HighestPmfReporter::Initialize(main_thread_task_runner);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_controller_memory__usage__monitor__posix.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_controller_memory__usage__monitor__posix.cc
index 5feca7d63c91..4fcc364618f1 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_controller_memory__usage__monitor__posix.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_controller_memory__usage__monitor__posix.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/blink/renderer/controller/memory_usage_monitor_posix.cc.orig 2022-06-17 14:20:10 UTC
+--- src/3rdparty/chromium/third_party/blink/renderer/controller/memory_usage_monitor_posix.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/third_party/blink/renderer/controller/memory_usage_monitor_posix.cc
-@@ -129,15 +129,17 @@ void MemoryUsageMonitorPosix::ResetFileDescriptors() {
+@@ -128,15 +128,17 @@ void MemoryUsageMonitorPosix::ResetFileDescriptors() {
void MemoryUsageMonitorPosix::SetProcFiles(base::File statm_file,
base::File status_file) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_exported_web__view__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_exported_web__view__impl.cc
index 3504310a3820..9687f1a1ba46 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_exported_web__view__impl.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_exported_web__view__impl.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/blink/renderer/core/exported/web_view_impl.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/third_party/blink/renderer/core/exported/web_view_impl.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/third_party/blink/renderer/core/exported/web_view_impl.cc
-@@ -408,7 +408,7 @@ SkFontHinting RendererPreferencesToSkiaHinting(
+@@ -421,7 +421,7 @@ SkFontHinting RendererPreferencesToSkiaHinting(
const blink::RendererPreferences& prefs) {
// TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is
// complete.
@@ -9,7 +9,7 @@
if (!prefs.should_antialias_text) {
// When anti-aliasing is off, GTK maps all non-zero hinting settings to
// 'Normal' hinting so we do the same. Otherwise, folks who have 'Slight'
-@@ -3344,7 +3344,7 @@ void WebViewImpl::UpdateFontRenderingFromRendererPrefs
+@@ -3323,7 +3323,7 @@ void WebViewImpl::UpdateFontRenderingFromRendererPrefs
renderer_preferences_.use_subpixel_positioning);
// TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is
// complete.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_frame_web__frame__test.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_frame_web__frame__test.cc
index fb2c5dc7e1f3..7f9ab08a9e53 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_frame_web__frame__test.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_frame_web__frame__test.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/blink/renderer/core/frame/web_frame_test.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/third_party/blink/renderer/core/frame/web_frame_test.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/third_party/blink/renderer/core/frame/web_frame_test.cc
-@@ -6439,7 +6439,7 @@ TEST_F(WebFrameTest, DISABLED_PositionForPointTest) {
+@@ -6456,7 +6456,7 @@ TEST_F(WebFrameTest, DISABLED_PositionForPointTest) {
}
#if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
@@ -9,7 +9,7 @@
// TODO(crbug.com/1090246): Fix these tests on Fuchsia and re-enable.
// TODO(crbug.com/1317375): Build these tests on all platforms.
#define MAYBE_SelectRangeStaysHorizontallyAlignedWhenMoved \
-@@ -6847,7 +6847,7 @@ TEST_F(CompositedSelectionBoundsTest, LargeSelectionSc
+@@ -6865,7 +6865,7 @@ TEST_F(CompositedSelectionBoundsTest, LargeSelectionSc
TEST_F(CompositedSelectionBoundsTest, LargeSelectionNoScroll) {
RunTest("composited_selection_bounds_large_selection_noscroll.html");
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_html_canvas_canvas__async__blob__creator.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_html_canvas_canvas__async__blob__creator.cc
index 911e3e5bdf4d..f11b44ff51f0 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_html_canvas_canvas__async__blob__creator.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_html_canvas_canvas__async__blob__creator.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc.orig 2022-05-19 14:06:27 UTC
+--- src/3rdparty/chromium/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc
-@@ -45,7 +45,7 @@ constexpr base::TimeDelta kEncodeRowSlackBeforeDeadlin
+@@ -48,7 +48,7 @@ constexpr base::TimeDelta kEncodeRowSlackBeforeDeadlin
/* The value is based on user statistics on Nov 2017. */
#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_inspector_inspector__memory__agent.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_inspector_inspector__memory__agent.cc
index 400c6dcc4bf6..304806dd92eb 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_inspector_inspector__memory__agent.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_inspector_inspector__memory__agent.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/blink/renderer/core/inspector/inspector_memory_agent.cc.orig 2022-06-17 14:20:10 UTC
+--- src/3rdparty/chromium/third_party/blink/renderer/core/inspector/inspector_memory_agent.cc.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/third_party/blink/renderer/core/inspector/inspector_memory_agent.cc
-@@ -190,7 +190,7 @@ InspectorMemoryAgent::GetSamplingProfileById(uint32_t
+@@ -189,7 +189,7 @@ InspectorMemoryAgent::GetSamplingProfileById(uint32_t
Vector<String> InspectorMemoryAgent::Symbolize(
const WebVector<void*>& addresses) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_layout_layout__view.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_layout_ng_layout__ng__view.cc
index bc56f72530fd..f850372415f1 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_layout_layout__view.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_layout_ng_layout__ng__view.cc
@@ -1,17 +1,17 @@
---- src/3rdparty/chromium/third_party/blink/renderer/core/layout/layout_view.cc.orig 2023-04-05 11:05:06 UTC
-+++ src/3rdparty/chromium/third_party/blink/renderer/core/layout/layout_view.cc
-@@ -67,7 +67,7 @@
+--- src/3rdparty/chromium/third_party/blink/renderer/core/layout/ng/layout_ng_view.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/third_party/blink/renderer/core/layout/ng/layout_ng_view.cc
+@@ -15,7 +15,7 @@
+ #include "third_party/blink/renderer/core/svg/svg_document_extensions.h"
#include "ui/display/screen_info.h"
- #include "ui/gfx/geometry/quad_f.h"
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
#include "third_party/blink/renderer/platform/fonts/font_cache.h"
#endif
-@@ -365,7 +365,7 @@ void LayoutView::UpdateLayout() {
- DCHECK(!layout_state_);
- LayoutState root_layout_state(*this);
+@@ -53,7 +53,7 @@ void LayoutNGView::UpdateLayout() {
+ fragmentation_context_.Clear();
+ }
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_paint_paint__layer.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_paint_paint__layer.cc
index c621e73fe9ec..fba7e07799ee 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_paint_paint__layer.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_paint_paint__layer.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/blink/renderer/core/paint/paint_layer.cc.orig 2023-02-08 09:03:45 UTC
+--- src/3rdparty/chromium/third_party/blink/renderer/core/paint/paint_layer.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/third_party/blink/renderer/core/paint/paint_layer.cc
-@@ -114,7 +114,7 @@ namespace blink {
+@@ -118,7 +118,7 @@ namespace blink {
namespace {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_scroll_scrollbar__theme__aura.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_scroll_scrollbar__theme__aura.cc
index 9b232d22a2f2..66cc9a32e6e7 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_scroll_scrollbar__theme__aura.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_core_scroll_scrollbar__theme__aura.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/third_party/blink/renderer/core/scroll/scrollbar_theme_aura.cc.orig 2022-10-24 13:33:33 UTC
+--- src/3rdparty/chromium/third_party/blink/renderer/core/scroll/scrollbar_theme_aura.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/third_party/blink/renderer/core/scroll/scrollbar_theme_aura.cc
@@ -155,7 +155,7 @@ bool ScrollbarThemeAura::SupportsDragSnapBack() const
// is true for at least GTK and QT apps).
@@ -9,7 +9,7 @@
return false;
#else
return true;
-@@ -329,7 +329,7 @@ bool ScrollbarThemeAura::ShouldCenterOnThumb(const Scr
+@@ -355,7 +355,7 @@ bool ScrollbarThemeAura::ShouldCenterOnThumb(const Scr
const WebMouseEvent& event) {
// TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is
// complete.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_canvas_canvas2d_canvas__style.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_canvas_canvas2d_canvas__style.cc
new file mode 100644
index 000000000000..faf4d28f3312
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_canvas_canvas2d_canvas__style.cc
@@ -0,0 +1,12 @@
+--- src/3rdparty/chromium/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc.orig 2023-12-12 22:08:45 UTC
++++ src/3rdparty/chromium/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc
+@@ -76,6 +76,9 @@ void CanvasStyle::ApplyToFlags(cc::PaintFlags& flags,
+
+ void CanvasStyle::ApplyToFlags(cc::PaintFlags& flags,
+ float global_alpha) const {
++#if defined(__clang__) && (__clang_major__ < 16)
++ SkColor4f custom_color = SkColor4f{0.0f, 0.0f, 0.0f, global_alpha};
++#endif
+ switch (type_) {
+ case kColor:
+ ApplyColorToFlags(flags, global_alpha);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_media_audio_audio__renderer__mixer__manager__test.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_media_audio_audio__renderer__mixer__manager__test.cc
index 96842118dc7d..0a7db99120cf 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_media_audio_audio__renderer__mixer__manager__test.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_media_audio_audio__renderer__mixer__manager__test.cc
@@ -1,9 +1,9 @@
---- src/3rdparty/chromium/third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager_test.cc.orig 2022-11-30 08:12:58 UTC
+--- src/3rdparty/chromium/third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager_test.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager_test.cc
-@@ -722,7 +722,7 @@ TEST_F(AudioRendererMixerManagerTest, MixerParamsLaten
+@@ -724,7 +724,7 @@ TEST_F(AudioRendererMixerManagerTest, MixerParamsLaten
mixer->get_output_params_for_testing().sample_rate());
- #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_APPLE) || \
- BUILDFLAG(IS_FUCHSIA)
+ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
// Use 10 ms buffer (441 frames per buffer).
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_ml_webnn_features.gni b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_ml_webnn_features.gni
index f80bb2c5bc70..3486073555fc 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_ml_webnn_features.gni
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_ml_webnn_features.gni
@@ -1,9 +1,11 @@
---- src/3rdparty/chromium/third_party/blink/renderer/modules/ml/webnn/features.gni.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/third_party/blink/renderer/modules/ml/webnn/features.gni.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/third_party/blink/renderer/modules/ml/webnn/features.gni
-@@ -7,5 +7,5 @@ declare_args() {
+@@ -7,7 +7,7 @@ declare_args() {
# This enables building WebNN with XNNPACK. Currently only available for
- # Windows on x64 or x86.
+ # Windows and Linux on x64 or x86.
build_webnn_with_xnnpack =
-- is_win && (current_cpu == "x64" || current_cpu == "x86")
+- (is_linux || is_win) && (current_cpu == "x64" || current_cpu == "x86")
+ !is_bsd && (is_win && (current_cpu == "x64" || current_cpu == "x86"))
- }
+
+ # This build flag enables WebNN on ChromeOS platform to access hardware
+ # acceleration by using ModelLoader mojo interface.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_ml_webnn_ml__graph__xnnpack.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_ml_webnn_ml__graph__xnnpack.cc
index 1bad3278c937..b232a528b725 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_ml_webnn_ml__graph__xnnpack.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_ml_webnn_ml__graph__xnnpack.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/blink/renderer/modules/ml/webnn/ml_graph_xnnpack.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/third_party/blink/renderer/modules/ml/webnn/ml_graph_xnnpack.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/third_party/blink/renderer/modules/ml/webnn/ml_graph_xnnpack.cc
-@@ -177,7 +177,7 @@ class SharedXnnpackContext : public ThreadSafeRefCount
+@@ -191,7 +191,7 @@ class SharedXnnpackContext : public ThreadSafeRefCount
~SharedXnnpackContext() {
base::AutoLock auto_lock(SharedXnnpackContextLock());
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_peerconnection_webrtc__audio__renderer__test.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_peerconnection_webrtc__audio__renderer__test.cc
index f786e2c56e04..07b7f12fde5d 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_peerconnection_webrtc__audio__renderer__test.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_peerconnection_webrtc__audio__renderer__test.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/blink/renderer/modules/peerconnection/webrtc_audio_renderer_test.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/third_party/blink/renderer/modules/peerconnection/webrtc_audio_renderer_test.cc.orig 2023-07-16 15:47:57 UTC
+++ src/3rdparty/chromium/third_party/blink/renderer/modules/peerconnection/webrtc_audio_renderer_test.cc
-@@ -290,7 +290,7 @@ TEST_F(WebRtcAudioRendererTest, DISABLED_VerifySinkPar
+@@ -297,7 +297,7 @@ TEST_F(WebRtcAudioRendererTest, DISABLED_VerifySinkPar
SetupRenderer(kDefaultOutputDeviceId);
renderer_proxy_->Start();
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_APPLE) || \
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_webgl_webgl__rendering__context__base.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_webgl_webgl__rendering__context__base.cc
index 0bb8db1053a4..668add41a422 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_webgl_webgl__rendering__context__base.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_webgl_webgl__rendering__context__base.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
-@@ -6231,7 +6231,7 @@ void WebGLRenderingContextBase::TexImageHelperMediaVid
+@@ -6321,7 +6321,7 @@ void WebGLRenderingContextBase::TexImageHelperMediaVid
constexpr bool kAllowZeroCopyImages = true;
#endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_webgl_webgl__webcodecs__video__frame.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_webgl_webgl__webcodecs__video__frame.cc
deleted file mode 100644
index 1f3d5b2d4492..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_webgl_webgl__webcodecs__video__frame.cc
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/3rdparty/chromium/third_party/blink/renderer/modules/webgl/webgl_webcodecs_video_frame.cc.orig 2023-04-05 11:05:06 UTC
-+++ src/3rdparty/chromium/third_party/blink/renderer/modules/webgl/webgl_webcodecs_video_frame.cc
-@@ -102,7 +102,7 @@ bool WebGLWebCodecsVideoFrame::Supported(WebGLRenderin
- // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is
- // complete.
- #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || \
-- BUILDFLAG(IS_FUCHSIA)
-+ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
- // TODO(jie.a.chen@intel.com): Add Linux support.
- return false;
- #elif BUILDFLAG(IS_APPLE)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_webgpu_gpu__queue.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_webgpu_gpu__queue.cc
index 4a16beaf548c..2d061233f1b7 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_webgpu_gpu__queue.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_modules_webgpu_gpu__queue.cc
@@ -1,11 +1,11 @@
---- src/3rdparty/chromium/third_party/blink/renderer/modules/webgpu/gpu_queue.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/third_party/blink/renderer/modules/webgpu/gpu_queue.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/third_party/blink/renderer/modules/webgpu/gpu_queue.cc
-@@ -707,7 +707,7 @@ bool GPUQueue::CopyFromCanvasSourceImage(
- // platform requires interop supported. According to the bug, this change will
- // be a long time task. So disable using webgpu mailbox texture uploading path
+@@ -746,7 +746,7 @@ bool GPUQueue::CopyFromCanvasSourceImage(
// on linux platform.
+ // TODO(crbug.com/1424119): using a webgpu mailbox texture on the OpenGLES
+ // backend is failing for unknown reasons.
-#if BUILDFLAG(IS_LINUX)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
- use_webgpu_mailbox_texture = false;
- unaccelerated_image = image->MakeUnaccelerated();
- image = unaccelerated_image.get();
+ bool forceReadback = true;
+ #elif BUILDFLAG(IS_WIN)
+ bool forceReadback =
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_BUILD.gn
index 9e67a519c9bb..ca33eca74907 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_BUILD.gn
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/blink/renderer/platform/BUILD.gn.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/third_party/blink/renderer/platform/BUILD.gn.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/third_party/blink/renderer/platform/BUILD.gn
-@@ -1976,7 +1976,7 @@ jumbo_static_library("test_support") {
+@@ -1975,7 +1975,7 @@ jumbo_static_library("test_support") {
]
# fuzzed_data_provider may not work with a custom toolchain.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_font__cache.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_font__cache.cc
index 62b9add21a53..0ebf2995f22c 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_font__cache.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_font__cache.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/third_party/blink/renderer/platform/fonts/font_cache.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/third_party/blink/renderer/platform/fonts/font_cache.cc.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/third_party/blink/renderer/platform/fonts/font_cache.cc
@@ -72,7 +72,7 @@ extern const char kNotoColorEmojiCompat[] = "Noto Colo
@@ -9,7 +9,7 @@
float FontCache::device_scale_factor_ = 1.0;
#endif
-@@ -119,7 +119,7 @@ FontPlatformData* FontCache::SystemFontPlatformData(
+@@ -118,7 +118,7 @@ FontPlatformData* FontCache::SystemFontPlatformData(
const FontDescription& font_description) {
const AtomicString& family = FontCache::SystemFontFamily();
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || \
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_font__cache.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_font__cache.h
index 14048654d8b4..b3e27e71c678 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_font__cache.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_font__cache.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/blink/renderer/platform/fonts/font_cache.h.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/third_party/blink/renderer/platform/fonts/font_cache.h.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/third_party/blink/renderer/platform/fonts/font_cache.h
-@@ -57,7 +57,7 @@
+@@ -56,7 +56,7 @@
#include "third_party/skia/include/core/SkFontMgr.h"
#include "third_party/skia/include/core/SkRefCnt.h"
@@ -9,7 +9,7 @@
#include "ui/gfx/font_fallback_linux.h"
#endif
-@@ -180,7 +180,7 @@ class PLATFORM_EXPORT FontCache final {
+@@ -174,7 +174,7 @@ class PLATFORM_EXPORT FontCache final {
static void PrewarmFamily(const AtomicString& family_name) {}
#endif
@@ -18,7 +18,7 @@
// These are needed for calling QueryRenderStyleForStrike, since
// gfx::GetFontRenderParams makes distinctions based on DSF.
static float DeviceScaleFactor() { return device_scale_factor_; }
-@@ -264,7 +264,7 @@ class PLATFORM_EXPORT FontCache final {
+@@ -250,7 +250,7 @@ class PLATFORM_EXPORT FontCache final {
const char* locale_family_name);
#endif // BUILDFLAG(IS_ANDROID)
@@ -27,7 +27,7 @@
static bool GetFontForCharacter(UChar32,
const char* preferred_locale,
gfx::FallbackFontData*);
-@@ -344,7 +344,7 @@ class PLATFORM_EXPORT FontCache final {
+@@ -330,7 +330,7 @@ class PLATFORM_EXPORT FontCache final {
const FontFaceCreationParams&,
std::string& name);
@@ -36,8 +36,8 @@
static AtomicString GetFamilyNameForCharacter(SkFontMgr*,
UChar32,
const FontDescription&,
-@@ -387,7 +387,7 @@ class PLATFORM_EXPORT FontCache final {
- std::unique_ptr<FallbackFamilyStyleCache> fallback_params_cache_;
+@@ -368,7 +368,7 @@ class PLATFORM_EXPORT FontCache final {
+ bool is_test_font_mgr_ = false;
#endif // BUILDFLAG(IS_WIN)
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_font__description.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_font__description.cc
index 6e59b05a818a..21a42c1fcb59 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_font__description.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_font__description.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/third_party/blink/renderer/platform/fonts/font_description.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/third_party/blink/renderer/platform/fonts/font_description.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/third_party/blink/renderer/platform/fonts/font_description.cc
@@ -39,7 +39,7 @@
#include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
@@ -9,7 +9,7 @@
#include "third_party/blink/renderer/platform/fonts/font_cache.h"
#endif
-@@ -275,7 +275,7 @@ FontCacheKey FontDescription::CacheKey(
+@@ -274,7 +274,7 @@ FontCacheKey FontDescription::CacheKey(
static_cast<unsigned>(fields_.orientation_) << 1 | // bit 2-3
static_cast<unsigned>(fields_.subpixel_text_position_); // bit 1
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_font__palette.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_font__palette.h
new file mode 100644
index 000000000000..74578b876a36
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_font__palette.h
@@ -0,0 +1,28 @@
+--- src/3rdparty/chromium/third_party/blink/renderer/platform/fonts/font_palette.h.orig 2023-12-12 22:08:45 UTC
++++ src/3rdparty/chromium/third_party/blink/renderer/platform/fonts/font_palette.h
+@@ -96,7 +96,11 @@ class PLATFORM_EXPORT FontPalette : public RefCounted<
+ Color::ColorSpace color_interpolation_space,
+ absl::optional<Color::HueInterpolationMethod> hue_interpolation_method) {
+ return base::AdoptRef(new FontPalette(
+- start, end, NonNormalizedPercentages{start_percentage, end_percentage},
++#if defined(__clang__) && (__clang_major__ >= 16)
++ start, end, NonNormalizedPercentages(start_percentage, end_percentage),
++#else
++ start, end, NonNormalizedPercentages(NonNormalizedPercentages{start_percentage, end_percentage}),
++#endif
+ normalized_percentage, alpha_multiplier, color_interpolation_space,
+ hue_interpolation_method));
+ }
+@@ -170,7 +174,11 @@ class PLATFORM_EXPORT FontPalette : public RefCounted<
+ double normalized_percentage) {
+ double end_percentage = normalized_percentage * 100.0;
+ double start_percentage = 100.0 - end_percentage;
+- return NonNormalizedPercentages{start_percentage, end_percentage};
++#if defined(__clang__) && (__clang_major__ >= 16)
++ return NonNormalizedPercentages(start_percentage, end_percentage);
++#else
++ return NonNormalizedPercentages(NonNormalizedPercentages{start_percentage, end_percentage});
++#endif
+ }
+
+ double GetAlphaMultiplier() const {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_font__platform__data.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_font__platform__data.cc
index 65b7bf46d0b1..f4fe74bacd65 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_font__platform__data.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_font__platform__data.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/third_party/blink/renderer/platform/fonts/font_platform_data.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/third_party/blink/renderer/platform/fonts/font_platform_data.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/third_party/blink/renderer/platform/fonts/font_platform_data.cc
@@ -51,7 +51,7 @@ namespace {
namespace blink {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_palette__interpolation.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_palette__interpolation.cc
new file mode 100644
index 000000000000..65e93bb77bc0
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_palette__interpolation.cc
@@ -0,0 +1,16 @@
+--- src/3rdparty/chromium/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.orig 2023-12-12 22:08:45 UTC
++++ src/3rdparty/chromium/third_party/blink/renderer/platform/fonts/palette_interpolation.cc
+@@ -31,7 +31,12 @@ Vector<FontPalette::FontPaletteOverride> PaletteInterp
+ color_interpolation_space, hue_interpolation_method, start_color,
+ end_color, percentage, alpha_multiplier);
+
+- FontPalette::FontPaletteOverride result_color_record{(int)i, result_color};
++#if defined(__clang__) && (__clang_major__ >= 16)
++ FontPalette::FontPaletteOverride result_color_record(i, result_color);
++#else
++ FontPalette::FontPaletteOverride fpo = { static_cast<int>(i), result_color };
++ FontPalette::FontPaletteOverride result_color_record(fpo);
++#endif
+ result_color_records.push_back(result_color_record);
+ }
+ return result_color_records;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc
index 041279edd07b..4041c0ad526e 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc
-@@ -60,7 +60,7 @@ AtomicString ToAtomicString(const SkString& str) {
+@@ -64,7 +64,7 @@ AtomicString ToAtomicString(const SkString& str) {
return AtomicString::FromUTF8(str.c_str(), str.size());
}
@@ -9,16 +9,7 @@
// This function is called on android or when we are emulating android fonts on
// linux and the embedder has overriden the default fontManager with
// WebFontRendering::setSkiaFontMgr.
-@@ -235,7 +235,7 @@ sk_sp<SkTypeface> FontCache::CreateTypeface(
- }
- #endif
-
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
- // On linux if the fontManager has been overridden then we should be calling
- // the embedder provided font Manager rather than calling
- // SkTypeface::CreateFromName which may redirect the call to the default font
-@@ -262,7 +262,7 @@ std::unique_ptr<FontPlatformData> FontCache::CreateFon
+@@ -246,7 +246,7 @@ std::unique_ptr<FontPlatformData> FontCache::CreateFon
std::string name;
sk_sp<SkTypeface> typeface;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_graphics_begin__frame__provider.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_graphics_begin__frame__provider.cc
index 495ee9e234ce..b05f28ed8769 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_graphics_begin__frame__provider.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_graphics_begin__frame__provider.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/blink/renderer/platform/graphics/begin_frame_provider.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/third_party/blink/renderer/platform/graphics/begin_frame_provider.cc.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/third_party/blink/renderer/platform/graphics/begin_frame_provider.cc
-@@ -77,8 +77,12 @@ void BeginFrameProvider::CreateCompositorFrameSinkIfNe
+@@ -71,8 +71,12 @@ void BeginFrameProvider::CreateCompositorFrameSinkIfNe
// Once we are using RAF, this thread is driving user interactive display
// updates. Update priority accordingly.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_graphics_video__frame__submitter.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_graphics_video__frame__submitter.cc
index 53474e91ff22..dc308173b771 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_graphics_video__frame__submitter.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_graphics_video__frame__submitter.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/blink/renderer/platform/graphics/video_frame_submitter.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/third_party/blink/renderer/platform/graphics/video_frame_submitter.cc.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/third_party/blink/renderer/platform/graphics/video_frame_submitter.cc
-@@ -358,7 +358,7 @@ void VideoFrameSubmitter::OnBeginFrame(
+@@ -356,7 +356,7 @@ void VideoFrameSubmitter::OnBeginFrame(
continue;
auto& feedback =
timing_details.find(frame_token)->value.presentation_feedback;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_peerconnection_rtc__video__encoder__factory.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_peerconnection_rtc__video__encoder__factory.cc
index 1ae8befc0f50..cfc8e3fbf7eb 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_peerconnection_rtc__video__encoder__factory.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_peerconnection_rtc__video__encoder__factory.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_factory.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_factory.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_factory.cc
-@@ -197,12 +197,12 @@ SupportedFormats GetSupportedFormatsInternal(
+@@ -198,12 +198,12 @@ SupportedFormats GetSupportedFormatsInternal(
supported_formats.scalability_modes.push_back(profile.scalability_modes);
supported_formats.sdp_formats.push_back(std::move(*format));
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_runtime__enabled__features.json5 b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_runtime__enabled__features.json5
index 89970e0e44de..f729bbaa5d14 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_runtime__enabled__features.json5
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_runtime__enabled__features.json5
@@ -1,15 +1,15 @@
---- src/3rdparty/chromium/third_party/blink/renderer/platform/runtime_enabled_features.json5.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/third_party/blink/renderer/platform/runtime_enabled_features.json5.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -1531,7 +1531,7 @@
- depends_on: ["FileSystemAccessLocal"],
- status: {"Android": "test", "default": "stable"},
- origin_trial_feature_name: "FileHandling",
+@@ -2781,7 +2781,7 @@
+ name: "PaymentHandlerMinimalHeaderUX",
+ origin_trial_feature_name: "PaymentHandlerMinimalHeaderUX",
+ origin_trial_allows_third_party: true,
- origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos"],
+ origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos", "openbsd", "freebsd"],
- base_feature: "FileHandlingAPI",
},
{
-@@ -3358,7 +3358,7 @@
+ name: "PaymentInstruments",
+@@ -3803,7 +3803,7 @@
name: "UnrestrictedSharedArrayBuffer",
base_feature: "none",
origin_trial_feature_name: "UnrestrictedSharedArrayBuffer",
@@ -18,16 +18,7 @@
},
{
name: "URLPatternCompareComponent",
-@@ -3379,7 +3379,7 @@
- origin_trial_feature_name: "UserAgentReduction",
- origin_trial_allows_third_party: true,
- // iOS not included as it should not send a reduced User-Agent string.
-- origin_trial_os: ["android", "chromeos", "fuchsia", "linux", "mac", "win"],
-+ origin_trial_os: ["android", "chromeos", "fuchsia", "linux", "mac", "win", "openbsd", "freebsd"],
- base_feature: "ReduceUserAgent",
- },
- {
-@@ -3553,12 +3553,12 @@
+@@ -4006,12 +4006,12 @@
status: "experimental",
base_feature: "none",
origin_trial_feature_name: "WebAppUrlHandling",
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_scheduler_common_thread.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_scheduler_common_thread.cc
index cab2808e46a6..d8fc91ddadb8 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_scheduler_common_thread.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_scheduler_common_thread.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/blink/renderer/platform/scheduler/common/thread.cc.orig 2022-10-24 13:33:33 UTC
+--- src/3rdparty/chromium/third_party/blink/renderer/platform/scheduler/common/thread.cc.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/third_party/blink/renderer/platform/scheduler/common/thread.cc
-@@ -87,7 +87,7 @@ void Thread::CreateAndSetCompositorThread() {
+@@ -82,7 +82,7 @@ void Thread::CreateAndSetCompositorThread() {
std::make_unique<scheduler::CompositorThread>(params);
compositor_thread->Init();
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_video__capture_video__capture__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_video__capture_video__capture__impl.cc
new file mode 100644
index 000000000000..ac8abe61fb37
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_video__capture_video__capture__impl.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/third_party/blink/renderer/platform/video_capture/video_capture_impl.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/third_party/blink/renderer/platform/video_capture/video_capture_impl.cc
+@@ -621,7 +621,7 @@ bool VideoCaptureImpl::VideoFrameBufferPreparer::BindV
+ }
+
+ const unsigned texture_target =
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Explicitly set GL_TEXTURE_EXTERNAL_OES as the
+ // `media::VideoFrame::RequiresExternalSampler()` requires it for NV12
+ // format, while the `ImageTextureTarget()` will return GL_TEXTURE_2D.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_widget_compositing_blink__categorized__worker__pool__delegate.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_widget_compositing_blink__categorized__worker__pool__delegate.cc
new file mode 100644
index 000000000000..a957cfd32446
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_widget_compositing_blink__categorized__worker__pool__delegate.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/third_party/blink/renderer/platform/widget/compositing/blink_categorized_worker_pool_delegate.cc.orig 2023-05-31 08:12:17 UTC
++++ src/3rdparty/chromium/third_party/blink/renderer/platform/widget/compositing/blink_categorized_worker_pool_delegate.cc
+@@ -27,7 +27,7 @@ BlinkCategorizedWorkerPoolDelegate& BlinkCategorizedWo
+
+ void BlinkCategorizedWorkerPoolDelegate::NotifyThreadWillRun(
+ base::PlatformThreadId tid) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ scoped_refptr<base::TaskRunner> task_runner =
+ Thread::MainThread()->GetTaskRunner(MainThreadTaskRunnerRestricted());
+ task_runner->PostTask(FROM_HERE, base::BindOnce(
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_widget_compositing_categorized__worker__pool.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_widget_compositing_categorized__worker__pool.cc
deleted file mode 100644
index b80eab4f0b29..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_widget_compositing_categorized__worker__pool.cc
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/3rdparty/chromium/third_party/blink/renderer/platform/widget/compositing/categorized_worker_pool.cc.orig 2023-03-09 06:31:50 UTC
-+++ src/3rdparty/chromium/third_party/blink/renderer/platform/widget/compositing/categorized_worker_pool.cc
-@@ -242,7 +242,7 @@ void CategorizedWorkerPoolImpl::Start(int max_concurre
- "CompositorTileWorkerBackground", thread_options, this,
- background_thread_prio_categories,
- &has_task_for_background_priority_thread_cv_);
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- thread->SetBackgroundingCallback(
- Thread::MainThread()->GetTaskRunner(MainThreadTaskRunnerRestricted()),
- base::BindOnce([](base::PlatformThreadId thread_id) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_wtf_math__extras.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_wtf_math__extras.h
index 54822740990c..0c99b83324b4 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_wtf_math__extras.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_wtf_math__extras.h
@@ -1,17 +1,6 @@
---- src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/math_extras.h.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/math_extras.h.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/math_extras.h
-@@ -128,6 +128,10 @@ constexpr float Grad2turn(float g) {
- return g * (1.0f / 400.0f);
- }
-
-+#if defined(OS_FREEBSD)
-+#pragma clang diagnostic push
-+#pragma clang diagnostic ignored "-Winvalid-constexpr"
-+#endif
- inline double RoundHalfTowardsPositiveInfinity(double value) {
- return std::floor(value + 0.5);
- }
-@@ -135,6 +139,9 @@ inline float RoundHalfTowardsPositiveInfinity(float va
+@@ -135,6 +135,9 @@ inline float RoundHalfTowardsPositiveInfinity(float va
inline float RoundHalfTowardsPositiveInfinity(float value) {
return std::floor(value + 0.5f);
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_BUILD.generated.gni b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_BUILD.generated.gni
deleted file mode 100644
index f23df4066ad8..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_BUILD.generated.gni
+++ /dev/null
@@ -1,18 +0,0 @@
---- src/3rdparty/chromium/third_party/boringssl/BUILD.generated.gni.orig 2023-09-07 16:02:00 UTC
-+++ src/3rdparty/chromium/third_party/boringssl/BUILD.generated.gni
-@@ -87,6 +87,7 @@ crypto_sources = [
- "src/crypto/cpu_aarch64_freebsd.c",
- "src/crypto/cpu_aarch64_fuchsia.c",
- "src/crypto/cpu_aarch64_linux.c",
-+ "src/crypto/cpu_aarch64_openbsd.c",
- "src/crypto/cpu_aarch64_win.c",
- "src/crypto/cpu_arm.c",
- "src/crypto/cpu_arm_freebsd.c",
-@@ -193,6 +194,7 @@ crypto_sources = [
- "src/crypto/rand_extra/deterministic.c",
- "src/crypto/rand_extra/forkunsafe.c",
- "src/crypto/rand_extra/fuchsia.c",
-+ "src/crypto/rand_extra/arc4random.c",
- "src/crypto/rand_extra/passive.c",
- "src/crypto/rand_extra/rand_extra.c",
- "src/crypto/rand_extra/windows.c",
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_BUILD.gn
deleted file mode 100644
index 7bc990a32f49..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_BUILD.gn
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/3rdparty/chromium/third_party/boringssl/BUILD.gn.orig 2022-03-25 21:59:56 UTC
-+++ src/3rdparty/chromium/third_party/boringssl/BUILD.gn
-@@ -92,7 +92,7 @@ if (is_win && !is_msan && current_cpu != "arm64") {
- public_configs = [ ":no_asm_config" ]
- }
- } else if (current_cpu == "arm64") {
-- if (is_linux || is_chromeos || is_android) {
-+ if ((is_linux || is_chromeos || is_android) && !is_freebsd) {
- sources += crypto_sources_linux_aarch64
- } else if (is_apple) {
- sources += crypto_sources_apple_aarch64
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_chacha_asm_chacha-x86__64.pl b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_chacha_asm_chacha-x86__64.pl
deleted file mode 100644
index 0d7a6c505632..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_chacha_asm_chacha-x86__64.pl
+++ /dev/null
@@ -1,18 +0,0 @@
---- src/3rdparty/chromium/third_party/boringssl/src/crypto/chacha/asm/chacha-x86_64.pl.orig 2023-02-08 09:03:45 UTC
-+++ src/3rdparty/chromium/third_party/boringssl/src/crypto/chacha/asm/chacha-x86_64.pl
-@@ -78,6 +78,7 @@ $code.=<<___;
-
- .extern OPENSSL_ia32cap_P
-
-+.rodata
- .align 64
- .Lzero:
- .long 0,0,0,0
-@@ -107,6 +108,7 @@ $code.=<<___;
- .Lsixteen:
- .long 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
- .asciz "ChaCha20 for x86_64, CRYPTOGAMS by <appro\@openssl.org>"
-+.previous
- ___
-
- sub AUTOLOAD() # thunk [simplified] 32-bit style perlasm
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_cipher__extra_asm_aes128gcmsiv-x86__64.pl b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_cipher__extra_asm_aes128gcmsiv-x86__64.pl
deleted file mode 100644
index 23fc58a63e69..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_cipher__extra_asm_aes128gcmsiv-x86__64.pl
+++ /dev/null
@@ -1,19 +0,0 @@
---- src/3rdparty/chromium/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl.orig 2023-02-08 09:03:45 UTC
-+++ src/3rdparty/chromium/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl
-@@ -32,7 +32,7 @@ open OUT,"| \"$^X\" \"$xlate\" $flavour \"$output\"";
- *STDOUT=*OUT;
-
- $code.=<<___;
--.data
-+.rodata
-
- .align 16
- one:
-@@ -66,6 +66,7 @@ con3:
- .byte -1,-1,-1,-1,-1,-1,-1,-1,4,5,6,7,4,5,6,7
- and_mask:
- .long 0,0xffffffff, 0xffffffff, 0xffffffff
-+.previous
- ___
-
- $code.=<<___;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_cipher__extra_asm_chacha20__poly1305__x86__64.pl b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_cipher__extra_asm_chacha20__poly1305__x86__64.pl
deleted file mode 100644
index a3bb3e648f9a..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_cipher__extra_asm_chacha20__poly1305__x86__64.pl
+++ /dev/null
@@ -1,18 +0,0 @@
---- src/3rdparty/chromium/third_party/boringssl/src/crypto/cipher_extra/asm/chacha20_poly1305_x86_64.pl.orig 2023-02-08 09:03:45 UTC
-+++ src/3rdparty/chromium/third_party/boringssl/src/crypto/cipher_extra/asm/chacha20_poly1305_x86_64.pl
-@@ -42,6 +42,7 @@ $code.=<<___;
-
- chacha20_poly1305_constants:
-
-+.rodata
- .align 64
- .Lchacha20_consts:
- .byte 'e','x','p','a','n','d',' ','3','2','-','b','y','t','e',' ','k'
-@@ -79,6 +80,7 @@ chacha20_poly1305_constants:
- .byte 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00
- .byte 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00
- .byte 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
-+.previous
- ___
-
- my ($oup,$inp,$inl,$adp,$keyp,$itr1,$itr2,$adl)=("%rdi","%rsi","%rbx","%rcx","%r9","%rcx","%r8","%r8");
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_cpu__aarch64__openbsd.c b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_cpu__aarch64__openbsd.c
deleted file mode 100644
index 60fd01169810..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_cpu__aarch64__openbsd.c
+++ /dev/null
@@ -1,60 +0,0 @@
---- src/3rdparty/chromium/third_party/boringssl/src/crypto/cpu_aarch64_openbsd.c.orig 2022-03-25 21:59:56 UTC
-+++ src/3rdparty/chromium/third_party/boringssl/src/crypto/cpu_aarch64_openbsd.c
-@@ -0,0 +1,57 @@
-+/* Copyright (c) 2022, Robert Nagy <robert@openbsd.org>
-+ *
-+ * Permission to use, copy, modify, and/or distribute this software for any
-+ * purpose with or without fee is hereby granted, provided that the above
-+ * copyright notice and this permission notice appear in all copies.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-+ * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
-+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
-+
-+#include <openssl/cpu.h>
-+
-+#if defined(OPENSSL_AARCH64) && defined(OPENSSL_OPENBSD) && \
-+ !defined(OPENSSL_STATIC_ARMCAP)
-+
-+#include <sys/sysctl.h>
-+#include <machine/cpu.h>
-+#include <machine/armreg.h>
-+#include <stdio.h>
-+
-+#include <openssl/arm_arch.h>
-+
-+#include "internal.h"
-+
-+extern uint32_t OPENSSL_armcap_P;
-+
-+void OPENSSL_cpuid_setup(void) {
-+ int isar0_mib[] = { CTL_MACHDEP, CPU_ID_AA64ISAR0 };
-+ size_t len = sizeof(uint64_t);
-+ uint64_t cpu_id = 0;
-+
-+ if (sysctl(isar0_mib, 2, &cpu_id, &len, NULL, 0) < 0)
-+ return;
-+
-+ OPENSSL_armcap_P |= ARMV7_NEON;
-+
-+ if (ID_AA64ISAR0_AES(cpu_id) >= ID_AA64ISAR0_AES_BASE)
-+ OPENSSL_armcap_P |= ARMV8_AES;
-+
-+ if (ID_AA64ISAR0_AES(cpu_id) >= ID_AA64ISAR0_AES_PMULL)
-+ OPENSSL_armcap_P |= ARMV8_PMULL;
-+
-+ if (ID_AA64ISAR0_SHA1(cpu_id) >= ID_AA64ISAR0_SHA1_BASE)
-+ OPENSSL_armcap_P |= ARMV8_SHA1;
-+
-+ if (ID_AA64ISAR0_SHA2(cpu_id) >= ID_AA64ISAR0_SHA2_BASE)
-+ OPENSSL_armcap_P |= ARMV8_SHA256;
-+
-+ if (ID_AA64ISAR0_SHA2(cpu_id) >= ID_AA64ISAR0_SHA2_512)
-+ OPENSSL_armcap_P |= ARMV8_SHA512;
-+}
-+
-+#endif // OPENSSL_AARCH64 && OPENSSL_OPENBSD && !OPENSSL_STATIC_ARMCAP
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_aes_asm_aesni-x86__64.pl b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_aes_asm_aesni-x86__64.pl
deleted file mode 100644
index eec96103d4ec..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_aes_asm_aesni-x86__64.pl
+++ /dev/null
@@ -1,18 +0,0 @@
---- src/3rdparty/chromium/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesni-x86_64.pl.orig 2023-04-05 11:05:06 UTC
-+++ src/3rdparty/chromium/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesni-x86_64.pl
-@@ -3778,6 +3778,7 @@ ___
- }
-
- $code.=<<___;
-+.rodata
- .align 64
- .Lbswap_mask:
- .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
-@@ -3800,6 +3801,7 @@ $code.=<<___;
-
- .asciz "AES for Intel AES-NI, CRYPTOGAMS by <appro\@openssl.org>"
- .align 64
-+.previous
- ___
-
- # EXCEPTION_DISPOSITION handler (EXCEPTION_RECORD *rec,ULONG64 frame,
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_aes_asm_vpaes-x86__64.pl b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_aes_asm_vpaes-x86__64.pl
deleted file mode 100644
index a12e445991f2..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_aes_asm_vpaes-x86__64.pl
+++ /dev/null
@@ -1,10 +0,0 @@
---- src/3rdparty/chromium/third_party/boringssl/src/crypto/fipsmodule/aes/asm/vpaes-x86_64.pl.orig 2023-02-08 09:03:45 UTC
-+++ src/3rdparty/chromium/third_party/boringssl/src/crypto/fipsmodule/aes/asm/vpaes-x86_64.pl
-@@ -1288,6 +1288,7 @@ _vpaes_preheat:
- ## ##
- ########################################################
- .type _vpaes_consts,\@object
-+.rodata
- .align 64
- _vpaes_consts:
- .Lk_inv: # inv, inva
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_bn_asm_x86__64-mont5.pl b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_bn_asm_x86__64-mont5.pl
deleted file mode 100644
index f7ef4e8e55ba..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_bn_asm_x86__64-mont5.pl
+++ /dev/null
@@ -1,16 +0,0 @@
---- src/3rdparty/chromium/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl.orig 2023-02-08 09:03:45 UTC
-+++ src/3rdparty/chromium/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl
-@@ -3576,11 +3576,13 @@ $code.=<<___;
- ___
- }
- $code.=<<___;
-+.rodata
- .align 64
- .Linc:
- .long 0,0, 1,1
- .long 2,2, 2,2
- .asciz "Montgomery Multiplication with scatter/gather for x86_64, CRYPTOGAMS by <appro\@openssl.org>"
-+.previous
- ___
-
- # EXCEPTION_DISPOSITION handler (EXCEPTION_RECORD *rec,ULONG64 frame,
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_ec_asm_p256-x86__64-asm.pl b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_ec_asm_p256-x86__64-asm.pl
deleted file mode 100644
index 383c6889b710..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_ec_asm_p256-x86__64-asm.pl
+++ /dev/null
@@ -1,18 +0,0 @@
---- src/3rdparty/chromium/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl.orig 2023-02-08 09:03:45 UTC
-+++ src/3rdparty/chromium/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl
-@@ -62,6 +62,7 @@ $code.=<<___;
- .extern OPENSSL_ia32cap_P
-
- # The polynomial
-+.rodata
- .align 64
- .Lpoly:
- .quad 0xffffffffffffffff, 0x00000000ffffffff, 0x0000000000000000, 0xffffffff00000001
-@@ -80,6 +81,7 @@ $code.=<<___;
- .quad 0xf3b9cac2fc632551, 0xbce6faada7179e84, 0xffffffffffffffff, 0xffffffff00000000
- .LordK:
- .quad 0xccd1c8aaee00bc4f
-+.previous
- ___
-
- {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_modes_asm_aesni-gcm-x86__64.pl b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_modes_asm_aesni-gcm-x86__64.pl
deleted file mode 100644
index e28864dfceb4..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_modes_asm_aesni-gcm-x86__64.pl
+++ /dev/null
@@ -1,18 +0,0 @@
---- src/3rdparty/chromium/third_party/boringssl/src/crypto/fipsmodule/modes/asm/aesni-gcm-x86_64.pl.orig 2023-04-05 11:05:06 UTC
-+++ src/3rdparty/chromium/third_party/boringssl/src/crypto/fipsmodule/modes/asm/aesni-gcm-x86_64.pl
-@@ -1053,6 +1053,7 @@ $code.=<<___;
- ___
-
- $code.=<<___;
-+.rodata
- .align 64
- .Lbswap_mask:
- .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
-@@ -1066,6 +1067,7 @@ $code.=<<___;
- .byte 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- .asciz "AES-NI GCM module for x86_64, CRYPTOGAMS by <appro\@openssl.org>"
- .align 64
-+.previous
- ___
- }}} else {{{
- $code=<<___; # assembler is too old
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_modes_asm_ghash-ssse3-x86__64.pl b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_modes_asm_ghash-ssse3-x86__64.pl
deleted file mode 100644
index 2cea056c5b0c..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_modes_asm_ghash-ssse3-x86__64.pl
+++ /dev/null
@@ -1,18 +0,0 @@
---- src/3rdparty/chromium/third_party/boringssl/src/crypto/fipsmodule/modes/asm/ghash-ssse3-x86_64.pl.orig 2023-04-05 11:05:06 UTC
-+++ src/3rdparty/chromium/third_party/boringssl/src/crypto/fipsmodule/modes/asm/ghash-ssse3-x86_64.pl
-@@ -331,6 +331,7 @@ $code .= <<____;
- .seh_endproc
- .size gcm_ghash_ssse3,.-gcm_ghash_ssse3
-
-+.rodata
- .align 16
- # .Lreverse_bytes is a permutation which, if applied with pshufb, reverses the
- # bytes in an XMM register.
-@@ -339,6 +340,7 @@ $code .= <<____;
- # .Llow4_mask is an XMM mask which selects the low four bits of each byte.
- .Llow4_mask:
- .quad 0x0f0f0f0f0f0f0f0f, 0x0f0f0f0f0f0f0f0f
-+.previous
- ____
-
- print $code;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_modes_asm_ghash-x86__64.pl b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_modes_asm_ghash-x86__64.pl
deleted file mode 100644
index 4124a866436a..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_modes_asm_ghash-x86__64.pl
+++ /dev/null
@@ -1,18 +0,0 @@
---- src/3rdparty/chromium/third_party/boringssl/src/crypto/fipsmodule/modes/asm/ghash-x86_64.pl.orig 2023-04-05 11:05:06 UTC
-+++ src/3rdparty/chromium/third_party/boringssl/src/crypto/fipsmodule/modes/asm/ghash-x86_64.pl
-@@ -1297,6 +1297,7 @@ ___
- }
-
- $code.=<<___;
-+.rodata
- .align 64
- .Lbswap_mask:
- .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
-@@ -1308,6 +1309,7 @@ $code.=<<___;
-
- .asciz "GHASH for x86_64, CRYPTOGAMS by <appro\@openssl.org>"
- .align 64
-+.previous
- ___
-
- $code =~ s/\`([^\`]*)\`/eval($1)/gem;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_rand_internal.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_rand_internal.h
deleted file mode 100644
index 29b0a6683006..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_rand_internal.h
+++ /dev/null
@@ -1,12 +0,0 @@
---- src/3rdparty/chromium/third_party/boringssl/src/crypto/fipsmodule/rand/internal.h.orig 2022-09-24 10:57:32 UTC
-+++ src/3rdparty/chromium/third_party/boringssl/src/crypto/fipsmodule/rand/internal.h
-@@ -27,7 +27,8 @@ extern "C" {
-
-
- #if !defined(OPENSSL_WINDOWS) && !defined(OPENSSL_FUCHSIA) && \
-- !defined(BORINGSSL_UNSAFE_DETERMINISTIC_MODE) && !defined(OPENSSL_TRUSTY)
-+ !defined(BORINGSSL_UNSAFE_DETERMINISTIC_MODE) && !defined(OPENSSL_TRUSTY) && \
-+ !defined(OPENSSL_ARC4RANDOM)
- #define OPENSSL_URANDOM
- #endif
-
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_sha_asm_sha1-x86__64.pl b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_sha_asm_sha1-x86__64.pl
deleted file mode 100644
index 387ba2cba7af..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_sha_asm_sha1-x86__64.pl
+++ /dev/null
@@ -1,18 +0,0 @@
---- src/3rdparty/chromium/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl.orig 2023-02-08 09:03:45 UTC
-+++ src/3rdparty/chromium/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl
-@@ -1815,6 +1815,7 @@ ___
- }
- }
- $code.=<<___;
-+.rodata
- .align 64
- K_XX_XX:
- .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 # K_00_19
-@@ -1833,6 +1834,7 @@ ___
- $code.=<<___;
- .asciz "SHA1 block transform for x86_64, CRYPTOGAMS by <appro\@openssl.org>"
- .align 64
-+.previous
- ___
-
- # EXCEPTION_DISPOSITION handler (EXCEPTION_RECORD *rec,ULONG64 frame,
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_sha_asm_sha512-x86__64.pl b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_sha_asm_sha512-x86__64.pl
deleted file mode 100644
index 49553e42ba57..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_fipsmodule_sha_asm_sha512-x86__64.pl
+++ /dev/null
@@ -1,30 +0,0 @@
---- src/3rdparty/chromium/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl.orig 2023-02-08 09:03:45 UTC
-+++ src/3rdparty/chromium/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl
-@@ -404,6 +404,7 @@ ___
-
- if ($SZ==4) {
- $code.=<<___;
-+.rodata
- .align 64
- .type $TABLE,\@object
- $TABLE:
-@@ -447,9 +448,11 @@ $TABLE:
- .long 0xffffffff,0xffffffff,0x03020100,0x0b0a0908
- .long 0xffffffff,0xffffffff,0x03020100,0x0b0a0908
- .asciz "SHA256 block transform for x86_64, CRYPTOGAMS by <appro\@openssl.org>"
-+.previous
- ___
- } else {
- $code.=<<___;
-+.rodata
- .align 64
- .type $TABLE,\@object
- $TABLE:
-@@ -537,6 +540,7 @@ $TABLE:
- .quad 0x0001020304050607,0x08090a0b0c0d0e0f
- .quad 0x0001020304050607,0x08090a0b0c0d0e0f
- .asciz "SHA512 block transform for x86_64, CRYPTOGAMS by <appro\@openssl.org>"
-+.previous
- ___
- }
-
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_rand__extra_arc4random.c b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_rand__extra_arc4random.c
deleted file mode 100644
index 0c920ae35733..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_rand__extra_arc4random.c
+++ /dev/null
@@ -1,36 +0,0 @@
---- src/3rdparty/chromium/third_party/boringssl/src/crypto/rand_extra/arc4random.c.orig 2022-02-07 13:39:41 UTC
-+++ src/3rdparty/chromium/third_party/boringssl/src/crypto/rand_extra/arc4random.c
-@@ -0,0 +1,33 @@
-+/* Copyright (c) 2018, Robert Nagy <robert@openbsd.org>
-+ *
-+ * Permission to use, copy, modify, and/or distribute this software for any
-+ * purpose with or without fee is hereby granted, provided that the above
-+ * copyright notice and this permission notice appear in all copies.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-+ * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
-+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
-+
-+#define _BSD_SOURCE 1
-+
-+#include <openssl/rand.h>
-+
-+#if defined(OPENSSL_ARC4RANDOM) && !defined(BORINGSSL_UNSAFE_DETERMINISTIC_MODE)
-+
-+#include <stdlib.h>
-+
-+#include "../fipsmodule/rand/internal.h"
-+
-+void CRYPTO_sysrand_for_seed(uint8_t *out, size_t requested) {
-+ CRYPTO_sysrand(out, requested);
-+}
-+
-+void CRYPTO_sysrand(uint8_t *out, size_t requested) {
-+ arc4random_buf(out, requested);
-+}
-+
-+#endif // OPENSSL_ARC4RANDOM && !BORINGSSL_UNSAFE_DETERMINISTIC_MODE
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_refcount__c11.c b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_refcount__c11.c
deleted file mode 100644
index 25cae0821ee0..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_crypto_refcount__c11.c
+++ /dev/null
@@ -1,12 +0,0 @@
---- src/3rdparty/chromium/third_party/boringssl/src/crypto/refcount_c11.c.orig 2022-09-24 10:57:32 UTC
-+++ src/3rdparty/chromium/third_party/boringssl/src/crypto/refcount_c11.c
-@@ -22,6 +22,9 @@
- #include <stdatomic.h>
- #include <stdlib.h>
-
-+#if !defined(__cplusplus) && !defined(static_assert)
-+#define static_assert _Static_assert
-+#endif
-
- // See comment above the typedef of CRYPTO_refcount_t about these tests.
- static_assert(alignof(CRYPTO_refcount_t) == alignof(_Atomic CRYPTO_refcount_t),
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_include_openssl_base.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_include_openssl_base.h
deleted file mode 100644
index 209350e7f0a6..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_include_openssl_base.h
+++ /dev/null
@@ -1,14 +0,0 @@
---- src/3rdparty/chromium/third_party/boringssl/src/include/openssl/base.h.orig 2023-04-05 11:05:06 UTC
-+++ src/3rdparty/chromium/third_party/boringssl/src/include/openssl/base.h
-@@ -151,6 +151,11 @@ extern "C" {
- #define OPENSSL_FUCHSIA
- #endif
-
-+#if defined(__OpenBSD__)
-+#define OPENSSL_OPENBSD
-+#define OPENSSL_ARC4RANDOM
-+#endif
-+
- #if defined(__TRUSTY__)
- #define OPENSSL_TRUSTY
- #define OPENSSL_NO_THREADS_CORRUPT_MEMORY_AND_LEAK_SECRETS_IF_THREADED
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_include_openssl_thread.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_include_openssl_thread.h
deleted file mode 100644
index b62795e17f60..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_include_openssl_thread.h
+++ /dev/null
@@ -1,10 +0,0 @@
---- src/3rdparty/chromium/third_party/boringssl/src/include/openssl/thread.h.orig 2022-05-19 14:06:27 UTC
-+++ src/3rdparty/chromium/third_party/boringssl/src/include/openssl/thread.h
-@@ -78,6 +78,7 @@ typedef union crypto_mutex_st {
- void *handle;
- } CRYPTO_MUTEX;
- #elif !defined(__GLIBC__)
-+#include <pthread.h>
- typedef pthread_rwlock_t CRYPTO_MUTEX;
- #else
- // On glibc, |pthread_rwlock_t| is hidden under feature flags, and we can't
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_util_generate__build__files.py b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_util_generate__build__files.py
index 3759a6f23805..3efd7510b554 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_util_generate__build__files.py
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_boringssl_src_util_generate__build__files.py
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/boringssl/src/util/generate_build_files.py.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/third_party/boringssl/src/util/generate_build_files.py.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/third_party/boringssl/src/util/generate_build_files.py
-@@ -785,10 +785,10 @@ def main(platforms):
+@@ -766,10 +766,10 @@ def main(platforms):
]
# Generate err_data.c
@@ -15,7 +15,7 @@
crypto_c_files.append('err_data.c')
crypto_c_files.sort()
-@@ -801,11 +801,11 @@ def main(platforms):
+@@ -780,11 +780,11 @@ def main(platforms):
crypto_test_files = []
if EMBED_TEST_DATA:
# Generate crypto_test_data.cc
@@ -29,6 +29,6 @@
+# ['go', 'run', 'util/embed_test_data.go'] + cmake['CRYPTO_TEST_DATA'],
+# cwd='src',
+# stdout=out)
- crypto_test_files += ['crypto_test_data.cc']
+ crypto_test_files.append('crypto_test_data.cc')
- crypto_test_files += FindCFiles(os.path.join('src', 'crypto'), OnlyTests)
+ crypto_test_files += PrefixWithSrc(cmake['CRYPTO_TEST_SOURCES'])
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_cpuinfo_cpuinfo.gni b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_cpuinfo_cpuinfo.gni
new file mode 100644
index 000000000000..fb61d3ecf290
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_cpuinfo_cpuinfo.gni
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/third_party/cpuinfo/cpuinfo.gni.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/third_party/cpuinfo/cpuinfo.gni
+@@ -7,7 +7,7 @@ use_cpuinfo =
+ current_cpu != "ppc64" && current_cpu != "ppc64le" &&
+ current_cpu != "s390" && current_cpu != "s390x" &&
+ # cpuinfo is not supported on fuchsia.
+- !is_fuchsia &&
++ !is_fuchsia && !is_bsd &&
+ # There's a few arm architectures that are not supported by cpuinfo,
+ # especially amongst ChromeOS devices.
+ # See //third_party/cpuinfo/src/src/arm/linux/cp.h.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_build_crashpad__buildconfig.gni b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_build_crashpad__buildconfig.gni
new file mode 100644
index 000000000000..14c9411abecc
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_build_crashpad__buildconfig.gni
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/third_party/crashpad/crashpad/build/crashpad_buildconfig.gni.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/third_party/crashpad/crashpad/build/crashpad_buildconfig.gni
+@@ -61,7 +61,7 @@ if (crashpad_is_in_chromium) {
+ crashpad_is_ios = is_ios
+ crashpad_is_apple = is_apple
+ crashpad_is_win = is_win
+- crashpad_is_linux = is_linux || is_chromeos
++ crashpad_is_linux = (is_linux || is_chromeos) && !is_bsd
+ crashpad_is_android = is_android
+ crashpad_is_fuchsia = is_fuchsia
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_client_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_client_BUILD.gn
new file mode 100644
index 000000000000..8964a52ea7f7
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_client_BUILD.gn
@@ -0,0 +1,16 @@
+--- src/3rdparty/chromium/third_party/crashpad/crashpad/client/BUILD.gn.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/third_party/crashpad/crashpad/client/BUILD.gn
+@@ -137,6 +137,13 @@ static_library("common") {
+ if (crashpad_is_win) {
+ sources += [ "crash_report_database_win.cc" ]
+ }
++
++ if (crashpad_is_posix) {
++ sources += [
++ "crashpad_client_posix.cc",
++ ]
++ }
++
+ if (crashpad_is_linux || crashpad_is_android || crashpad_is_fuchsia) {
+ sources += [
+ "crash_report_database_generic.cc",
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_client_crashpad__client__posix.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_client_crashpad__client__posix.cc
new file mode 100644
index 000000000000..eaa3a41627ed
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_client_crashpad__client__posix.cc
@@ -0,0 +1,43 @@
+--- src/3rdparty/chromium/third_party/crashpad/crashpad/client/crashpad_client_posix.cc.orig 2022-02-07 13:39:41 UTC
++++ src/3rdparty/chromium/third_party/crashpad/crashpad/client/crashpad_client_posix.cc
+@@ -0,0 +1,40 @@
++// Copyright 2017 The Crashpad Authors. All rights reserved.
++//
++// Licensed under the Apache License, Version 2.0 (the "License");
++// you may not use this file except in compliance with the License.
++// You may obtain a copy of the License at
++//
++// http://www.apache.org/licenses/LICENSE-2.0
++//
++// Unless required by applicable law or agreed to in writing, software
++// distributed under the License is distributed on an "AS IS" BASIS,
++// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++// See the License for the specific language governing permissions and
++// limitations under the License.
++
++#include "client/crashpad_client.h"
++
++#include "base/logging.h"
++#include "base/notreached.h"
++
++namespace crashpad {
++
++CrashpadClient::CrashpadClient() {}
++
++CrashpadClient::~CrashpadClient() {}
++
++bool CrashpadClient::StartHandler(
++ const base::FilePath& handler,
++ const base::FilePath& database,
++ const base::FilePath& metrics_dir,
++ const std::string& url,
++ const std::map<std::string, std::string>& annotations,
++ const std::vector<std::string>& arguments,
++ bool restartable,
++ bool asynchronous_start,
++ const std::vector<base::FilePath>& attachments) {
++ NOTREACHED(); // TODO(scottmg): https://crashpad.chromium.org/bug/196
++ return false;
++}
++
++} // namespace crashpad
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_minidump_minidump__misc__info__writer.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_minidump_minidump__misc__info__writer.cc
new file mode 100644
index 000000000000..f337430eb9d6
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_minidump_minidump__misc__info__writer.cc
@@ -0,0 +1,13 @@
+--- src/3rdparty/chromium/third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc.orig 2022-07-22 17:30:31 UTC
++++ src/3rdparty/chromium/third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc
+@@ -159,6 +159,10 @@ std::string MinidumpMiscInfoDebugBuildString() {
+ static constexpr char kOS[] = "win";
+ #elif BUILDFLAG(IS_FUCHSIA)
+ static constexpr char kOS[] = "fuchsia";
++#elif defined(OS_OPENBSD)
++ static constexpr char kOS[] = "openbsd";
++#elif defined(OS_FREEBSD)
++ static constexpr char kOS[] = "freebsd";
+ #else
+ #error define kOS for this operating system
+ #endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_misc_address__types.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_misc_address__types.h
new file mode 100644
index 000000000000..ada89edcb833
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_misc_address__types.h
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/third_party/crashpad/crashpad/util/misc/address_types.h.orig 2022-02-28 16:54:41 UTC
++++ src/3rdparty/chromium/third_party/crashpad/crashpad/util/misc/address_types.h
+@@ -25,7 +25,7 @@
+ #include <mach/mach_types.h>
+ #elif BUILDFLAG(IS_WIN)
+ #include "util/win/address_types.h"
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ #include "util/linux/address_types.h"
+ #elif BUILDFLAG(IS_FUCHSIA)
+ #include <zircon/types.h>
+@@ -55,7 +55,7 @@ using VMSize = mach_vm_size_t;
+ using VMAddress = WinVMAddress;
+ using VMSize = WinVMSize;
+
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+
+ using VMAddress = LinuxVMAddress;
+ using VMSize = LinuxVMSize;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_misc_capture__context.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_misc_capture__context.h
new file mode 100644
index 000000000000..fddd74c41f77
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_misc_capture__context.h
@@ -0,0 +1,22 @@
+--- src/3rdparty/chromium/third_party/crashpad/crashpad/util/misc/capture_context.h.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/third_party/crashpad/crashpad/util/misc/capture_context.h
+@@ -21,7 +21,8 @@
+ #include <mach/mach.h>
+ #elif BUILDFLAG(IS_WIN)
+ #include <windows.h>
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
++ BUILDFLAG(IS_FREEBSD)
+ #include <ucontext.h>
+ #endif // BUILDFLAG(IS_APPLE)
+
+@@ -35,7 +36,8 @@ using NativeCPUContext = arm_unified_thread_state;
+ #endif
+ #elif BUILDFLAG(IS_WIN)
+ using NativeCPUContext = CONTEXT;
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
++ BUILDFLAG(IS_BSD)
+ using NativeCPUContext = ucontext_t;
+ #endif // BUILDFLAG(IS_APPLE)
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_misc_metrics.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_misc_metrics.cc
new file mode 100644
index 000000000000..ae45aff49a98
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_misc_metrics.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/third_party/crashpad/crashpad/util/misc/metrics.cc.orig 2022-02-28 16:54:41 UTC
++++ src/3rdparty/chromium/third_party/crashpad/crashpad/util/misc/metrics.cc
+@@ -25,7 +25,7 @@
+ #define METRICS_OS_NAME "Win"
+ #elif BUILDFLAG(IS_ANDROID)
+ #define METRICS_OS_NAME "Android"
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #define METRICS_OS_NAME "Linux"
+ #elif BUILDFLAG(IS_FUCHSIA)
+ #define METRICS_OS_NAME "Fuchsia"
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_misc_uuid.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_misc_uuid.cc
new file mode 100644
index 000000000000..022e44d4763e
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_misc_uuid.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/third_party/crashpad/crashpad/util/misc/uuid.cc.orig 2022-02-28 16:54:41 UTC
++++ src/3rdparty/chromium/third_party/crashpad/crashpad/util/misc/uuid.cc
+@@ -101,7 +101,7 @@ bool UUID::InitializeWithNew() {
+ InitializeFromBytes(uuid);
+ return true;
+ #elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+- BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ // Linux, Android, and Fuchsia do not provide a UUID generator in a
+ // widely-available system library. On Linux and Android, uuid_generate()
+ // from libuuid is not available everywhere.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_posix_close__multiple.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_posix_close__multiple.cc
new file mode 100644
index 000000000000..051d9df2784d
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_posix_close__multiple.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/third_party/crashpad/crashpad/util/posix/close_multiple.cc.orig 2022-02-28 16:54:41 UTC
++++ src/3rdparty/chromium/third_party/crashpad/crashpad/util/posix/close_multiple.cc
+@@ -72,7 +72,7 @@ void CloseNowOrOnExec(int fd, bool ebadf_ok) {
+ // This is an advantage over looping over all possible file descriptors, because
+ // no attempt needs to be made to close file descriptors that are not open.
+ bool CloseMultipleNowOrOnExecUsingFDDir(int min_fd, int preserve_fd) {
+-#if BUILDFLAG(IS_APPLE)
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
+ static constexpr char kFDDir[] = "/dev/fd";
+ #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
+ static constexpr char kFDDir[] = "/proc/self/fd";
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_posix_drop__privileges.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_posix_drop__privileges.cc
new file mode 100644
index 000000000000..07d2646d3883
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_posix_drop__privileges.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/third_party/crashpad/crashpad/util/posix/drop_privileges.cc.orig 2022-02-28 16:54:41 UTC
++++ src/3rdparty/chromium/third_party/crashpad/crashpad/util/posix/drop_privileges.cc
+@@ -25,7 +25,7 @@ void DropPrivileges() {
+ gid_t gid = getgid();
+ uid_t uid = getuid();
+
+-#if BUILDFLAG(IS_APPLE)
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
+ // Based on the POSIX.1-2008 2013 edition documentation for setreuid() and
+ // setregid(), setreuid() and setregid() alone should be sufficient to drop
+ // privileges. The standard specifies that the saved ID should be set to the
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_posix_signals.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_posix_signals.cc
new file mode 100644
index 000000000000..af3e3cb7d4d0
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_posix_signals.cc
@@ -0,0 +1,33 @@
+--- src/3rdparty/chromium/third_party/crashpad/crashpad/util/posix/signals.cc.orig 2022-08-31 12:19:35 UTC
++++ src/3rdparty/chromium/third_party/crashpad/crashpad/util/posix/signals.cc
+@@ -51,7 +51,7 @@ constexpr int kCrashSignals[] = {
+ #if defined(SIGEMT)
+ SIGEMT,
+ #endif // defined(SIGEMT)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ SIGXCPU,
+ SIGXFSZ,
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+@@ -91,7 +91,7 @@ constexpr int kTerminateSignals[] = {
+ SIGXCPU,
+ SIGXFSZ,
+ #endif // BUILDFLAG(IS_APPLE)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ SIGIO,
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ };
+@@ -251,8 +251,12 @@ bool Signals::WillSignalReraiseAutonomously(const sigi
+ // remains. See 10.12.3 xnu-3789.41.3/bsd/kern/kern_sig.c
+ // psignal_internal().
+ (code > 0 &&
++#if defined(SI_ASYNCIO)
+ code != SI_ASYNCIO &&
++#endif
++#if defined(SI_MESGQ)
+ code != SI_MESGQ &&
++#endif
+ code != SI_QUEUE &&
+ code != SI_TIMER &&
+ code != SI_USER &&
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_posix_symbolic__constants__posix.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_posix_symbolic__constants__posix.cc
new file mode 100644
index 000000000000..4de23be51e5a
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crashpad_crashpad_util_posix_symbolic__constants__posix.cc
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/third_party/crashpad/crashpad/util/posix/symbolic_constants_posix.cc.orig 2022-04-21 18:48:31 UTC
++++ src/3rdparty/chromium/third_party/crashpad/crashpad/util/posix/symbolic_constants_posix.cc
+@@ -67,7 +67,7 @@ constexpr const char* kSignalNames[] = {
+ "INFO",
+ "USR1",
+ "USR2",
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ #if defined(ARCH_CPU_MIPS_FAMILY)
+ "HUP",
+ "INT",
+@@ -138,7 +138,7 @@ constexpr const char* kSignalNames[] = {
+ #endif // defined(ARCH_CPU_MIPS_FAMILY)
+ #endif
+ };
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ // NSIG is 64 to account for real-time signals.
+ static_assert(std::size(kSignalNames) == 32, "kSignalNames length");
+ #else
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crc32c_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crc32c_BUILD.gn
index 43f6c7e72760..f6bf968b709f 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crc32c_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_crc32c_BUILD.gn
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/crc32c/BUILD.gn.orig 2022-02-07 13:39:41 UTC
+--- src/3rdparty/chromium/third_party/crc32c/BUILD.gn.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/third_party/crc32c/BUILD.gn
-@@ -47,7 +47,7 @@ config("crc32c_config") {
+@@ -46,7 +46,7 @@ config("crc32c_config") {
}
# Android added <sys/auxv.h> in API level 18.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_dawn_include_dawn_native_VulkanBackend.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_dawn_include_dawn_native_VulkanBackend.h
index 790f62477c31..bb7e4435422f 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_dawn_include_dawn_native_VulkanBackend.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_dawn_include_dawn_native_VulkanBackend.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/dawn/include/dawn/native/VulkanBackend.h.orig 2022-11-30 08:12:58 UTC
+--- src/3rdparty/chromium/third_party/dawn/include/dawn/native/VulkanBackend.h.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/third_party/dawn/include/dawn/native/VulkanBackend.h
-@@ -82,7 +82,7 @@ struct ExternalImageExportInfoVk : ExternalImageExport
+@@ -80,7 +80,7 @@ struct ExternalImageExportInfoVk : ExternalImageExport
};
// Can't use DAWN_PLATFORM_IS(LINUX) since header included in both Dawn and Chrome
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_BUILD.gn
new file mode 100644
index 000000000000..4917ac78d8ac
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_BUILD.gn
@@ -0,0 +1,10 @@
+--- src/3rdparty/chromium/third_party/ffmpeg/BUILD.gn.orig 2023-12-12 22:08:45 UTC
++++ src/3rdparty/chromium/third_party/ffmpeg/BUILD.gn
+@@ -357,7 +357,6 @@ target(link_target_type, "ffmpeg_internal") {
+ libs += [
+ "m",
+ "z",
+- "rt",
+ ]
+ }
+ if (is_component_ffmpeg) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_chromium_scripts_build__ffmpeg.py b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_chromium_scripts_build__ffmpeg.py
new file mode 100644
index 000000000000..7399348201c9
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_chromium_scripts_build__ffmpeg.py
@@ -0,0 +1,121 @@
+--- src/3rdparty/chromium/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py
+@@ -32,7 +32,7 @@ NDK_ROOT_DIR = os.path.abspath(
+ SUCCESS_TOKEN = 'THIS_BUILD_WORKED'
+
+ sys.path.append(os.path.join(CHROMIUM_ROOT_DIR, 'build'))
+-import gn_helpers
++#import gn_helpers
+
+ BRANDINGS = [
+ 'Chrome',
+@@ -45,6 +45,8 @@ ARCH_MAP = {
+ 'linux': [
+ 'ia32', 'x64', 'noasm-x64', 'arm', 'arm-neon', 'arm64'
+ ],
++ 'openbsd': ['x64', 'arm64', 'ia32'],
++ 'freebsd': ['x64', 'arm64', 'ia32'],
+ 'mac': ['x64', 'arm64'],
+ 'win': ['ia32', 'x64', 'arm64'],
+ }
+@@ -54,6 +56,8 @@ USAGE_END = """
+ Valid combinations are android [%(android)s]
+ linux [%(linux)s]
+ mac [%(mac)s]
++ openbsd [%(openbsd)s]
++ freebsd [%(freebsd)s]
+ win [%(win)s]
+
+ If no target architecture is specified all will be built.
+@@ -126,6 +130,10 @@ def PrintAndCheckCall(argv, *args, **kwargs):
+ def DetermineHostOsAndArch():
+ if platform.system() == 'Linux':
+ host_os = 'linux'
++ if platform.system() == 'OpenBSD':
++ host_os = 'openbsd'
++ elif platform.system() == 'FreeBSD':
++ host_os = 'freebsd'
+ elif platform.system() == 'Darwin':
+ host_os = 'mac'
+ elif platform.system() == 'Windows' or 'CYGWIN_NT' in platform.system():
+@@ -135,7 +143,7 @@ def DetermineHostOsAndArch():
+
+ if re.match(r'i.86', platform.machine()):
+ host_arch = 'ia32'
+- elif platform.machine() == 'x86_64' or platform.machine() == 'AMD64':
++ elif platform.machine() == 'x86_64' or platform.machine() == 'AMD64' or platform.machine() == 'amd64':
+ host_arch = 'x64'
+ elif platform.machine() == 'aarch64':
+ host_arch = 'arm64'
+@@ -152,7 +160,7 @@ def DetermineHostOsAndArch():
+
+
+ def GetDsoName(target_os, dso_name, dso_version):
+- if target_os in ('linux', 'linux-noasm', 'android'):
++ if target_os in ('linux', 'linux-noasm', 'android', 'openbsd', 'freebsd'):
+ return 'lib%s.so.%s' % (dso_name, dso_version)
+ elif target_os == 'mac':
+ return 'lib%s.%s.dylib' % (dso_name, dso_version)
+@@ -495,7 +503,7 @@ def BuildFFmpeg(target_os, target_arch, host_os, host_
+ # removing <sys/sysctl.h> soon, so this is needed to silence a deprecation
+ # #warning which will be converted to an error via -Werror.
+ # There is also no prctl.h
+- if target_os in ['linux', 'linux-noasm']:
++ if target_os in ['linux', 'linux-noasm', 'openbsd', 'freebsd']:
+ pre_make_rewrites += [
+ (r'(#define HAVE_SYSCTL [01])',
+ r'#define HAVE_SYSCTL 0 /* \1 -- forced to 0 for Fuchsia */'),
+@@ -622,7 +630,7 @@ def main(argv):
+ configure_args = args[2:]
+
+
+- if target_os not in ('android', 'linux', 'linux-noasm', 'mac', 'win', 'all'):
++ if target_os not in ('android', 'linux', 'linux-noasm', 'mac', 'win', 'all', 'openbsd', 'freebsd'):
+ parser.print_help()
+ return 1
+
+@@ -744,7 +752,7 @@ def ConfigureAndBuild(target_arch, target_os, host_os,
+ '--enable-parser=vp3,vp8',
+ ])
+
+- if target_os in ('linux', 'linux-noasm', 'android'):
++ if target_os in ('linux', 'linux-noasm', 'android', 'openbsd', 'freebsd'):
+ if target_arch == 'x64':
+ if target_os == 'android':
+ configure_flags['Common'].extend([
+@@ -754,7 +762,7 @@ def ConfigureAndBuild(target_arch, target_os, host_os,
+ configure_flags['Common'].extend([
+ '--enable-lto',
+ '--arch=x86_64',
+- '--target-os=linux',
++ '--target-os=' + target_os,
+ ])
+
+ if host_arch != 'x64':
+@@ -845,7 +853,7 @@ def ConfigureAndBuild(target_arch, target_os, host_os,
+ '--extra-cflags=-mfpu=vfpv3-d16',
+ ])
+ elif target_arch == 'arm64':
+- if target_os != 'android':
++ if target_os != 'android' and target_os != 'openbsd' and target_os != 'freebsd':
+ if host_arch != 'arm64':
+ configure_flags['Common'].extend([
+ '--enable-cross-compile',
+@@ -910,7 +918,7 @@ def ConfigureAndBuild(target_arch, target_os, host_os,
+ '--disable-mips64r2',
+ '--enable-msa',
+ ])
+- if target_os == 'linux':
++ if target_os == 'Linux':
+ configure_flags['Common'].extend([
+ '--enable-cross-compile',
+ '--target-os=linux',
+@@ -1061,7 +1069,7 @@ def ConfigureAndBuild(target_arch, target_os, host_os,
+ 'Chrome', configure_flags['Common'] + configure_flags['ChromeAndroid'] +
+ configure_args)
+
+- if target_os in ['linux', 'linux-noasm']:
++ if target_os in ['linux', 'linux-noasm', 'openbsd', 'freebsd']:
+ # ChromeOS enables MPEG4 which requires error resilience :(
+ chrome_os_flags = (
+ configure_flags['Common'] + configure_flags['Chrome'] +
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_chromium_scripts_robo__lib_config.py b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_chromium_scripts_robo__lib_config.py
new file mode 100644
index 000000000000..c75d668bf1be
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_chromium_scripts_robo__lib_config.py
@@ -0,0 +1,53 @@
+--- src/3rdparty/chromium/third_party/ffmpeg/chromium/scripts/robo_lib/config.py.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/third_party/ffmpeg/chromium/scripts/robo_lib/config.py
+@@ -35,7 +35,7 @@ class RoboConfiguration:
+ self._patches_commit_title = "Chromium patches file"
+ # Title of the commit with README.chromium
+ self._readme_chromium_commit_title = "README.chromium file"
+- self.EnsureHostInfo()
++ #self.EnsureHostInfo()
+ self.EnsureChromeSrc()
+ self.EnsureScriptDirectory()
+
+@@ -47,18 +47,15 @@ class RoboConfiguration:
+ self._llvm_path = os.path.join(self.chrome_src(), "third_party",
+ "llvm-build", "Release+Asserts", "bin")
+
+- self.EnsurePathContainsLLVM()
+- self.EnsureNoMakeInfo()
++ #self.EnsurePathContainsLLVM()
++ #self.EnsureNoMakeInfo()
+ self.EnsureFFmpegHome()
+ self.EnsureASANConfig()
+- self.ComputeBranchName()
++ #self.ComputeBranchName()
+ if not quiet:
+ shell.log(f"Using chrome src: {self.chrome_src()}")
+ shell.log(f"Using script dir: {self._script_directory}")
+ shell.log(f"Using ffmpeg home:{self.ffmpeg_home()}")
+- shell.log(f"On branch: {self.branch_name()}")
+- if self.sushi_branch_name():
+- shell.log(f"On sushi branch: {self.sushi_branch_name()}")
+
+ # Filename that we'll ask generate_gn.py to write git commands to.
+ # TODO: Should this use script_directory, or stay with ffmpeg? As long as
+@@ -149,7 +146,7 @@ class RoboConfiguration:
+ """Ensure that the host architecture and platform are set."""
+ kernel, host, os, *rest = shell.output_or_error(["uname", "-a"]).split()
+ assert kernel in ("Linux", "linux")
+- assert "x86_64" in rest
++ assert ("x86_64", "amd64") in rest
+ self._host_operating_system = "linux"
+ self._host_architecture = "x64"
+
+@@ -165,8 +162,8 @@ class RoboConfiguration:
+ wd = os.getcwd()
+ # Walk up the tree until we find src/AUTHORS
+ while wd != "/":
+- if os.path.isfile(os.path.join(wd, "src", "AUTHORS")):
+- self._chrome_src = os.path.join(wd, "src")
++ if os.path.isfile(os.path.join(wd, "third_party", "DEPS")):
++ self._chrome_src = wd
+ return
+ wd = os.path.dirname(wd)
+ raise Exception("could not find src/AUTHORS in any parent of the wd")
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_configure b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_configure
new file mode 100644
index 000000000000..7978d8f99f43
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_configure
@@ -0,0 +1,10 @@
+--- src/3rdparty/chromium/third_party/ffmpeg/configure.orig 2023-10-12 11:37:12 UTC
++++ src/3rdparty/chromium/third_party/ffmpeg/configure
+@@ -5613,6 +5613,7 @@ case $target_os in
+ disable symver
+ ;;
+ freebsd)
++ enable section_data_rel_ro
+ ;;
+ bsd/os)
+ add_extralibs -lpoll -lgnugetopt
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_libavcodec_x86_cabac.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_libavcodec_x86_cabac.h
new file mode 100644
index 000000000000..67db6588d1e4
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_libavcodec_x86_cabac.h
@@ -0,0 +1,12 @@
+--- src/3rdparty/chromium/third_party/ffmpeg/libavcodec/x86/cabac.h.orig 2022-02-07 13:39:41 UTC
++++ src/3rdparty/chromium/third_party/ffmpeg/libavcodec/x86/cabac.h
+@@ -31,7 +31,8 @@
+
+ #if (defined(__i386) && defined(__clang__) && (__clang_major__<2 || (__clang_major__==2 && __clang_minor__<10)))\
+ || ( !defined(__clang__) && defined(__llvm__) && __GNUC__==4 && __GNUC_MINOR__==2 && __GNUC_PATCHLEVEL__<=1)\
+- || (defined(__INTEL_COMPILER) && defined(_MSC_VER))
++ || (defined(__INTEL_COMPILER) && defined(_MSC_VER)) \
++ || ((defined(__FreeBSD__) || defined(__OpenBSD__)) && defined(__i386))
+ # define BROKEN_COMPILER 1
+ #else
+ # define BROKEN_COMPILER 0
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_libavcodec_x86_fft.asm b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_libavcodec_x86_fft.asm
new file mode 100644
index 000000000000..54e1caaeae4e
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_libavcodec_x86_fft.asm
@@ -0,0 +1,108 @@
+--- src/3rdparty/chromium/third_party/ffmpeg/libavcodec/x86/fft.asm.orig 2023-07-16 15:47:57 UTC
++++ src/3rdparty/chromium/third_party/ffmpeg/libavcodec/x86/fft.asm
+@@ -296,6 +296,7 @@ INIT_YMM avx
+ %if HAVE_AVX_EXTERNAL
+ align 16
+ fft8_avx:
++ _CET_ENDBR
+ mova m0, Z(0)
+ mova m1, Z(1)
+ T8_AVX m0, m1, m2, m3, m4
+@@ -306,6 +307,7 @@ fft8_avx:
+
+ align 16
+ fft16_avx:
++ _CET_ENDBR
+ mova m2, Z(2)
+ mova m3, Z(3)
+ T4_SSE m2, m3, m7
+@@ -343,6 +345,7 @@ fft16_avx:
+
+ align 16
+ fft32_avx:
++ _CET_ENDBR
+ call fft16_avx
+
+ mova m0, Z(4)
+@@ -367,6 +370,7 @@ fft32_avx:
+ ret
+
+ fft32_interleave_avx:
++ _CET_ENDBR
+ call fft32_avx
+ mov r2d, 32
+ .deint_loop:
+@@ -390,6 +394,7 @@ INIT_XMM sse
+ align 16
+ fft4_avx:
+ fft4_sse:
++ _CET_ENDBR
+ mova m0, Z(0)
+ mova m1, Z(1)
+ T4_SSE m0, m1, m2
+@@ -399,6 +404,7 @@ fft4_sse:
+
+ align 16
+ fft8_sse:
++ _CET_ENDBR
+ mova m0, Z(0)
+ mova m1, Z(1)
+ T4_SSE m0, m1, m2
+@@ -413,6 +419,7 @@ fft8_sse:
+
+ align 16
+ fft16_sse:
++ _CET_ENDBR
+ mova m0, Z(0)
+ mova m1, Z(1)
+ T4_SSE m0, m1, m2
+@@ -441,6 +448,7 @@ fft16_sse:
+ %macro DECL_PASS 2+ ; name, payload
+ align 16
+ %1:
++ _CET_ENDBR
+ DEFINE_ARGS zc, w, n, o1, o3
+ lea o3q, [nq*3]
+ lea o1q, [nq*8]
+@@ -457,10 +465,6 @@ DEFINE_ARGS zc, w, n, o1, o3
+ %macro FFT_DISPATCH 2; clobbers 5 GPRs, 8 XMMs
+ lea r2, [dispatch_tab%1]
+ mov r2, [r2 + (%2q-2)*gprsize]
+-%ifdef PIC
+- lea r3, [$$]
+- add r2, r3
+-%endif
+ call r2
+ %endmacro ; FFT_DISPATCH
+
+@@ -585,11 +589,7 @@ cglobal imdct_calc, 3,5,3
+ jl .loop
+ RET
+
+-%ifdef PIC
+-%define SECTION_REL - $$
+-%else
+ %define SECTION_REL
+-%endif
+
+ %macro DECL_FFT 1-2 ; nbits, suffix
+ %ifidn %0, 1
+@@ -613,6 +613,7 @@ cglobal imdct_calc, 3,5,3
+
+ align 16
+ fft %+ n %+ fullsuffix:
++ _CET_ENDBR
+ call fft %+ n2 %+ SUFFIX
+ add r0, n*4 - (n&(-2<<%1))
+ call fft %+ n4 %+ SUFFIX
+@@ -627,8 +628,10 @@ fft %+ n %+ fullsuffix:
+ %endrep
+ %undef n
+
++[SECTION .data.rel.ro write]
+ align 8
+ dispatch_tab %+ fullsuffix: pointer list_of_fft
++__?SECT?__
+ %endmacro ; DECL_FFT
+
+ %if HAVE_AVX_EXTERNAL
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_libavutil_cpu.c b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_libavutil_cpu.c
new file mode 100644
index 000000000000..bdf96b980918
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_libavutil_cpu.c
@@ -0,0 +1,14 @@
+--- src/3rdparty/chromium/third_party/ffmpeg/libavutil/cpu.c.orig 2022-07-22 17:30:31 UTC
++++ src/3rdparty/chromium/third_party/ffmpeg/libavutil/cpu.c
+@@ -38,10 +38,7 @@
+ #if HAVE_GETPROCESSAFFINITYMASK || HAVE_WINRT
+ #include <windows.h>
+ #endif
+-#if HAVE_SYSCTL
+-#if HAVE_SYS_PARAM_H
+-#include <sys/param.h>
+-#endif
++#if HAVE_SYSCTL && !defined(__OpenBSD__)
+ #include <sys/types.h>
+ #include <sys/sysctl.h>
+ #endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_libavutil_mem.c b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_libavutil_mem.c
new file mode 100644
index 000000000000..ee8d0e6f047f
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_libavutil_mem.c
@@ -0,0 +1,12 @@
+--- src/3rdparty/chromium/third_party/ffmpeg/libavutil/mem.c.orig 2022-05-19 14:06:27 UTC
++++ src/3rdparty/chromium/third_party/ffmpeg/libavutil/mem.c
+@@ -33,9 +33,6 @@
+ #include <stdlib.h>
+ #include <stdatomic.h>
+ #include <string.h>
+-#if HAVE_MALLOC_H
+-#include <malloc.h>
+-#endif
+
+ #include "attributes.h"
+ #include "avassert.h"
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_libavutil_random__seed.c b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_libavutil_random__seed.c
new file mode 100644
index 000000000000..56f6d74cfa8e
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_libavutil_random__seed.c
@@ -0,0 +1,14 @@
+--- src/3rdparty/chromium/third_party/ffmpeg/libavutil/random_seed.c.orig 2023-09-13 13:13:30 UTC
++++ src/3rdparty/chromium/third_party/ffmpeg/libavutil/random_seed.c
+@@ -35,6 +35,11 @@
+ #elif CONFIG_OPENSSL
+ #include <openssl/rand.h>
+ #endif
++#if HAVE_ARC4RANDOM_BUF
++#undef __BSD_VISIBLE
++#define __BSD_VISIBLE 1
++#include <stdlib.h>
++#endif
+ #include <fcntl.h>
+ #include <math.h>
+ #include <time.h>
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_libavutil_x86_x86inc.asm b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_libavutil_x86_x86inc.asm
new file mode 100644
index 000000000000..b7c6baa11d8b
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ffmpeg_libavutil_x86_x86inc.asm
@@ -0,0 +1,23 @@
+--- src/3rdparty/chromium/third_party/ffmpeg/libavutil/x86/x86inc.asm.orig 2023-07-16 15:47:57 UTC
++++ src/3rdparty/chromium/third_party/ffmpeg/libavutil/x86/x86inc.asm
+@@ -53,6 +53,12 @@
+ %endif
+ %endif
+
++%if ARCH_X86_64
++ %define _CET_ENDBR endbr64
++%else
++ %define _CET_ENDBR
++%endif
++
+ %define WIN64 0
+ %define UNIX64 0
+ %if ARCH_X86_64
+@@ -768,6 +774,7 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg,
+ %endif
+ align function_align
+ %2:
++ _CET_ENDBR
+ RESET_MM_PERMUTATION ; needed for x86-64, also makes disassembly somewhat nicer
+ %xdefine rstk rsp ; copy of the original stack pointer, used when greater alignment than the known stack alignment is required
+ %assign stack_offset 0 ; stack pointer offset relative to the return address
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_fontconfig_include_config.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_fontconfig_include_config.h
new file mode 100644
index 000000000000..5e821ba16c3d
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_fontconfig_include_config.h
@@ -0,0 +1,89 @@
+--- src/3rdparty/chromium/third_party/fontconfig/include/config.h.orig 2023-04-05 11:05:06 UTC
++++ src/3rdparty/chromium/third_party/fontconfig/include/config.h
+@@ -18,13 +18,13 @@
+ #define ENABLE_NLS 1
+
+ /* Additional font directories */
+-#define FC_ADD_FONTS "yes"
++#define FC_ADD_FONTS "/usr/local/share/fonts"
+
+ /* Architecture prefix to use for cache file names */
+ /* #undef FC_ARCHITECTURE */
+
+ /* System font directory */
+-#define FC_DEFAULT_FONTS "<dir>/usr/share/fonts</dir>"
++#define FC_DEFAULT_FONTS "<dir>/usr/X11R6/lib/X11/fonts</dir>"
+
+ /* The type of len parameter of the gperf hash/lookup function */
+ #define FC_GPERF_SIZE_T size_t
+@@ -99,7 +99,7 @@
+ #define HAVE_GETPAGESIZE 1
+
+ /* Define to 1 if you have the `getprogname' function. */
+-/* #undef HAVE_GETPROGNAME */
++#define HAVE_GETPROGNAME 1
+
+ /* Define if the GNU gettext() function is already present or preinstalled. */
+ #define HAVE_GETTEXT 1
+@@ -141,7 +141,7 @@
+ /* #undef HAVE_NDIR_H */
+
+ /* Define to 1 if you have the 'posix_fadvise' function. */
+-#define HAVE_POSIX_FADVISE 1
++#define HAVE_POSIX_FADVISE 0
+
+ /* Have POSIX threads */
+ #define HAVE_PTHREAD 1
+@@ -156,11 +156,14 @@
+ #define HAVE_RANDOM 1
+
+ /* Define to 1 if you have the `random_r' function. */
+-#define HAVE_RANDOM_R 1
++/* #undef HAVE_RANDOM_R */
+
+ /* Define to 1 if you have the `rand_r' function. */
+ #define HAVE_RAND_R 1
+
++/* Define to 1 if you have the `arc4_random' function. */
++#define HAVE_ARC4RANDOM 1
++
+ /* Define to 1 if you have the `readlink' function. */
+ #define HAVE_READLINK 1
+
+@@ -204,7 +207,7 @@
+ #define HAVE_STRUCT_STATFS_F_FLAGS 1
+
+ /* Define to 1 if `f_fstypename' is a member of `struct statfs'. */
+-/* #undef HAVE_STRUCT_STATFS_F_FSTYPENAME */
++#define HAVE_STRUCT_STATFS_F_FSTYPENAME 1
+
+ /* Define to 1 if `f_basetype' is a member of `struct statvfs'. */
+ /* #undef HAVE_STRUCT_STATVFS_F_BASETYPE */
+@@ -230,7 +233,7 @@
+ #define HAVE_SYS_PARAM_H 1
+
+ /* Define to 1 if you have the <sys/statfs.h> header file. */
+-#define HAVE_SYS_STATFS_H 1
++/* #undef HAVE_SYS_STATFS_H */
+
+ /* Define to 1 if you have the <sys/statvfs.h> header file. */
+ #define HAVE_SYS_STATVFS_H 1
+@@ -242,7 +245,7 @@
+ #define HAVE_SYS_TYPES_H 1
+
+ /* Define to 1 if you have the <sys/vfs.h> header file. */
+-#define HAVE_SYS_VFS_H 1
++/* #undef HAVE_SYS_VFS_H */
+
+ /* Define to 1 if you have the <unistd.h> header file. */
+ #define HAVE_UNISTD_H 1
+@@ -265,7 +268,8 @@
+ /* Define to 1 if you have the `_mktemp_s' function. */
+ /* #undef HAVE__MKTEMP_S */
+
+-/* Define to the sub-directory where libtool stores uninstalled libraries. */
++/* Define to the sub-directory in which libtool stores uninstalled libraries.
++ */
+ #define LT_OBJDIR ".libs/"
+
+ /* Name of package */
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_fontconfig_src_src_fccompat.c b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_fontconfig_src_src_fccompat.c
new file mode 100644
index 000000000000..d61aaa4c78cc
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_fontconfig_src_src_fccompat.c
@@ -0,0 +1,13 @@
+--- src/3rdparty/chromium/third_party/fontconfig/src/src/fccompat.c.orig 2023-04-05 11:05:06 UTC
++++ src/3rdparty/chromium/third_party/fontconfig/src/src/fccompat.c
+@@ -184,7 +184,9 @@ FcRandom(void)
+ {
+ int32_t result;
+
+-#if HAVE_RANDOM_R
++#if HAVE_ARC4RANDOM
++ result = arc4random() & 0x7fffffff;
++#elif HAVE_RANDOM_R
+ static struct random_data fcrandbuf;
+ static char statebuf[256];
+ static FcBool initialized = FcFalse;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ipcz_src_reference__drivers_random.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ipcz_src_reference__drivers_random.cc
index 07420a924166..37f7dfaef0fc 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ipcz_src_reference__drivers_random.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_ipcz_src_reference__drivers_random.cc
@@ -1,16 +1,16 @@
---- src/3rdparty/chromium/third_party/ipcz/src/reference_drivers/random.cc.orig 2022-09-24 10:57:32 UTC
+--- src/3rdparty/chromium/third_party/ipcz/src/reference_drivers/random.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/third_party/ipcz/src/reference_drivers/random.cc
-@@ -15,7 +15,7 @@
- #include <limits>
+@@ -14,7 +14,7 @@
+ #include <windows.h>
#elif BUILDFLAG(IS_FUCHSIA)
#include <zircon/syscalls.h>
-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
+#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
#include <asm/unistd.h>
- #include <errno.h>
#include <sys/syscall.h>
-@@ -78,7 +78,7 @@ void RandomBytes(absl::Span<uint8_t> destination) {
- ABSL_ASSERT(ok);
+ #include <unistd.h>
+@@ -86,7 +86,7 @@ void RandomBytes(absl::Span<uint8_t> destination) {
+ process_prng_fn(destination.data(), destination.size());
#elif BUILDFLAG(IS_FUCHSIA)
zx_cprng_draw(destination.data(), destination.size());
-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_leveldatabase_env__chromium.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_leveldatabase_env__chromium.cc
index c42f7036b5ad..d3327af989cd 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_leveldatabase_env__chromium.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_leveldatabase_env__chromium.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/leveldatabase/env_chromium.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/third_party/leveldatabase/env_chromium.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/third_party/leveldatabase/env_chromium.cc
-@@ -318,7 +318,8 @@ ChromiumWritableFile::ChromiumWritableFile(const std::
+@@ -320,7 +320,8 @@ ChromiumWritableFile::ChromiumWritableFile(const std::
Status ChromiumWritableFile::SyncParent() {
TRACE_EVENT0("leveldb", "SyncParent");
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_libaom_source_libaom_aom__ports_aarch64__cpudetect.c b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_libaom_source_libaom_aom__ports_aarch64__cpudetect.c
new file mode 100644
index 000000000000..e9a5a5d7dccb
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_libaom_source_libaom_aom__ports_aarch64__cpudetect.c
@@ -0,0 +1,39 @@
+--- src/3rdparty/chromium/third_party/libaom/source/libaom/aom_ports/aarch64_cpudetect.c.orig 2023-09-17 18:22:45 UTC
++++ src/3rdparty/chromium/third_party/libaom/source/libaom/aom_ports/aarch64_cpudetect.c
+@@ -85,13 +85,35 @@ static int arm_get_cpu_caps(void) {
+ return flags;
+ }
+
+-#elif defined(ANDROID_USE_CPU_FEATURES_LIB)
++#elif defined(ANDROID_USE_CPU_FEATURES_LIB) || defined(__FreeBSD__)
+
+ static int arm_get_cpu_caps(void) {
+ int flags = 0;
+ #if HAVE_NEON
+ flags |= HAS_NEON; // Neon is mandatory in Armv8.0-A.
+ #endif // HAVE_NEON
++ return flags;
++}
++
++#elif defined(__OpenBSD__)
++#include <sys/sysctl.h>
++#include <machine/cpu.h>
++#include <machine/armreg.h>
++
++static int arm_get_cpu_caps(void) {
++ int flags = 0;
++ int isar0_mib[] = { CTL_MACHDEP, CPU_ID_AA64ISAR0 };
++ uint64_t cpu_id = 0;
++ size_t len = sizeof(cpu_id);
++
++ flags |= HAS_NEON; // Neon is mandatory in Armv8.0-A.
++
++ if (sysctl(isar0_mib, 2, &cpu_id, &len, NULL, 0) < 0)
++ return flags;
++
++ if (ID_AA64ISAR0_AES(cpu_id) >= ID_AA64ISAR0_CRC32_BASE)
++ flags |= HAS_ARM_CRC32;
++
+ return flags;
+ }
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_libsync_src_sync.c b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_libsync_src_sync.c
index 4506da637606..7ea69d700512 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_libsync_src_sync.c
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_libsync_src_sync.c
@@ -1,16 +1,16 @@
---- src/3rdparty/chromium/third_party/libsync/src/sync.c.orig 2023-02-08 09:03:45 UTC
+--- src/3rdparty/chromium/third_party/libsync/src/sync.c.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/third_party/libsync/src/sync.c
-@@ -17,7 +17,9 @@
+@@ -17,8 +17,8 @@
*/
#include <fcntl.h>
-+#if !defined(__OpenBSD__)
- #include <malloc.h>
-+#endif
+-#include <malloc.h>
#include <stdint.h>
++#include <stdlib.h>
#include <string.h>
#include <errno.h>
-@@ -29,6 +31,12 @@
+ #include <poll.h>
+@@ -29,6 +29,12 @@
#include <sync/sync.h>
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_libusb_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_libusb_BUILD.gn
new file mode 100644
index 000000000000..22b7c68e1787
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_libusb_BUILD.gn
@@ -0,0 +1,52 @@
+--- src/3rdparty/chromium/third_party/libusb/BUILD.gn.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/third_party/libusb/BUILD.gn
+@@ -3,7 +3,7 @@
+ # found in the LICENSE file.
+
+ # libusb is only used by //services/device/usb on macOS.
+-assert(is_mac)
++assert(is_mac || is_bsd)
+
+ import("//build/config/chromeos/ui_mode.gni")
+ import("//build/config/features.gni")
+@@ -103,7 +103,7 @@ static_library("libusb") {
+ ]
+ }
+
+- if (is_linux || is_chromeos) {
++ if ((is_linux || is_chromeos) && !is_bsd) {
+ sources += [
+ "src/libusb/os/linux_usbfs.c",
+ "src/libusb/os/linux_usbfs.h",
+@@ -114,11 +114,21 @@ static_library("libusb") {
+ ]
+ }
+
++ if (is_openbsd) {
++ sources += [
++ "src/libusb/os/openbsd_usb.c",
++ ]
++ defines += [
++ "OS_OPENBSD=1",
++ "_GNU_SOURCE=1",
++ ]
++ }
++
+ if (is_chromeos_ash) {
+ defines += [ "USBI_TIMERFD_AVAILABLE" ]
+ }
+
+- if (use_udev) {
++ if (use_udev && !is_bsd) {
+ sources += [ "src/libusb/os/linux_udev.cc" ]
+ defines += [
+ "HAVE_LIBUDEV=1",
+@@ -127,7 +137,7 @@ static_library("libusb") {
+ deps += [ "//build/linux/libudev" ]
+ }
+
+- if ((is_linux || is_chromeos) && !use_udev) {
++ if ((is_linux || is_chromeos) && !use_udev && !is_bsd) {
+ sources += [ "src/libusb/os/linux_netlink.c" ]
+ defines += [ "HAVE_LINUX_NETLINK_H" ]
+ }
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_libusb_src_libusb_core.c b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_libusb_src_libusb_core.c
new file mode 100644
index 000000000000..e26d42ffdd14
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_libusb_src_libusb_core.c
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/third_party/libusb/src/libusb/core.c.orig 2022-02-07 13:39:41 UTC
++++ src/3rdparty/chromium/third_party/libusb/src/libusb/core.c
+@@ -448,7 +448,7 @@ libusb_free_device_list(list, 1);
+ * which grows when required. it can be freed once discovery has completed,
+ * eliminating the need for a list node in the libusb_device structure
+ * itself. */
+-#define DISCOVERED_DEVICES_SIZE_STEP 8
++#define DISCOVERED_DEVICES_SIZE_STEP 16
+
+ static struct discovered_devs *discovered_devs_alloc(void)
+ {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_libusb_src_libusb_os_threads__posix.c b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_libusb_src_libusb_os_threads__posix.c
new file mode 100644
index 000000000000..369d72508877
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_libusb_src_libusb_os_threads__posix.c
@@ -0,0 +1,24 @@
+--- src/3rdparty/chromium/third_party/libusb/src/libusb/os/threads_posix.c.orig 2023-03-09 06:31:50 UTC
++++ src/3rdparty/chromium/third_party/libusb/src/libusb/os/threads_posix.c
+@@ -19,9 +19,11 @@
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+-#if defined(__linux__) || defined(__OpenBSD__)
++#if defined(__linux__)
+ # include <unistd.h>
+ # include <sys/syscall.h>
++#elif defined(__OpenBSD__)
++# include <unistd.h>
+ #elif defined(__APPLE__)
+ # include <mach/mach.h>
+ #elif defined(__CYGWIN__)
+@@ -65,7 +67,7 @@ int usbi_get_tid(void)
+ #elif defined(__OpenBSD__)
+ /* The following only works with OpenBSD > 5.1 as it requires
+ real thread support. For 5.1 and earlier, -1 is returned. */
+- ret = syscall(SYS_getthrid);
++ ret = getthrid();
+ #elif defined(__APPLE__)
+ ret = mach_thread_self();
+ mach_port_deallocate(mach_task_self(), ret);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_libxml_linux_config.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_libxml_linux_config.h
new file mode 100644
index 000000000000..34e828185f7b
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_libxml_linux_config.h
@@ -0,0 +1,12 @@
+--- src/3rdparty/chromium/third_party/libxml/linux/config.h.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/third_party/libxml/linux/config.h
+@@ -69,6 +69,9 @@
+ /* Define to 1 if you have the <pthread.h> header file. */
+ #define HAVE_PTHREAD_H /**/
+
++/* Define to 1 if you have the `arc4random' function. */
++#define HAVE_ARC4RANDOM 1
++
+ /* Define to 1 if you have the `rand_r' function. */
+
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_libxml_src_dict.c b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_libxml_src_dict.c
new file mode 100644
index 000000000000..ce42ad8fb0f6
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_libxml_src_dict.c
@@ -0,0 +1,41 @@
+--- src/3rdparty/chromium/third_party/libxml/src/dict.c.orig 2023-03-09 06:31:50 UTC
++++ src/3rdparty/chromium/third_party/libxml/src/dict.c
+@@ -133,7 +133,7 @@ struct _xmlDict {
+ static xmlMutex xmlDictMutex;
+
+ #ifdef DICT_RANDOMIZATION
+-#ifdef HAVE_RAND_R
++#if defined(HAVE_RAND_R) && !defined(HAVE_ARC4RANDOM)
+ /*
+ * Internal data for random function, protected by xmlDictMutex
+ */
+@@ -160,7 +160,7 @@ int xmlInitializeDict(void) {
+ int __xmlInitializeDict(void) {
+ xmlInitMutex(&xmlDictMutex);
+
+-#ifdef DICT_RANDOMIZATION
++#if defined(DICT_RANDOMIZATION) && !defined(HAVE_ARC4RANDOM)
+ #ifdef HAVE_RAND_R
+ rand_seed = time(NULL);
+ rand_r(& rand_seed);
+@@ -175,13 +175,17 @@ int __xmlInitializeDict(void) {
+ int __xmlRandom(void) {
+ int ret;
+
++#ifdef HAVE_ARC4RANDOM
++ ret = arc4random();
++#else
+ xmlMutexLock(&xmlDictMutex);
+-#ifdef HAVE_RAND_R
++# ifdef HAVE_RAND_R
+ ret = rand_r(& rand_seed);
+-#else
++# else
+ ret = rand();
+-#endif
++# endif
+ xmlMutexUnlock(&xmlDictMutex);
++#endif
+ return(ret);
+ }
+ #endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_lzma__sdk_C_CpuArch.c b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_lzma__sdk_C_CpuArch.c
new file mode 100644
index 000000000000..de897e5ab5f8
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_lzma__sdk_C_CpuArch.c
@@ -0,0 +1,44 @@
+--- src/3rdparty/chromium/third_party/lzma_sdk/C/CpuArch.c.orig 2022-09-04 11:56:14 UTC
++++ src/3rdparty/chromium/third_party/lzma_sdk/C/CpuArch.c
+@@ -412,12 +412,40 @@ BoolInt CPU_IsSupported_SHA1(void) { return APPLE_CRYP
+ BoolInt CPU_IsSupported_SHA2(void) { return APPLE_CRYPTO_SUPPORT_VAL; }
+ BoolInt CPU_IsSupported_AES (void) { return APPLE_CRYPTO_SUPPORT_VAL; }
+
++#elif defined(__OpenBSD__)
+
++#include <sys/param.h>
++#include <sys/sysctl.h>
++#include <machine/cpu.h>
++#include <machine/armreg.h>
++
++BoolInt CPU_IsSupported_NEON() { return 1; }
++
++#define MY_HWCAP_CHECK_FUNC_2(name1, name2) \
++ BoolInt CPU_IsSupported_ ## name1() { \
++ int isar0_mib[] = { CTL_MACHDEP, CPU_ID_AA64ISAR0 }; \
++ size_t len = sizeof(uint64_t); \
++ uint64_t cpu_id = 0; \
++ if (sysctl(isar0_mib, 2, &cpu_id, &len, NULL, 0) < 0) \
++ return 0; \
++ if (ID_AA64ISAR0_ ## name2(cpu_id) >= ID_AA64ISAR0_## name2 ##_BASE) \
++ return 1; \
++ return 0; \
++ }
++
++#define MY_HWCAP_CHECK_FUNC(name) \
++ MY_HWCAP_CHECK_FUNC_2(name, name)
++
++MY_HWCAP_CHECK_FUNC (CRC32)
++MY_HWCAP_CHECK_FUNC (SHA1)
++MY_HWCAP_CHECK_FUNC (SHA2)
++MY_HWCAP_CHECK_FUNC (AES)
++
+ #else // __APPLE__
+
+ #include <sys/auxv.h>
+
+-#if !defined(ARMV8_OS_FUCHSIA)
++#if !defined(ARMV8_OS_FUCHSIA) && !defined(__FreeBSD__)
+ #define USE_HWCAP
+ #endif // !defined(ARMV8_OS_FUCHSIA)
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_maldoca_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_maldoca_BUILD.gn
new file mode 100644
index 000000000000..22f2c7c85230
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_maldoca_BUILD.gn
@@ -0,0 +1,13 @@
+--- src/3rdparty/chromium/third_party/maldoca/BUILD.gn.orig 2023-04-05 11:05:06 UTC
++++ src/3rdparty/chromium/third_party/maldoca/BUILD.gn
+@@ -264,6 +264,10 @@ source_set("maldoca-public-headers") {
+ ":maldoca_chromium_config",
+ ":maldoca_flags",
+ ]
++
++ if (is_bsd) {
++ libs = [ "iconv" ]
++ }
+ }
+
+ static_library("maldoca") {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_maldoca_src_maldoca_base_get__runfiles__dir.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_maldoca_src_maldoca_base_get__runfiles__dir.cc
new file mode 100644
index 000000000000..012d63151999
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_maldoca_src_maldoca_base_get__runfiles__dir.cc
@@ -0,0 +1,32 @@
+--- src/3rdparty/chromium/third_party/maldoca/src/maldoca/base/get_runfiles_dir.cc.orig 2022-02-07 13:39:41 UTC
++++ src/3rdparty/chromium/third_party/maldoca/src/maldoca/base/get_runfiles_dir.cc
+@@ -24,11 +24,6 @@
+ #error "__APPLE__ not supported."
+ #endif
+
+-#if defined(__FreeBSD__)
+-// TODO(#110) FreeBSD-specific headers.
+-#error "__FreeBSD__ not supported."
+-#endif
+-
+ #if defined(_WIN32)
+ #include <windows.h>
+ #define PATH_MAX MAX_PATH
+@@ -50,8 +45,6 @@ std::string GetExecutablePath() {
+ char exe_path[PATH_MAX] = {0};
+ #ifdef __APPLE__
+ #error "__APPLE__ not supported.";
+-#elif defined(__FreeBSD__)
+-#error "__FreeBSD__ not supported.";
+ #elif defined(_WIN32)
+ HMODULE hModule = GetModuleHandleW(NULL);
+ WCHAR wc_file_path[MAX_PATH] = {0};
+@@ -97,8 +90,6 @@ std::string GetExecutablePath() {
+ absl::Status IsDirectory(const std::string& name) {
+ #ifdef __APPLE__
+ #error "__APPLE__ not supported.";
+-#elif defined(__FreeBSD__)
+-#error "__FreeBSD__ not supported.";
+ #else
+ struct stat sbuf;
+ if (stat(name.c_str(), &sbuf) != 0) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_maldoca_src_maldoca_service_common_process__doc__wrapper.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_maldoca_src_maldoca_service_common_process__doc__wrapper.cc
new file mode 100644
index 000000000000..1124a33989b5
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_maldoca_src_maldoca_service_common_process__doc__wrapper.cc
@@ -0,0 +1,29 @@
+--- src/3rdparty/chromium/third_party/maldoca/src/maldoca/service/common/process_doc_wrapper.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/third_party/maldoca/src/maldoca/service/common/process_doc_wrapper.cc
+@@ -7,7 +7,7 @@
+ #include "build/build_config.h"
+
+ #include "base/files/file_util.h"
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/strings/string_util.h"
+ #else
+ #include "base/strings/string_util_win.h"
+@@ -21,7 +21,7 @@ namespace third_party_maldoca {
+
+
+ bool ExtensionEqualInCaseSensitive(base::FilePath file_path, std::string extension){
+- #if defined(OS_LINUX)
++ #if defined(OS_LINUX) || BUILDFLAG(IS_BSD)
+ std::string file_extension = file_path.FinalExtension();
+ return base::CompareCaseInsensitiveASCII(file_extension, extension) == 0;
+ #else
+@@ -74,7 +74,7 @@ void AnalyzeOfficeDocument(base::File office_file,
+ maldoca::DocProcessor doc_processor(processor_config);
+
+ maldoca::ProcessDocumentRequest process_doc_request;
+- #if defined(OS_LINUX)
++ #if defined(OS_LINUX) || BUILDFLAG(IS_BSD)
+ const std::string file_name = file_path.BaseName().value().c_str();
+ process_doc_request.set_file_name(file_name);
+ #endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_material__color__utilities_src_cpp_palettes_tones.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_material__color__utilities_src_cpp_palettes_tones.cc
new file mode 100644
index 000000000000..5756f922f7d5
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_material__color__utilities_src_cpp_palettes_tones.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/third_party/material_color_utilities/src/cpp/palettes/tones.cc.orig 2023-12-12 22:08:45 UTC
++++ src/3rdparty/chromium/third_party/material_color_utilities/src/cpp/palettes/tones.cc
+@@ -14,6 +14,8 @@
+ * limitations under the License.
+ */
+
++#include <cmath>
++
+ #include "cpp/palettes/tones.h"
+
+ #include <cmath>
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_node_node.py b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_node_node.py
new file mode 100644
index 000000000000..8252cc43cf87
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_node_node.py
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/third_party/node/node.py.orig 2023-12-12 22:08:45 UTC
++++ src/3rdparty/chromium/third_party/node/node.py
+@@ -35,6 +35,8 @@ def GetBinaryPath():
+ return os_path.join(os_path.dirname(__file__), *{
+ 'Darwin': ('mac', darwin_name, 'bin', 'node'),
+ 'Linux': ('linux', 'node-linux-x64', 'bin', 'node'),
++ 'OpenBSD': ('openbsd', 'node-openbsd', 'bin', 'node'),
++ 'FreeBSD': ('freebsd', 'node-freebsd', 'bin', 'node'),
+ 'Windows': ('win', 'node.exe'),
+ }[platform.system()])
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_pdfium_core_fxge_cfx__fontmapper.cpp b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_pdfium_core_fxge_cfx__fontmapper.cpp
index 841874419cc8..cefcd897251a 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_pdfium_core_fxge_cfx__fontmapper.cpp
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_pdfium_core_fxge_cfx__fontmapper.cpp
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/third_party/pdfium/core/fxge/cfx_fontmapper.cpp.orig 2022-09-24 10:57:32 UTC
+--- src/3rdparty/chromium/third_party/pdfium/core/fxge/cfx_fontmapper.cpp.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/third_party/pdfium/core/fxge/cfx_fontmapper.cpp
@@ -157,7 +157,7 @@ constexpr AltFontFamily kAltFontFamilies[] = {
{"ForteMT", "Forte"},
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_pdfium_pdfium.gni b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_pdfium_pdfium.gni
index 5a5ccd520ed8..838db5141373 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_pdfium_pdfium.gni
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_pdfium_pdfium.gni
@@ -1,11 +1,11 @@
---- src/3rdparty/chromium/third_party/pdfium/pdfium.gni.orig 2023-02-08 09:03:45 UTC
+--- src/3rdparty/chromium/third_party/pdfium/pdfium.gni.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/third_party/pdfium/pdfium.gni
-@@ -42,7 +42,7 @@ declare_args() {
- pdf_use_cxx20 = is_win && is_component_build
-
- # Build PDFium with PartitionAlloc as the memory allocator.
+@@ -46,7 +46,7 @@ declare_args() {
+ # PDFium will use PartitionAlloc partitions to separate strings, scalars,
+ # etc. from other allocations. However, the use of PartitionAlloc for new or
+ # malloc is controlled by args in build_overrides/partition_alloc.gni.
- pdf_use_partition_alloc = pdf_use_partition_alloc_override
+ pdf_use_partition_alloc = pdf_use_partition_alloc_override && use_partition_alloc_as_malloc
- # Build PDFium to use Skia (experimental) for all PDFium graphics.
- # If enabled, coexists in build with AGG graphics and the default
+ # Temporary config allowing chromium to switch its location of the
+ # partition_alloc library. https://crbug.com/1467773
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_pdfium_third__party_base_compiler__specific.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_pdfium_third__party_base_compiler__specific.h
new file mode 100644
index 000000000000..0479b60ec02a
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_pdfium_third__party_base_compiler__specific.h
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/third_party/pdfium/third_party/base/compiler_specific.h.orig 2023-05-31 08:12:17 UTC
++++ src/3rdparty/chromium/third_party/pdfium/third_party/base/compiler_specific.h
+@@ -17,7 +17,7 @@
+ // Annotate a function indicating it should not be inlined.
+ // Use like:
+ // NOINLINE void DoStuff() { ... }
+-#if defined(__clang__) && HAS_ATTRIBUTE(noinline)
++#if defined(__clang__) && (__clang_major__ >= 15) && HAS_ATTRIBUTE(noinline)
+ #define NOINLINE [[clang::noinline]]
+ #elif defined(COMPILER_GCC) && HAS_ATTRIBUTE(noinline)
+ #define NOINLINE __attribute__((noinline))
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_perfetto_include_perfetto_tracing_track__event__legacy.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_perfetto_include_perfetto_tracing_internal_track__event__legacy.h
index 26507d13fb91..01cf9543d4f4 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_perfetto_include_perfetto_tracing_track__event__legacy.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_perfetto_include_perfetto_tracing_internal_track__event__legacy.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/perfetto/include/perfetto/tracing/track_event_legacy.h.orig 2023-04-05 11:59:13 UTC
-+++ src/3rdparty/chromium/third_party/perfetto/include/perfetto/tracing/track_event_legacy.h
-@@ -267,7 +267,7 @@ class PERFETTO_EXPORT_COMPONENT LegacyTraceId {
+--- src/3rdparty/chromium/third_party/perfetto/include/perfetto/tracing/internal/track_event_legacy.h.orig 2023-04-28 17:01:32 UTC
++++ src/3rdparty/chromium/third_party/perfetto/include/perfetto/tracing/internal/track_event_legacy.h
+@@ -249,7 +249,7 @@ class PERFETTO_EXPORT_COMPONENT LegacyTraceId {
// are different. E.g. on Mac size_t is considered a different type from
// uint64_t even though it has the same size and signedness.
// Below we add overloads for those types that are known to cause ambiguity.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_perfetto_src_base_unix__socket.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_perfetto_src_base_unix__socket.cc
index 94ef36aa2b95..18afd297453e 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_perfetto_src_base_unix__socket.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_perfetto_src_base_unix__socket.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/perfetto/src/base/unix_socket.cc.orig 2022-10-24 13:33:33 UTC
+--- src/3rdparty/chromium/third_party/perfetto/src/base/unix_socket.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/third_party/perfetto/src/base/unix_socket.cc
-@@ -42,7 +42,7 @@
+@@ -44,7 +44,7 @@
#include <unistd.h>
#endif
@@ -9,7 +9,7 @@
#include <sys/ucred.h>
#endif
-@@ -803,9 +803,13 @@ void UnixSocket::ReadPeerCredentialsPosix() {
+@@ -917,9 +917,13 @@ void UnixSocket::ReadPeerCredentialsPosix() {
return;
PERFETTO_CHECK(peer_cred_mode_ != SockPeerCredMode::kIgnore);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_perfetto_src_trace__processor_db_storage_numeric__storage.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_perfetto_src_trace__processor_db_storage_numeric__storage.cc
new file mode 100644
index 000000000000..565f390bca05
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_perfetto_src_trace__processor_db_storage_numeric__storage.cc
@@ -0,0 +1,16 @@
+--- src/3rdparty/chromium/third_party/perfetto/src/trace_processor/db/storage/numeric_storage.cc.orig 2023-10-14 11:56:57 UTC
++++ src/3rdparty/chromium/third_party/perfetto/src/trace_processor/db/storage/numeric_storage.cc
+@@ -245,8 +245,13 @@ BitVector NumericStorage::LinearSearch(FilterOp op,
+ } else if (const auto* i32 = std::get_if<int32_t>(&*val)) {
+ auto* start = static_cast<const int32_t*>(data_) + range.start;
+ TypedLinearSearch(*i32, start, op, builder);
++#if (defined(__OpenBSD__) || defined(__FreeBSD__)) && defined(__i386__)
++ } else if (const auto* db = std::get_if<long double>(&*val)) {
++ auto* start = static_cast<const long double*>(data_) + range.start;
++#else
+ } else if (const auto* db = std::get_if<double>(&*val)) {
+ auto* start = static_cast<const double*>(data_) + range.start;
++#endif
+ TypedLinearSearch(*db, start, op, builder);
+ } else {
+ PERFETTO_DFATAL("Invalid");
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_perfetto_src_tracing_core_tracing__service__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_perfetto_src_tracing_core_tracing__service__impl.cc
index a9d978192472..6efdf1fe26fe 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_perfetto_src_tracing_core_tracing__service__impl.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_perfetto_src_tracing_core_tracing__service__impl.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/perfetto/src/tracing/core/tracing_service_impl.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/third_party/perfetto/src/tracing/core/tracing_service_impl.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/third_party/perfetto/src/tracing/core/tracing_service_impl.cc
-@@ -3122,7 +3122,8 @@ bool TracingServiceImpl::SnapshotClocks(
+@@ -3213,7 +3213,8 @@ bool TracingServiceImpl::SnapshotClocks(
#if !PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE) && \
!PERFETTO_BUILDFLAG(PERFETTO_OS_WIN) && \
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_perfetto_src_tracing_ipc_memfd.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_perfetto_src_tracing_ipc_memfd.cc
new file mode 100644
index 000000000000..fb3732693530
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_perfetto_src_tracing_ipc_memfd.cc
@@ -0,0 +1,12 @@
+--- src/3rdparty/chromium/third_party/perfetto/src/tracing/ipc/memfd.cc.orig 2023-09-13 18:23:44 UTC
++++ src/3rdparty/chromium/third_party/perfetto/src/tracing/ipc/memfd.cc
+@@ -20,7 +20,8 @@
+
+ #define PERFETTO_MEMFD_ENABLED() \
+ PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) || \
+- PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX)
++ (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && \
++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD))
+
+ #if PERFETTO_MEMFD_ENABLED()
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_perfetto_src_tracing_track.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_perfetto_src_tracing_track.cc
new file mode 100644
index 000000000000..fdff02b8b3c7
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_perfetto_src_tracing_track.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/third_party/perfetto/src/tracing/track.cc.orig 2023-05-31 08:12:17 UTC
++++ src/3rdparty/chromium/third_party/perfetto/src/tracing/track.cc
+@@ -143,7 +143,7 @@ namespace internal {
+ namespace {
+
+ uint64_t GetProcessStartTime() {
+-#if !PERFETTO_BUILDFLAG(PERFETTO_OS_WIN)
++#if !PERFETTO_BUILDFLAG(PERFETTO_OS_WIN) && !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)
+ std::string stat;
+ if (!base::ReadFile("/proc/self/stat", &stat))
+ return 0u;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_skia_src_core_SkCpu.cpp b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_skia_src_core_SkCpu.cpp
deleted file mode 100644
index 85318d909ea7..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_skia_src_core_SkCpu.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
---- src/3rdparty/chromium/third_party/skia/src/core/SkCpu.cpp.orig 2023-11-20 16:08:07 UTC
-+++ src/3rdparty/chromium/third_party/skia/src/core/SkCpu.cpp
-@@ -73,6 +73,42 @@
- return features;
- }
-
-+#elif defined(SK_CPU_ARM64) && defined(__OpenBSD__)
-+ #include <sys/sysctl.h>
-+ #include <machine/cpu.h>
-+ #include <machine/armreg.h>
-+
-+ static uint32_t read_cpu_features() {
-+ int isar0_mib[] = { CTL_MACHDEP, CPU_ID_AA64ISAR0 };
-+ size_t len = sizeof(uint64_t);
-+ uint64_t cpu_id = 0;
-+ uint32_t features = 0;
-+
-+ if (sysctl(isar0_mib, 2, &cpu_id, &len, NULL, 0) == 0) {
-+ if (ID_AA64ISAR0_CRC32(cpu_id) >= ID_AA64ISAR0_CRC32_BASE)
-+ features |= SkCpu::CRC32;
-+ }
-+
-+ return features;
-+ }
-+
-+#elif defined(SK_CPU_ARM64) && defined(__FreeBSD__)
-+ #include <machine/armreg.h>
-+ #ifndef ID_AA64ISAR0_CRC32_VAL
-+ #define ID_AA64ISAR0_CRC32_VAL ID_AA64ISAR0_CRC32
-+ #endif
-+
-+ static uint32_t read_cpu_features() {
-+ uint32_t features = 0;
-+ uint64_t id_aa64isar0;
-+
-+ id_aa64isar0 = READ_SPECIALREG(id_aa64isar0_el1);
-+ if (ID_AA64ISAR0_CRC32_VAL(id_aa64isar0) == ID_AA64ISAR0_CRC32_BASE) {
-+ features |= SkCpu::CRC32;
-+ }
-+ return features;
-+ }
-+
- #elif defined(SK_CPU_ARM64) && __has_include(<sys/auxv.h>)
- #include <sys/auxv.h>
-
-@@ -110,6 +146,23 @@
- if (std::size(buf) != midr_el1.read(buf, std::size(buf))
- || 0 == memcmp(kMongoose3, buf, std::size(buf))) {
- features &= ~(SkCpu::ASIMDHP);
-+ }
-+ }
-+ return features;
-+ }
-+
-+#elif defined(SK_CPU_ARM32) && defined(__FreeBSD__)
-+ #include <sys/auxv.h>
-+
-+ static uint32_t read_cpu_features() {
-+ unsigned long hwcaps = 0;
-+ uint32_t features = 0;
-+
-+ elf_aux_info(AT_HWCAP, (void *)&hwcaps, sizeof hwcaps);
-+ if (hwcaps & HWCAP_NEON) {
-+ features |= SkCpu::NEON;
-+ if (hwcaps & HWCAP_VFPv4) {
-+ features |= SkCpu::NEON_FMA|SkCpu::VFP_FP16;
- }
- }
- return features;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_sqlite_src_amalgamation_sqlite3.c b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_sqlite_src_amalgamation_sqlite3.c
index a01061bd59ab..751b46f30d9d 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_sqlite_src_amalgamation_sqlite3.c
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_sqlite_src_amalgamation_sqlite3.c
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/sqlite/src/amalgamation/sqlite3.c.orig 2023-04-20 13:16:39 UTC
+--- src/3rdparty/chromium/third_party/sqlite/src/amalgamation/sqlite3.c.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/third_party/sqlite/src/amalgamation/sqlite3.c
-@@ -43595,7 +43595,12 @@ static int unixRandomness(sqlite3_vfs *NotUsed, int nB
+@@ -43843,7 +43843,12 @@ static int unixRandomness(sqlite3_vfs *NotUsed, int nB
memset(zBuf, 0, nBuf);
randomnessPid = osGetpid(0);
#if !defined(SQLITE_TEST) && !defined(SQLITE_OMIT_RANDOMNESS)
@@ -13,7 +13,7 @@
int fd, got;
fd = robust_open("/dev/urandom", O_RDONLY, 0);
if( fd<0 ){
-@@ -43610,6 +43615,7 @@ static int unixRandomness(sqlite3_vfs *NotUsed, int nB
+@@ -43858,6 +43863,7 @@ static int unixRandomness(sqlite3_vfs *NotUsed, int nB
robust_close(0, fd, __LINE__);
}
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_swiftshader_src_Reactor_Debug.cpp b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_swiftshader_src_Reactor_Debug.cpp
new file mode 100644
index 000000000000..7a5739bd8b76
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_swiftshader_src_Reactor_Debug.cpp
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/third_party/swiftshader/src/Reactor/Debug.cpp.orig 2022-02-07 13:39:41 UTC
++++ src/3rdparty/chromium/third_party/swiftshader/src/Reactor/Debug.cpp
+@@ -46,7 +46,7 @@ namespace {
+
+ bool IsUnderDebugger()
+ {
+-#if defined(PTRACE) && !defined(__APPLE__) && !defined(__MACH__)
++#if defined(PTRACE) && !defined(__APPLE__) && !defined(__MACH__) && !defined(__OpenBSD__) && !defined(__FreeBSD__)
+ static bool checked = false;
+ static bool res = false;
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_swiftshader_src_System_Configurator.cpp b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_swiftshader_src_System_Configurator.cpp
new file mode 100644
index 000000000000..4f44dbe0672b
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_swiftshader_src_System_Configurator.cpp
@@ -0,0 +1,12 @@
+--- src/3rdparty/chromium/third_party/swiftshader/src/System/Configurator.cpp.orig 2022-06-17 14:20:10 UTC
++++ src/3rdparty/chromium/third_party/swiftshader/src/System/Configurator.cpp
+@@ -38,6 +38,9 @@ namespace sw {
+
+ Configurator::Configurator(const std::string &filePath)
+ {
++#if defined(__OpenBSD__) || defined(__FreeBSD__)
++ return;
++#endif
+ std::fstream file(filePath, std::ios::in);
+ if(file.fail())
+ {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_swiftshader_src_System_Linux_MemFd.cpp b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_swiftshader_src_System_Linux_MemFd.cpp
new file mode 100644
index 000000000000..b29f4c1c736a
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_swiftshader_src_System_Linux_MemFd.cpp
@@ -0,0 +1,37 @@
+--- src/3rdparty/chromium/third_party/swiftshader/src/System/Linux/MemFd.cpp.orig 2023-09-13 18:23:44 UTC
++++ src/3rdparty/chromium/third_party/swiftshader/src/System/Linux/MemFd.cpp
+@@ -25,6 +25,7 @@
+ # define MFD_CLOEXEC 0x0001U
+ #endif
+
++#if !defined(__OpenBSD__) && !defined(__FreeBSD__)
+ #if __aarch64__
+ # define __NR_memfd_create 279
+ #elif __arm__
+@@ -36,6 +37,7 @@
+ #elif __x86_64__
+ # define __NR_memfd_create 319
+ #endif /* __NR_memfd_create__ */
++#endif
+
+ LinuxMemFd::~LinuxMemFd()
+ {
+@@ -63,13 +65,17 @@ bool LinuxMemFd::allocate(const char *name, size_t siz
+ {
+ close();
+
+-#ifndef __NR_memfd_create
++#if !defined(__NR_memfd_create) || defined(__OpenBSD__)
+ TRACE("memfd_create() not supported on this system!");
+ return false;
+ #else
+ // In the event of no system call this returns -1 with errno set
+ // as ENOSYS.
++#if defined(__FreeBSD__)
++ fd_ = memfd_create(name, MFD_CLOEXEC);
++#else
+ fd_ = syscall(__NR_memfd_create, name, MFD_CLOEXEC);
++#endif
+ if(fd_ < 0)
+ {
+ TRACE("memfd_create() returned %d: %s", errno, strerror(errno));
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_swiftshader_src_Vulkan_VkSemaphoreExternalLinux.hpp b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_swiftshader_src_Vulkan_VkSemaphoreExternalLinux.hpp
new file mode 100644
index 000000000000..9abee3a057df
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_swiftshader_src_Vulkan_VkSemaphoreExternalLinux.hpp
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/third_party/swiftshader/src/Vulkan/VkSemaphoreExternalLinux.hpp.orig 2022-02-07 13:39:41 UTC
++++ src/3rdparty/chromium/third_party/swiftshader/src/Vulkan/VkSemaphoreExternalLinux.hpp
+@@ -49,13 +49,17 @@ class SharedSemaphore (public)
+ {
+ pthread_mutexattr_t mattr;
+ pthread_mutexattr_init(&mattr);
++#if 0
+ pthread_mutexattr_setpshared(&mattr, PTHREAD_PROCESS_SHARED);
++#endif
+ pthread_mutex_init(&mutex, &mattr);
+ pthread_mutexattr_destroy(&mattr);
+
+ pthread_condattr_t cattr;
+ pthread_condattr_init(&cattr);
++#if 0
+ pthread_condattr_setpshared(&cattr, PTHREAD_PROCESS_SHARED);
++#endif
+ pthread_cond_init(&cond, &cattr);
+ pthread_condattr_destroy(&cattr);
+ }
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_swiftshader_src_WSI_libXCB.cpp b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_swiftshader_src_WSI_libXCB.cpp
new file mode 100644
index 000000000000..befa5de154a5
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_swiftshader_src_WSI_libXCB.cpp
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/third_party/swiftshader/src/WSI/libXCB.cpp.orig 2023-03-09 06:31:50 UTC
++++ src/3rdparty/chromium/third_party/swiftshader/src/WSI/libXCB.cpp
+@@ -57,7 +57,7 @@ LibXcbExports *LibXCB::loadExports()
+ }
+ else
+ {
+- libxcb = loadLibrary("libxcb.so.1");
++ libxcb = loadLibrary("libxcb.so");
+ }
+
+ if(getProcAddress(RTLD_DEFAULT, "xcb_shm_query_version")) // Search the global scope for pre-loaded XCB library.
+@@ -66,7 +66,7 @@ LibXcbExports *LibXCB::loadExports()
+ }
+ else
+ {
+- libshm = loadLibrary("libxcb-shm.so.0");
++ libshm = loadLibrary("libxcb-shm.so");
+ }
+
+ return LibXcbExports(libxcb, libshm);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_test__fonts_fontconfig_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_test__fonts_fontconfig_BUILD.gn
new file mode 100644
index 000000000000..0ec45d02194b
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_test__fonts_fontconfig_BUILD.gn
@@ -0,0 +1,15 @@
+--- src/3rdparty/chromium/third_party/test_fonts/fontconfig/BUILD.gn.orig 2022-03-01 11:59:41 UTC
++++ src/3rdparty/chromium/third_party/test_fonts/fontconfig/BUILD.gn
+@@ -26,7 +26,11 @@ if (is_linux || is_chromeos) {
+
+ copy("fonts_conf") {
+ sources = [ "fonts.conf" ]
+- outputs = [ "$root_out_dir/etc/fonts/{{source_file_part}}" ]
++ if (is_freebsd) {
++ outputs = [ "$root_out_dir/usr/local/etc/fonts/{{source_file_part}}" ]
++ } else {
++ outputs = [ "$root_out_dir/etc/fonts/{{source_file_part}}" ]
++ }
+ }
+
+ if (current_toolchain == host_toolchain) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_test__fonts_fontconfig_fontconfig__util__linux.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_test__fonts_fontconfig_fontconfig__util__linux.cc
new file mode 100644
index 000000000000..2166d1d0e2eb
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_test__fonts_fontconfig_fontconfig__util__linux.cc
@@ -0,0 +1,27 @@
+--- src/3rdparty/chromium/third_party/test_fonts/fontconfig/fontconfig_util_linux.cc.orig 2022-03-25 21:59:56 UTC
++++ src/3rdparty/chromium/third_party/test_fonts/fontconfig/fontconfig_util_linux.cc
+@@ -2,6 +2,8 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include "build/build_config.h"
++
+ #include "third_party/test_fonts/fontconfig/fontconfig_util_linux.h"
+
+ #include <fontconfig/fontconfig.h>
+@@ -15,11 +17,15 @@
+ namespace test_fonts {
+
+ std::string GetSysrootDir() {
++#if BUILDFLAG(IS_BSD)
++ return std::string(".");
++#else
+ char buf[PATH_MAX + 1];
+ auto count = readlink("/proc/self/exe", buf, PATH_MAX);
+ assert(count > 0);
+ buf[count] = '\0';
+ return dirname(buf);
++#endif
+ }
+
+ void SetUpFontconfig() {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_test__fonts_fontconfig_generate__fontconfig__caches.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_test__fonts_fontconfig_generate__fontconfig__caches.cc
new file mode 100644
index 000000000000..ba43c4f788ae
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_test__fonts_fontconfig_generate__fontconfig__caches.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc.orig 2023-04-05 11:05:06 UTC
++++ src/3rdparty/chromium/third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc
+@@ -56,7 +56,7 @@ int main() {
+ FcFini();
+
+ // Check existence of intended fontconfig cache file.
+- auto cache = fontconfig_caches + "/" + kCacheKey + "-le64.cache-9";
++ auto cache = fontconfig_caches + "/" + kCacheKey + "-le64.cache-" + FC_CACHE_VERSION;
+ bool cache_exists = access(cache.c_str(), F_OK) == 0;
+ return !cache_exists;
+ }
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_vulkan-deps_vulkan-loader_src_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_vulkan-deps_vulkan-loader_src_BUILD.gn
index a10cd1178266..bf385233e1f8 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_vulkan-deps_vulkan-loader_src_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_vulkan-deps_vulkan-loader_src_BUILD.gn
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/third_party/vulkan-deps/vulkan-loader/src/BUILD.gn.orig 2023-01-11 09:17:16 UTC
+--- src/3rdparty/chromium/third_party/vulkan-deps/vulkan-loader/src/BUILD.gn.orig 2023-07-16 15:47:57 UTC
+++ src/3rdparty/chromium/third_party/vulkan-deps/vulkan-loader/src/BUILD.gn
@@ -59,7 +59,7 @@ config("vulkan_internal_config") {
defines += [
@@ -8,4 +8,4 @@
+ "FALLBACK_DATA_DIRS=\"/usr/X11R6/share:/usr/local/share:/usr/share\"",
]
}
- }
+ if (!vulkan_loader_shared) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_vulkan-deps_vulkan-loader_src_loader_vk__loader__platform.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_vulkan-deps_vulkan-loader_src_loader_vk__loader__platform.h
index 615a939c5599..78722a23698c 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_vulkan-deps_vulkan-loader_src_loader_vk__loader__platform.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_vulkan-deps_vulkan-loader_src_loader_vk__loader__platform.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/vulkan-deps/vulkan-loader/src/loader/vk_loader_platform.h.orig 2023-01-11 09:17:16 UTC
+--- src/3rdparty/chromium/third_party/vulkan-deps/vulkan-loader/src/loader/vk_loader_platform.h.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/third_party/vulkan-deps/vulkan-loader/src/loader/vk_loader_platform.h
-@@ -294,7 +294,15 @@ static inline char *loader_platform_executable_path(ch
+@@ -304,7 +304,15 @@ static inline char *loader_platform_executable_path(ch
return buffer;
}
@@ -15,5 +15,5 @@
+}
+#elif defined(__Fuchsia__)
static inline char *loader_platform_executable_path(char *buffer, size_t size) { return NULL; }
- #elif defined(__QNXNTO__)
+ #elif defined(__QNX__)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_vulkan-deps_vulkan-validation-layers_src_layers_vk__mem__alloc.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_vulkan-deps_vulkan-validation-layers_src_layers_external_vma_vk__mem__alloc.h
index d759643467ec..262b38b443fc 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_vulkan-deps_vulkan-validation-layers_src_layers_vk__mem__alloc.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_vulkan-deps_vulkan-validation-layers_src_layers_external_vma_vk__mem__alloc.h
@@ -1,11 +1,11 @@
---- src/3rdparty/chromium/third_party/vulkan-deps/vulkan-validation-layers/src/layers/vk_mem_alloc.h.orig 2023-03-09 06:31:50 UTC
-+++ src/3rdparty/chromium/third_party/vulkan-deps/vulkan-validation-layers/src/layers/vk_mem_alloc.h
-@@ -2703,7 +2703,7 @@ static void* vma_aligned_alloc(size_t alignment, size_
+--- src/3rdparty/chromium/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h.orig 2023-05-31 08:12:17 UTC
++++ src/3rdparty/chromium/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
+@@ -2740,7 +2740,7 @@ static void* vma_aligned_alloc(size_t alignment, size_
return memalign(alignment, size);
}
-#elif defined(__APPLE__) || defined(__ANDROID__) || (defined(__linux__) && defined(__GLIBCXX__) && !defined(_GLIBCXX_HAVE_ALIGNED_ALLOC))
+#elif defined(__APPLE__) || defined(__ANDROID__) || (defined(__linux__) && defined(__GLIBCXX__) && !defined(_GLIBCXX_HAVE_ALIGNED_ALLOC)) || defined(__OpenBSD__) || defined(__FreeBSD__)
- #define ALIGNED_ALLOC_WITH_POSIX_MEMALIGN
- #elif defined(__GNU_LIBRARY__)
- # if !defined(__GLIBC_PREREQ) || !__GLIBC_PREREQ(2, 16)
+ #include <cstdlib>
+
+ #if defined(__APPLE__)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_vulkan__memory__allocator_include_vk__mem__alloc.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_vulkan__memory__allocator_include_vk__mem__alloc.h
index 51abae4160d2..79fb83e67a78 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_vulkan__memory__allocator_include_vk__mem__alloc.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_vulkan__memory__allocator_include_vk__mem__alloc.h
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h
@@ -2507,7 +2507,7 @@ void *vma_aligned_alloc(size_t alignment, size_t size)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_wayland_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_wayland_BUILD.gn
new file mode 100644
index 000000000000..e7d1cf81aa50
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_wayland_BUILD.gn
@@ -0,0 +1,14 @@
+--- src/3rdparty/chromium/third_party/wayland/BUILD.gn.orig 2023-02-08 15:40:14 UTC
++++ src/3rdparty/chromium/third_party/wayland/BUILD.gn
+@@ -22,6 +22,11 @@ config("wayland_config") {
+ "src/src",
+ ]
+
++ if (is_bsd) {
++ include_dirs += [ "/usr/local/include/libepoll-shim" ]
++ libs = [ "epoll-shim" ]
++ }
++
+ # Client/Server headers are automatically generated. Though, we still need
+ # to pass the path where these headers are located.
+ include_dirs += [ "$root_gen_dir/third_party/wayland/src/protocol" ]
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_BUILD.gn
index 8b8bdc8af8aa..ab2fc3d5a55d 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_BUILD.gn
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/webrtc/BUILD.gn.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/third_party/webrtc/BUILD.gn.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/third_party/webrtc/BUILD.gn
-@@ -211,6 +211,9 @@ config("common_inherited_config") {
+@@ -216,6 +216,9 @@ config("common_inherited_config") {
if (is_linux || is_chromeos) {
defines += [ "WEBRTC_LINUX" ]
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_modules_audio__device_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_modules_audio__device_BUILD.gn
index 9b9fabb12f88..bbb9e9aecb9a 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_modules_audio__device_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_modules_audio__device_BUILD.gn
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/webrtc/modules/audio_device/BUILD.gn.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/third_party/webrtc/modules/audio_device/BUILD.gn.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/third_party/webrtc/modules/audio_device/BUILD.gn
-@@ -300,7 +300,7 @@ rtc_library("audio_device_impl") {
+@@ -349,7 +349,7 @@ rtc_library("audio_device_impl") {
if (rtc_use_dummy_audio_file_devices) {
defines += [ "WEBRTC_DUMMY_FILE_DEVICES" ]
} else {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_modules_desktop__capture_linux_wayland_egl__dmabuf.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_modules_desktop__capture_linux_wayland_egl__dmabuf.cc
new file mode 100644
index 000000000000..d68e7a9f0a52
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_modules_desktop__capture_linux_wayland_egl__dmabuf.cc
@@ -0,0 +1,18 @@
+--- src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc.orig 2023-08-23 11:41:11 UTC
++++ src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc
+@@ -10,11 +10,15 @@
+
+ #include "modules/desktop_capture/linux/wayland/egl_dmabuf.h"
+
++#if !defined(WEBRTC_BSD)
+ #include <asm/ioctl.h>
++#endif
+ #include <dlfcn.h>
+ #include <fcntl.h>
+ #include <libdrm/drm_fourcc.h>
++#if !defined(WEBRTC_BSD)
+ #include <linux/types.h>
++#endif
+ #include <spa/param/video/format-utils.h>
+ #include <unistd.h>
+ #include <xf86drm.h>
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_modules_desktop__capture_linux_x11_x__server__pixel__buffer.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_modules_desktop__capture_linux_x11_x__server__pixel__buffer.cc
index c3a3263e64d8..ced8e98eea09 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_modules_desktop__capture_linux_x11_x__server__pixel__buffer.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_modules_desktop__capture_linux_x11_x__server__pixel__buffer.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/x11/x_server_pixel_buffer.cc.orig 2022-02-28 16:54:41 UTC
+--- src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/x11/x_server_pixel_buffer.cc.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/x11/x_server_pixel_buffer.cc
-@@ -212,6 +212,12 @@ bool XServerPixelBuffer::Init(XAtomCache* cache, Windo
+@@ -203,6 +203,12 @@ bool XServerPixelBuffer::Init(XAtomCache* cache, Windo
void XServerPixelBuffer::InitShm(const XWindowAttributes& attributes) {
Visual* default_visual = attributes.visual;
int default_depth = attributes.depth;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_pc_legacy__stats__collector.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_pc_legacy__stats__collector.cc
index 7c8461b8c921..d2078c74e315 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_pc_legacy__stats__collector.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_pc_legacy__stats__collector.cc
@@ -14,9 +14,9 @@ Date: 2023-12-21T14:08:26+01:00
Reviewed-by: Henrik Bostr旦m <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41432}
---- src/3rdparty/chromium/third_party/webrtc/pc/legacy_stats_collector.cc.orig 2023-11-20 16:08:07 UTC
+--- src/3rdparty/chromium/third_party/webrtc/pc/legacy_stats_collector.cc.orig 2024-02-10 00:27:53 UTC
+++ src/3rdparty/chromium/third_party/webrtc/pc/legacy_stats_collector.cc
-@@ -189,9 +189,10 @@ void ExtractStats(const cricket::VoiceReceiverInfo& in
+@@ -188,9 +188,10 @@ void ExtractStats(const cricket::VoiceReceiverInfo& in
{StatsReport::kStatsValueNameAccelerateRate, info.accelerate_rate},
{StatsReport::kStatsValueNamePreemptiveExpandRate,
info.preemptive_expand_rate},
@@ -29,7 +29,7 @@ Date: 2023-12-21T14:08:26+01:00
const IntForAdd ints[] = {
{StatsReport::kStatsValueNameCurrentDelayMs, info.delay_estimate_ms},
-@@ -245,9 +246,10 @@ void ExtractStats(const cricket::VoiceSenderInfo& info
+@@ -244,9 +245,10 @@ void ExtractStats(const cricket::VoiceSenderInfo& info
SetAudioProcessingStats(report, info.apm_statistics);
const FloatForAdd floats[] = {
@@ -42,7 +42,7 @@ Date: 2023-12-21T14:08:26+01:00
RTC_DCHECK_GE(info.audio_level, 0);
const IntForAdd ints[] = {
-@@ -341,7 +343,8 @@ void ExtractStats(const cricket::VideoReceiverInfo& in
+@@ -340,7 +342,8 @@ void ExtractStats(const cricket::VideoReceiverInfo& in
{StatsReport::kStatsValueNamePlisSent, info.plis_sent},
{StatsReport::kStatsValueNameRenderDelayMs, info.render_delay_ms},
{StatsReport::kStatsValueNameTargetDelayMs, info.target_delay_ms},
@@ -52,21 +52,21 @@ Date: 2023-12-21T14:08:26+01:00
};
for (const auto& i : ints)
-@@ -385,15 +388,19 @@ void ExtractStats(const cricket::VideoSenderInfo& info
+@@ -384,15 +387,19 @@ void ExtractStats(const cricket::VideoSenderInfo& info
info.encode_usage_percent},
- {StatsReport::kStatsValueNameFirsReceived, info.firs_rcvd},
+ {StatsReport::kStatsValueNameFirsReceived, info.firs_received},
{StatsReport::kStatsValueNameFrameHeightSent, info.send_frame_height},
- {StatsReport::kStatsValueNameFrameRateInput, round(info.framerate_input)},
+ {StatsReport::kStatsValueNameFrameRateInput,
+ static_cast<int>(round(info.framerate_input))},
{StatsReport::kStatsValueNameFrameRateSent, info.framerate_sent},
{StatsReport::kStatsValueNameFrameWidthSent, info.send_frame_width},
-- {StatsReport::kStatsValueNameNacksReceived, info.nacks_rcvd},
+- {StatsReport::kStatsValueNameNacksReceived, info.nacks_received},
+ {StatsReport::kStatsValueNameNacksReceived,
-+ static_cast<int>(info.nacks_rcvd)},
++ static_cast<int>(info.nacks_received)},
{StatsReport::kStatsValueNamePacketsLost, info.packets_lost},
{StatsReport::kStatsValueNamePacketsSent, info.packets_sent},
- {StatsReport::kStatsValueNamePlisReceived, info.plis_rcvd},
+ {StatsReport::kStatsValueNamePlisReceived, info.plis_received},
- {StatsReport::kStatsValueNameFramesEncoded, info.frames_encoded},
- {StatsReport::kStatsValueNameHugeFramesSent, info.huge_frames_sent},
+ {StatsReport::kStatsValueNameFramesEncoded,
@@ -76,7 +76,7 @@ Date: 2023-12-21T14:08:26+01:00
};
for (const auto& i : ints)
-@@ -782,19 +789,25 @@ StatsReport* LegacyStatsCollector::AddConnectionInfoRe
+@@ -780,19 +787,25 @@ StatsReport* LegacyStatsCollector::AddConnectionInfoRe
AddCandidateReport(remote_candidate_stats, false)->id());
const Int64ForAdd int64s[] = {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_rtc__base_net__test__helpers.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_rtc__base_net__test__helpers.cc
new file mode 100644
index 000000000000..296ec5680e28
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_rtc__base_net__test__helpers.cc
@@ -0,0 +1,10 @@
+--- src/3rdparty/chromium/third_party/webrtc/rtc_base/net_test_helpers.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/third_party/webrtc/rtc_base/net_test_helpers.cc
+@@ -21,6 +21,7 @@
+ #endif
+ #if defined(WEBRTC_POSIX) && !defined(__native_client__)
+ #include <arpa/inet.h>
++#include <sys/socket.h>
+ #if defined(WEBRTC_ANDROID)
+ #include "rtc_base/ifaddrs_android.h"
+ #else
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_rtc__base_network.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_rtc__base_network.cc
index 27858ffdac55..38d531526387 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_rtc__base_network.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_rtc__base_network.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/webrtc/rtc_base/network.cc.orig 2023-02-08 09:03:45 UTC
+--- src/3rdparty/chromium/third_party/webrtc/rtc_base/network.cc.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/third_party/webrtc/rtc_base/network.cc
-@@ -288,7 +288,12 @@ AdapterType GetAdapterTypeFromName(absl::string_view n
+@@ -292,7 +292,12 @@ AdapterType GetAdapterTypeFromName(absl::string_view n
}
#endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_rtc__base_physical__socket__server.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_rtc__base_physical__socket__server.cc
index 240bdcbb2e31..b3621f020698 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_rtc__base_physical__socket__server.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_rtc__base_physical__socket__server.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/third_party/webrtc/rtc_base/physical_socket_server.cc.orig 2023-01-11 09:17:16 UTC
+--- src/3rdparty/chromium/third_party/webrtc/rtc_base/physical_socket_server.cc.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/third_party/webrtc/rtc_base/physical_socket_server.cc
-@@ -54,7 +54,7 @@
+@@ -56,7 +56,7 @@
#include "rtc_base/time_utils.h"
#include "system_wrappers/include/field_trial.h"
@@ -9,7 +9,7 @@
#include <linux/sockios.h>
#endif
-@@ -73,7 +73,7 @@ typedef void* SockOptArg;
+@@ -75,7 +75,7 @@ typedef void* SockOptArg;
#endif // WEBRTC_POSIX
@@ -18,7 +18,7 @@
int64_t GetSocketRecvTimestamp(int socket) {
struct timeval tv_ioctl;
-@@ -308,7 +308,7 @@ int PhysicalSocket::GetOption(Option opt, int* value)
+@@ -310,7 +310,7 @@ int PhysicalSocket::GetOption(Option opt, int* value)
return -1;
}
if (opt == OPT_DONTFRAGMENT) {
@@ -27,7 +27,7 @@
*value = (*value != IP_PMTUDISC_DONT) ? 1 : 0;
#endif
} else if (opt == OPT_DSCP) {
-@@ -326,7 +326,7 @@ int PhysicalSocket::SetOption(Option opt, int value) {
+@@ -328,7 +328,7 @@ int PhysicalSocket::SetOption(Option opt, int value) {
if (TranslateOption(opt, &slevel, &sopt) == -1)
return -1;
if (opt == OPT_DONTFRAGMENT) {
@@ -36,7 +36,7 @@
value = (value) ? IP_PMTUDISC_DO : IP_PMTUDISC_DONT;
#endif
} else if (opt == OPT_DSCP) {
-@@ -354,7 +354,7 @@ int PhysicalSocket::SetOption(Option opt, int value) {
+@@ -356,7 +356,7 @@ int PhysicalSocket::SetOption(Option opt, int value) {
int PhysicalSocket::Send(const void* pv, size_t cb) {
int sent = DoSend(
s_, reinterpret_cast<const char*>(pv), static_cast<int>(cb),
@@ -45,7 +45,7 @@
// Suppress SIGPIPE. Without this, attempting to send on a socket whose
// other end is closed will result in a SIGPIPE signal being raised to
// our process, which by default will terminate the process, which we
-@@ -383,7 +383,7 @@ int PhysicalSocket::SendTo(const void* buffer,
+@@ -385,7 +385,7 @@ int PhysicalSocket::SendTo(const void* buffer,
size_t len = addr.ToSockAddrStorage(&saddr);
int sent =
DoSendTo(s_, static_cast<const char*>(buffer), static_cast<int>(length),
@@ -54,7 +54,7 @@
// Suppress SIGPIPE. See above for explanation.
MSG_NOSIGNAL,
#else
-@@ -641,7 +641,7 @@ int PhysicalSocket::TranslateOption(Option opt, int* s
+@@ -643,7 +643,7 @@ int PhysicalSocket::TranslateOption(Option opt, int* s
*slevel = IPPROTO_IP;
*sopt = IP_DONTFRAGMENT;
break;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_rtc__base_physical__socket__server.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_rtc__base_physical__socket__server.h
index d24fa878f15f..2ad61cfbad04 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_rtc__base_physical__socket__server.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_rtc__base_physical__socket__server.h
@@ -1,11 +1,11 @@
---- src/3rdparty/chromium/third_party/webrtc/rtc_base/physical_socket_server.h.orig 2022-10-24 13:33:33 UTC
+--- src/3rdparty/chromium/third_party/webrtc/rtc_base/physical_socket_server.h.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/third_party/webrtc/rtc_base/physical_socket_server.h
-@@ -12,7 +12,7 @@
- #define RTC_BASE_PHYSICAL_SOCKET_SERVER_H_
-
+@@ -14,7 +14,7 @@
#include "api/units/time_delta.h"
--#if defined(WEBRTC_POSIX) && defined(WEBRTC_LINUX)
-+#if defined(WEBRTC_POSIX) && defined(WEBRTC_LINUX) && !defined(WEBRTC_BSD)
+
+ #if defined(WEBRTC_POSIX)
+-#if defined(WEBRTC_LINUX)
++#if defined(WEBRTC_LINUX) && !defined(WEBRTC_BSD)
+ // On Linux, use epoll.
#include <sys/epoll.h>
#define WEBRTC_USE_EPOLL 1
- #endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_widevine_cdm_widevine.gni b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_widevine_cdm_widevine.gni
new file mode 100644
index 000000000000..e47da639e240
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_widevine_cdm_widevine.gni
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/third_party/widevine/cdm/widevine.gni.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/third_party/widevine/cdm/widevine.gni
+@@ -27,6 +27,8 @@ library_widevine_cdm_available =
+ (is_chromeos &&
+ (target_cpu == "x64" || target_cpu == "arm" || target_cpu == "arm64")) ||
+ (target_os == "linux" && target_cpu == "x64") ||
++ (target_os == "openbsd" && target_cpu == "x64") ||
++ (target_os == "freebsd" && target_cpu == "x64") ||
+ (target_os == "mac" && (target_cpu == "x64" || target_cpu == "arm64")) ||
+ (target_os == "win" &&
+ (target_cpu == "x86" || target_cpu == "x64" || target_cpu == "arm64"))
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_zlib_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_zlib_BUILD.gn
index b99d7342d389..d64f15ad9b82 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_zlib_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_zlib_BUILD.gn
@@ -1,6 +1,26 @@
---- src/3rdparty/chromium/third_party/zlib/BUILD.gn.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/third_party/zlib/BUILD.gn.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/third_party/zlib/BUILD.gn
-@@ -455,7 +455,7 @@ static_library("bundled_minizip") {
+@@ -139,7 +139,7 @@ if (use_arm_neon_optimizations) {
+ defines = [ "CRC32_ARMV8_CRC32" ]
+ if (is_android) {
+ defines += [ "ARMV8_OS_ANDROID" ]
+- } else if (is_linux || is_chromeos) {
++ } else if ((is_linux || is_chromeos) && !is_bsd) {
+ defines += [ "ARMV8_OS_LINUX" ]
+ } else if (is_mac) {
+ defines += [ "ARMV8_OS_MACOS" ]
+@@ -149,6 +149,10 @@ if (use_arm_neon_optimizations) {
+ defines += [ "ARMV8_OS_FUCHSIA" ]
+ } else if (is_win) {
+ defines += [ "ARMV8_OS_WINDOWS" ]
++ } else if (is_openbsd) {
++ defines += [ "ARMV8_OS_OPENBSD" ]
++ } else if (is_freebsd) {
++ defines += [ "ARMV8_OS_FREEBSD" ]
+ } else {
+ assert(false, "Unsupported ARM OS")
+ }
+@@ -462,7 +466,7 @@ static_library("bundled_minizip") {
]
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_zlib_cpu__features.c b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_zlib_cpu__features.c
new file mode 100644
index 000000000000..38c136535f1c
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_zlib_cpu__features.c
@@ -0,0 +1,50 @@
+--- src/3rdparty/chromium/third_party/zlib/cpu_features.c.orig 2023-12-12 22:08:45 UTC
++++ src/3rdparty/chromium/third_party/zlib/cpu_features.c
+@@ -35,7 +35,8 @@ int ZLIB_INTERNAL x86_cpu_enable_avx512 = 0;
+
+ #ifndef CPU_NO_SIMD
+
+-#if defined(ARMV8_OS_ANDROID) || defined(ARMV8_OS_LINUX) || defined(ARMV8_OS_FUCHSIA) || defined(ARMV8_OS_IOS)
++#if defined(ARMV8_OS_ANDROID) || defined(ARMV8_OS_LINUX) || defined(ARMV8_OS_FUCHSIA) || defined(ARMV8_OS_IOS) || \
++ defined(ARMV8_OS_OPENBSD) || defined(ARMV8_OS_FREEBSD)
+ #include <pthread.h>
+ #endif
+
+@@ -52,6 +53,10 @@ int ZLIB_INTERNAL x86_cpu_enable_avx512 = 0;
+ #include <windows.h>
+ #elif defined(ARMV8_OS_IOS)
+ #include <sys/sysctl.h>
++#elif defined(ARMV8_OS_OPENBSD)
++#include <sys/sysctl.h>
++#include <machine/cpu.h>
++#include <machine/armreg.h>
+ #elif !defined(_MSC_VER)
+ #include <pthread.h>
+ #else
+@@ -62,7 +67,7 @@ static void _cpu_check_features(void);
+ static void _cpu_check_features(void);
+ #endif
+
+-#if defined(ARMV8_OS_ANDROID) || defined(ARMV8_OS_LINUX) || defined(ARMV8_OS_MACOS) || defined(ARMV8_OS_FUCHSIA) || defined(X86_NOT_WINDOWS) || defined(ARMV8_OS_IOS) || defined(__ARM_NEON__) || defined(__ARM_NEON)
++#if defined(ARMV8_OS_ANDROID) || defined(ARMV8_OS_LINUX) || defined(ARMV8_OS_MACOS) || defined(ARMV8_OS_FUCHSIA) || defined(X86_NOT_WINDOWS) || defined(ARMV8_OS_IOS) || defined(__ARM_NEON__) || defined(__ARM_NEON) || defined(ARMV8_OS_OPENBSD) || defined(ARMV8_OS_FREEBSD)
+ #if !defined(ARMV8_OS_MACOS)
+ // _cpu_check_features() doesn't need to do anything on mac/arm since all
+ // features are known at build time, so don't call it.
+@@ -115,6 +120,17 @@ static void _cpu_check_features(void)
+ unsigned long features = getauxval(AT_HWCAP2);
+ arm_cpu_enable_crc32 = !!(features & HWCAP2_CRC32);
+ arm_cpu_enable_pmull = !!(features & HWCAP2_PMULL);
++#elif defined(ARMV8_OS_OPENBSD)
++ int isar0_mib[] = { CTL_MACHDEP, CPU_ID_AA64ISAR0 };
++ uint64_t cpu_id = 0;
++ size_t len = sizeof(cpu_id);
++ if (sysctl(isar0_mib, 2, &cpu_id, &len, NULL, 0) < 0)
++ return;
++ if (ID_AA64ISAR0_AES(cpu_id) >= ID_AA64ISAR0_AES_PMULL)
++ arm_cpu_enable_pmull = 1;
++
++ if (ID_AA64ISAR0_AES(cpu_id) >= ID_AA64ISAR0_CRC32_BASE)
++ arm_cpu_enable_crc32 = 1;
+ #elif defined(ARMV8_OS_FUCHSIA)
+ uint32_t features;
+ zx_status_t rc = zx_system_get_features(ZX_FEATURE_KIND_CPU, &features);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_tools_json__schema__compiler_feature__compiler.py b/www/qt6-webengine/files/patch-src_3rdparty_chromium_tools_json__schema__compiler_feature__compiler.py
index abbee2641c5b..7b114a5793ba 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_tools_json__schema__compiler_feature__compiler.py
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_tools_json__schema__compiler_feature__compiler.py
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/tools/json_schema_compiler/feature_compiler.py.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/tools/json_schema_compiler/feature_compiler.py.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/tools/json_schema_compiler/feature_compiler.py
-@@ -271,6 +271,8 @@ FEATURE_GRAMMAR = ({
+@@ -272,6 +272,8 @@ FEATURE_GRAMMAR = ({
'linux': 'Feature::LINUX_PLATFORM',
'mac': 'Feature::MACOSX_PLATFORM',
'win': 'Feature::WIN_PLATFORM',
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_tools_licenses_licenses.py b/www/qt6-webengine/files/patch-src_3rdparty_chromium_tools_licenses_licenses.py
index 0dfa9b3a4808..eece09516469 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_tools_licenses_licenses.py
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_tools_licenses_licenses.py
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/tools/licenses/licenses.py.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/tools/licenses/licenses.py.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/tools/licenses/licenses.py
-@@ -618,6 +618,8 @@ def _GnBinary():
+@@ -751,6 +751,8 @@ def _GnBinary():
exe = 'gn'
if sys.platform.startswith('linux'):
subdir = 'linux64'
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_tools_perf_chrome__telemetry__build_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_tools_perf_chrome__telemetry__build_BUILD.gn
index c6354c6a16d6..a6355ce7ed8d 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_tools_perf_chrome__telemetry__build_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_tools_perf_chrome__telemetry__build_BUILD.gn
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/tools/perf/chrome_telemetry_build/BUILD.gn.orig 2022-11-30 08:12:58 UTC
+--- src/3rdparty/chromium/tools/perf/chrome_telemetry_build/BUILD.gn.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/tools/perf/chrome_telemetry_build/BUILD.gn
-@@ -45,7 +45,7 @@ group("telemetry_chrome_test") {
+@@ -47,7 +47,7 @@ group("telemetry_chrome_test") {
data_deps += [ "//chrome:reorder_imports" ]
}
@@ -9,7 +9,7 @@
data_deps += [ "//third_party/breakpad:dump_syms($host_toolchain)" ]
# CrOS currently has issues with the locally compiled version of
-@@ -186,7 +186,7 @@ group("telemetry_chrome_test_without_chrome") {
+@@ -172,7 +172,7 @@ group("telemetry_chrome_test_without_chrome") {
]
# Cr-Fuchsia doesn't support breakpad.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_tools_protoc__wrapper_protoc__wrapper.py b/www/qt6-webengine/files/patch-src_3rdparty_chromium_tools_protoc__wrapper_protoc__wrapper.py
index 24c78f4641d1..30a967525268 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_tools_protoc__wrapper_protoc__wrapper.py
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_tools_protoc__wrapper_protoc__wrapper.py
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/tools/protoc_wrapper/protoc_wrapper.py.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/tools/protoc_wrapper/protoc_wrapper.py.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/tools/protoc_wrapper/protoc_wrapper.py
-@@ -175,15 +175,19 @@ def main(argv):
+@@ -179,15 +179,19 @@ def main(argv):
if not options.exclude_imports:
protoc_cmd += ["--include_imports"]
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_clipboard_clipboard__constants.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_clipboard_clipboard__constants.h
index 7924af9905e5..d028631ecb43 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_clipboard_clipboard__constants.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_clipboard_clipboard__constants.h
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/ui/base/clipboard/clipboard_constants.h.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/ui/base/clipboard/clipboard_constants.h.orig 2023-02-08 09:03:45 UTC
+++ src/3rdparty/chromium/ui/base/clipboard/clipboard_constants.h
@@ -47,7 +47,7 @@ extern const char kMimeTypeDataTransferEndpoint[];
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_cursor_cursor__factory.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_cursor_cursor__factory.cc
index 79de80575550..3c8c2dc646ff 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_cursor_cursor__factory.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_cursor_cursor__factory.cc
@@ -1,8 +1,8 @@
---- src/3rdparty/chromium/ui/base/cursor/cursor_factory.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/ui/base/cursor/cursor_factory.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/ui/base/cursor/cursor_factory.cc
-@@ -89,7 +89,7 @@ void CursorFactory::ObserveThemeChanges() {
-
- void CursorFactory::SetDeviceScaleFactor(float scale) {}
+@@ -98,7 +98,7 @@ void CursorFactory::ObserveThemeChanges() {
+ NOTIMPLEMENTED();
+ }
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_cursor_cursor__factory.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_cursor_cursor__factory.h
index e07f7a7e8cea..a491a495b6dd 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_cursor_cursor__factory.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_cursor_cursor__factory.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/base/cursor/cursor_factory.h.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/ui/base/cursor/cursor_factory.h.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/ui/base/cursor/cursor_factory.h
-@@ -88,7 +88,7 @@ class COMPONENT_EXPORT(UI_BASE_CURSOR) CursorFactory {
+@@ -93,7 +93,7 @@ class COMPONENT_EXPORT(UI_BASE_CURSOR) CursorFactory {
base::ObserverList<CursorFactoryObserver>::Unchecked observers_;
};
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_dragdrop_os__exchange__data__provider__factory.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_dragdrop_os__exchange__data__provider__factory.cc
index 6b838ecccde6..5edfe0015072 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_dragdrop_os__exchange__data__provider__factory.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_dragdrop_os__exchange__data__provider__factory.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/ui/base/dragdrop/os_exchange_data_provider_factory.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/ui/base/dragdrop/os_exchange_data_provider_factory.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/ui/base/dragdrop/os_exchange_data_provider_factory.cc
@@ -7,7 +7,7 @@
#include "base/notreached.h"
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ime_fake__text__input__client.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ime_fake__text__input__client.cc
index 138eaeb23614..d46504db82ba 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ime_fake__text__input__client.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ime_fake__text__input__client.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/base/ime/fake_text_input_client.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/ui/base/ime/fake_text_input_client.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/ui/base/ime/fake_text_input_client.cc
-@@ -167,7 +167,7 @@ bool FakeTextInputClient::ShouldDoLearning() {
+@@ -171,7 +171,7 @@ bool FakeTextInputClient::ShouldDoLearning() {
return false;
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ime_fake__text__input__client.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ime_fake__text__input__client.h
index 7a662ed6b560..9d7f2c1f6dc4 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ime_fake__text__input__client.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ime_fake__text__input__client.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/base/ime/fake_text_input_client.h.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/ui/base/ime/fake_text_input_client.h.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/ui/base/ime/fake_text_input_client.h
-@@ -73,7 +73,7 @@ class FakeTextInputClient : public TextInputClient {
+@@ -74,7 +74,7 @@ class FakeTextInputClient : public TextInputClient {
void SetTextEditCommandForNextKeyEvent(TextEditCommand command) override;
ukm::SourceId GetClientSourceForMetrics() const override;
bool ShouldDoLearning() override;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ime_text__input__client.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ime_text__input__client.h
index e9fc52934e5a..6c1bcf28e30b 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ime_text__input__client.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ime_text__input__client.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/base/ime/text_input_client.h.orig 2022-11-30 08:12:58 UTC
+--- src/3rdparty/chromium/ui/base/ime/text_input_client.h.orig 2023-07-16 15:47:57 UTC
+++ src/3rdparty/chromium/ui/base/ime/text_input_client.h
-@@ -242,7 +242,7 @@ class COMPONENT_EXPORT(UI_BASE_IME) TextInputClient
+@@ -265,7 +265,7 @@ class COMPONENT_EXPORT(UI_BASE_IME) TextInputClient
// fields that are considered 'private' (e.g. in incognito tabs).
virtual bool ShouldDoLearning() = 0;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_resource_resource__bundle.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_resource_resource__bundle.cc
index 720099c22c09..06c7bc0d03bd 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_resource_resource__bundle.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_resource_resource__bundle.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/base/resource/resource_bundle.cc.orig 2023-02-08 09:03:45 UTC
+--- src/3rdparty/chromium/ui/base/resource/resource_bundle.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/ui/base/resource/resource_bundle.cc
-@@ -885,7 +885,7 @@ void ResourceBundle::ReloadFonts() {
+@@ -926,7 +926,7 @@ void ResourceBundle::ReloadFonts() {
}
ResourceScaleFactor ResourceBundle::GetMaxResourceScaleFactor() const {
@@ -8,4 +8,4 @@
+#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
return max_scale_factor_;
#else
- return GetSupportedResourceScaleFactors().back();
+ return GetMaxSupportedResourceScaleFactor();
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ui__base__features.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ui__base__features.cc
index 5b1a5e7a453c..fe398bc13563 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ui__base__features.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ui__base__features.cc
@@ -1,6 +1,15 @@
---- src/3rdparty/chromium/ui/base/ui_base_features.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/ui/base/ui_base_features.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/ui/base/ui_base_features.cc
-@@ -210,7 +210,7 @@ CONSTINIT const base::Feature kExperimentalFlingAnimat
+@@ -135,7 +135,7 @@ bool AreF11AndF12ShortcutsEnabled() {
+ }
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+
+-#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kRedundantImeCompositionClearing,
+ "RedundantImeCompositionClearing",
+ base::FEATURE_ENABLED_BY_DEFAULT);
+@@ -234,7 +234,7 @@ CONSTINIT const base::Feature kExperimentalFlingAnimat
"ExperimentalFlingAnimation",
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
@@ -9,7 +18,7 @@
(BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_ASH) && \
!BUILDFLAG(IS_CHROMEOS_LACROS))
base::FEATURE_ENABLED_BY_DEFAULT
-@@ -315,7 +315,7 @@ CONSTINIT const base::Feature kEyeDropper(
+@@ -346,7 +346,7 @@ CONSTINIT const base::Feature kEyeDropper(
// milestones.
CONSTINIT const base::Feature kEyeDropper(
"EyeDropper",
@@ -18,3 +27,12 @@
base::FEATURE_ENABLED_BY_DEFAULT
#else
base::FEATURE_DISABLED_BY_DEFAULT
+@@ -565,7 +565,7 @@ ChromeRefresh2023Level GetChromeRefresh2023Level() {
+ return level;
+ }
+
+-#if !BUILDFLAG(IS_LINUX)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kWebUiSystemFont,
+ "WebUiSystemFont",
+ base::FEATURE_ENABLED_BY_DEFAULT);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ui__base__features.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ui__base__features.h
new file mode 100644
index 000000000000..b987c796364c
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ui__base__features.h
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/ui/base/ui_base_features.h.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/ui/base/ui_base_features.h
+@@ -138,7 +138,7 @@ BASE_DECLARE_FEATURE(kSupportF11AndF12KeyShortcuts);
+ COMPONENT_EXPORT(UI_BASE_FEATURES) bool AreF11AndF12ShortcutsEnabled();
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+
+-#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(UI_BASE_FEATURES)
+ BASE_DECLARE_FEATURE(kRedundantImeCompositionClearing);
+ #endif // BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
+@@ -273,7 +273,7 @@ enum class ChromeRefresh2023Level {
+ COMPONENT_EXPORT(UI_BASE_FEATURES)
+ ChromeRefresh2023Level GetChromeRefresh2023Level();
+
+-#if !BUILDFLAG(IS_LINUX)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(UI_BASE_FEATURES) BASE_DECLARE_FEATURE(kWebUiSystemFont);
+ #endif
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ui__base__switches.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ui__base__switches.cc
new file mode 100644
index 000000000000..77cebb838ff9
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ui__base__switches.cc
@@ -0,0 +1,18 @@
+--- src/3rdparty/chromium/ui/base/ui_base_switches.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/ui/base/ui_base_switches.cc
+@@ -31,13 +31,13 @@ const char kShowMacOverlayBorders[] = "show-mac-overla
+ const char kEnableResourcesFileSharing[] = "enable-resources-file-sharing";
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Specifies system font family name. Improves determenism when rendering
+ // pages in headless mode.
+ const char kSystemFontFamily[] = "system-font-family";
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Specify the toolkit used to construct the Linux GUI.
+ const char kUiToolkitFlag[] = "ui-toolkit";
+ #endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ui__base__switches.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ui__base__switches.h
new file mode 100644
index 000000000000..4c9288b0f702
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ui__base__switches.h
@@ -0,0 +1,16 @@
+--- src/3rdparty/chromium/ui/base/ui_base_switches.h.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/ui/base/ui_base_switches.h
+@@ -27,11 +27,11 @@ COMPONENT_EXPORT(UI_BASE) extern const char kShowMacOv
+ COMPONENT_EXPORT(UI_BASE) extern const char kEnableResourcesFileSharing[];
+ #endif
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(UI_BASE) extern const char kSystemFontFamily[];
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(UI_BASE) extern const char kUiToolkitFlag[];
+ #endif
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_webui_web__ui__util.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_webui_web__ui__util.cc
index 12b5a81f1fd8..b5511aa3402b 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_webui_web__ui__util.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_webui_web__ui__util.cc
@@ -1,6 +1,15 @@
---- src/3rdparty/chromium/ui/base/webui/web_ui_util.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/ui/base/webui/web_ui_util.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/ui/base/webui/web_ui_util.cc
-@@ -214,7 +214,7 @@ std::string GetFontFamily() {
+@@ -41,7 +41,7 @@ std::string GetFontFamilyMd() {
+ constexpr float kMaxScaleFactor = 1000.0f;
+
+ std::string GetFontFamilyMd() {
+-#if !BUILDFLAG(IS_LINUX)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+ if (base::FeatureList::IsEnabled(features::kWebUiSystemFont)) {
+ return GetFontFamily();
+ }
+@@ -221,7 +221,7 @@ std::string GetFontFamily() {
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_x_x11__cursor__factory.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_x_x11__cursor__factory.cc
index 05cf581b5e9e..0553168d37d7 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_x_x11__cursor__factory.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_x_x11__cursor__factory.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/ui/base/x/x11_cursor_factory.cc.orig 2023-01-11 09:17:16 UTC
+--- src/3rdparty/chromium/ui/base/x/x11_cursor_factory.cc.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/ui/base/x/x11_cursor_factory.cc
@@ -13,7 +13,7 @@
#include "ui/gfx/geometry/point.h"
@@ -9,7 +9,7 @@
#include "ui/linux/linux_ui.h"
#endif
-@@ -60,7 +60,7 @@ scoped_refptr<PlatformCursor> X11CursorFactory::Create
+@@ -62,7 +62,7 @@ scoped_refptr<PlatformCursor> X11CursorFactory::Create
}
void X11CursorFactory::ObserveThemeChanges() {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_x_x11__cursor__factory.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_x_x11__cursor__factory.h
index f9b74e96aca2..650ac821a0cb 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_x_x11__cursor__factory.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_x_x11__cursor__factory.h
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/ui/base/x/x11_cursor_factory.h.orig 2023-01-11 09:17:16 UTC
+--- src/3rdparty/chromium/ui/base/x/x11_cursor_factory.h.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/ui/base/x/x11_cursor_factory.h
@@ -20,7 +20,7 @@ namespace ui {
class X11Cursor;
@@ -9,7 +9,7 @@
class LinuxUi;
#endif
-@@ -59,7 +59,7 @@ class COMPONENT_EXPORT(UI_BASE_X) X11CursorFactory
+@@ -60,7 +60,7 @@ class COMPONENT_EXPORT(UI_BASE_X) X11CursorFactory
std::map<mojom::CursorType, scoped_refptr<X11Cursor>> default_cursors_;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_x_x11__cursor__loader.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_x_x11__cursor__loader.cc
index e016355a3077..d525415d88bc 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_x_x11__cursor__loader.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_x_x11__cursor__loader.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/ui/base/x/x11_cursor_loader.cc.orig 2022-10-24 13:33:33 UTC
+--- src/3rdparty/chromium/ui/base/x/x11_cursor_loader.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/ui/base/x/x11_cursor_loader.cc
@@ -32,7 +32,7 @@
#include "ui/gfx/x/xproto.h"
@@ -13,7 +13,7 @@
void operator()(void* ptr) const { dlclose(ptr); }
};
-+#if defined(OS_BSD)
++#if BUILDFLAG(IS_BSD)
+ std::unique_ptr<void, DlCloser> lib(dlopen("libXcursor.so", RTLD_LAZY));
+#else
std::unique_ptr<void, DlCloser> lib(dlopen("libXcursor.so.1", RTLD_LAZY));
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_color_color__id.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_color_color__id.h
index 647b25e49a43..6abcc24d15b8 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_color_color__id.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_color_color__id.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/color/color_id.h.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/ui/color/color_id.h.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/ui/color/color_id.h
-@@ -435,7 +435,7 @@
+@@ -567,7 +567,7 @@
E_CPONLY(kColorNativeColor6) \
E_CPONLY(kColorNativeBaseColor) \
E_CPONLY(kColorNativeSecondaryColor)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_compositor_compositor.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_compositor_compositor.cc
index 6f1bdae0e629..f5f4dcb524d1 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_compositor_compositor.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_compositor_compositor.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/compositor/compositor.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/ui/compositor/compositor.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/ui/compositor/compositor.cc
-@@ -886,7 +886,7 @@ void Compositor::OnResume() {
+@@ -896,7 +896,7 @@ void Compositor::OnResume() {
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_compositor_compositor.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_compositor_compositor.h
index 268a48a59e0d..73b1e1444a7c 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_compositor_compositor.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_compositor_compositor.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/compositor/compositor.h.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/ui/compositor/compositor.h.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/ui/compositor/compositor.h
-@@ -453,7 +453,7 @@ class COMPOSITOR_EXPORT Compositor : public base::Powe
+@@ -458,7 +458,7 @@ class COMPOSITOR_EXPORT Compositor : public base::Powe
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_events_devices_x11_device__data__manager__x11.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_events_devices_x11_device__data__manager__x11.cc
index 6d82a0c801b0..a3c44d8dc29d 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_events_devices_x11_device__data__manager__x11.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_events_devices_x11_device__data__manager__x11.cc
@@ -1,10 +1,10 @@
---- src/3rdparty/chromium/ui/events/devices/x11/device_data_manager_x11.cc.orig 2023-01-11 09:17:16 UTC
+--- src/3rdparty/chromium/ui/events/devices/x11/device_data_manager_x11.cc.orig 2023-07-16 15:47:57 UTC
+++ src/3rdparty/chromium/ui/events/devices/x11/device_data_manager_x11.cc
-@@ -875,6 +875,7 @@ void DeviceDataManagerX11::SetDisabledKeyboardAllowedK
+@@ -876,6 +876,7 @@ void DeviceDataManagerX11::SetDisabledKeyboardAllowedK
}
void DeviceDataManagerX11::DisableDevice(x11::Input::DeviceId deviceid) {
+ NOTIMPLEMENTED();
blocked_devices_.set(static_cast<uint32_t>(deviceid), true);
// TODO(rsadam@): Support blocking touchscreen devices.
- std::vector<InputDevice> keyboards = GetKeyboardDevices();
+ std::vector<KeyboardDevice> keyboards = GetKeyboardDevices();
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_events_event.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_events_event.cc
index eb84a2adffd6..a25d4a145c88 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_events_event.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_events_event.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/events/event.cc.orig 2023-01-11 09:17:16 UTC
+--- src/3rdparty/chromium/ui/events/event.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/ui/events/event.cc
-@@ -419,7 +419,7 @@ std::string LocatedEvent::ToString() const {
+@@ -427,7 +427,7 @@ std::string LocatedEvent::ToString() const {
MouseEvent::MouseEvent(const PlatformEvent& native_event)
: LocatedEvent(native_event),
changed_button_flags_(GetChangedMouseButtonFlagsFromNative(native_event)),
@@ -9,7 +9,7 @@
movement_(GetMouseMovementFromNative(native_event)),
#endif
pointer_details_(GetMousePointerDetailsFromNative(native_event)) {
-@@ -674,7 +674,7 @@ std::unique_ptr<Event> MouseWheelEvent::Clone() const
+@@ -676,7 +676,7 @@ std::unique_ptr<Event> MouseWheelEvent::Clone() const
return std::make_unique<MouseWheelEvent>(*this);
}
@@ -18,7 +18,7 @@
// This value matches Windows, Fuchsia WHEEL_DELTA, and (roughly) Firefox on
// Linux.
// static
-@@ -923,7 +923,7 @@ void KeyEvent::InitializeNative() {
+@@ -936,7 +936,7 @@ void KeyEvent::InitializeNative() {
if (synthesize_key_repeat_enabled_ && IsRepeated(GetLastKeyEvent()))
set_flags(flags() | EF_IS_REPEAT);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_events_gesture__detection_motion__event__generic.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_events_gesture__detection_motion__event__generic.h
new file mode 100644
index 000000000000..a67968ebae51
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_events_gesture__detection_motion__event__generic.h
@@ -0,0 +1,10 @@
+--- src/3rdparty/chromium/ui/events/gesture_detection/motion_event_generic.h.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/ui/events/gesture_detection/motion_event_generic.h
+@@ -7,6 +7,7 @@
+
+ #include <stddef.h>
+ #include <stdint.h>
++#include <vector>
+
+ #include "base/time/time.h"
+ #include "third_party/abseil-cpp/absl/container/inlined_vector.h"
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_BUILD.gn
index e508661c0172..5dfb92dcf6f8 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_BUILD.gn
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/gfx/BUILD.gn.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/ui/gfx/BUILD.gn.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/ui/gfx/BUILD.gn
-@@ -611,7 +611,7 @@ jumbo_source_set("memory_buffer_sources") {
+@@ -646,7 +646,7 @@ jumbo_source_set("memory_buffer_sources") {
deps += [ "//build/config/linux/libdrm" ]
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_canvas__skia.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_canvas__skia.cc
index 58dab0f666d0..e8d0097a48fd 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_canvas__skia.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_canvas__skia.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/gfx/canvas_skia.cc.orig 2022-02-28 16:54:41 UTC
+--- src/3rdparty/chromium/ui/gfx/canvas_skia.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/ui/gfx/canvas_skia.cc
-@@ -200,7 +200,7 @@ void Canvas::DrawStringRectWithFlags(const std::u16str
+@@ -212,7 +212,7 @@ void Canvas::DrawStringRectWithFlags(const std::u16str
Range range = StripAcceleratorChars(flags, &adjusted_text);
bool elide_text = ((flags & NO_ELLIPSIS) == 0);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_codec_png__codec.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_codec_png__codec.cc
index 49c8a36f170a..9a21e49de835 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_codec_png__codec.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_codec_png__codec.cc
@@ -1,7 +1,7 @@
---- src/3rdparty/chromium/ui/gfx/codec/png_codec.cc.orig 2022-02-07 13:39:41 UTC
+--- src/3rdparty/chromium/ui/gfx/codec/png_codec.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/ui/gfx/codec/png_codec.cc
-@@ -10,7 +10,7 @@
- #include "base/memory/raw_ptr.h"
+@@ -12,7 +12,7 @@
+ #include "base/metrics/histogram_macros.h"
#include "base/notreached.h"
#include "base/strings/string_util.h"
-#include "third_party/libpng/png.h"
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_font__list.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_font__list.cc
deleted file mode 100644
index ed0c71d87717..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_font__list.cc
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/3rdparty/chromium/ui/gfx/font_list.cc.orig 2022-02-28 16:54:41 UTC
-+++ src/3rdparty/chromium/ui/gfx/font_list.cc
-@@ -27,7 +27,7 @@ base::LazyInstance<scoped_refptr<gfx::FontListImpl>>::
- bool g_default_impl_initialized = false;
-
- bool IsFontFamilyAvailable(const std::string& family, SkFontMgr* fontManager) {
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- return !!fontManager->legacyMakeTypeface(family.c_str(), SkFontStyle());
- #else
- sk_sp<SkFontStyleSet> set(fontManager->matchFamily(family.c_str()));
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_linux_client__native__pixmap__dmabuf.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_linux_client__native__pixmap__dmabuf.cc
deleted file mode 100644
index d398efd7f79c..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_linux_client__native__pixmap__dmabuf.cc
+++ /dev/null
@@ -1,25 +0,0 @@
---- src/3rdparty/chromium/ui/gfx/linux/client_native_pixmap_dmabuf.cc.orig 2022-02-07 13:39:41 UTC
-+++ src/3rdparty/chromium/ui/gfx/linux/client_native_pixmap_dmabuf.cc
-@@ -5,7 +5,9 @@
- #include "ui/gfx/linux/client_native_pixmap_dmabuf.h"
-
- #include <fcntl.h>
-+#if !defined(__OpenBSD__) && !defined(__FreeBSD__)
- #include <linux/version.h>
-+#endif
- #include <stddef.h>
- #include <sys/ioctl.h>
- #include <sys/mman.h>
-@@ -27,11 +29,7 @@
- #include "ui/gfx/buffer_format_util.h"
- #include "ui/gfx/switches.h"
-
--#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
--#include <linux/dma-buf.h>
--#else
--#include <linux/types.h>
--
-+#if defined(__OpenBSD__) || defined(__FreeBSD__)
- struct dma_buf_sync {
- __u64 flags;
- };
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_linux_dmabuf__uapi.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_linux_dmabuf__uapi.h
new file mode 100644
index 000000000000..2746d1e87073
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_linux_dmabuf__uapi.h
@@ -0,0 +1,36 @@
+--- src/3rdparty/chromium/ui/gfx/linux/dmabuf_uapi.h.orig 2023-12-12 22:08:45 UTC
++++ src/3rdparty/chromium/ui/gfx/linux/dmabuf_uapi.h
+@@ -5,12 +5,11 @@
+ #ifndef UI_GFX_LINUX_DMABUF_UAPI_H_
+ #define UI_GFX_LINUX_DMABUF_UAPI_H_
+
+-#include <linux/version.h>
++#include <sys/types.h>
+
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+-#include <linux/dma-buf.h>
+-#else
+-#include <linux/types.h>
++typedef int32_t __s32;
++typedef uint32_t __u32;
++typedef uint64_t __u64;
+
+ struct dma_buf_sync {
+ __u64 flags;
+@@ -26,9 +25,7 @@ constexpr unsigned long DMA_BUF_IOCTL_SYNC =
+ constexpr char DMA_BUF_BASE = 'b';
+ constexpr unsigned long DMA_BUF_IOCTL_SYNC =
+ _IOW(DMA_BUF_BASE, 0, struct dma_buf_sync);
+-#endif
+
+-#ifndef DMA_BUF_IOCTL_EXPORT_SYNC_FILE
+ struct dma_buf_export_sync_file {
+ __u32 flags;
+ __s32 fd;
+@@ -43,6 +40,5 @@ constexpr unsigned long DMA_BUF_IOCTL_IMPORT_SYNC_FILE
+ _IOWR(DMA_BUF_BASE, 2, struct dma_buf_export_sync_file);
+ constexpr unsigned long DMA_BUF_IOCTL_IMPORT_SYNC_FILE =
+ _IOW(DMA_BUF_BASE, 3, struct dma_buf_import_sync_file);
+-#endif
+
+ #endif // UI_GFX_LINUX_DMABUF_UAPI_H_
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_native__pixmap__handle.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_native__pixmap__handle.cc
index 650932b68276..d244dfdc7cfe 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_native__pixmap__handle.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_native__pixmap__handle.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/ui/gfx/native_pixmap_handle.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/ui/gfx/native_pixmap_handle.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/ui/gfx/native_pixmap_handle.cc
@@ -11,7 +11,7 @@
#include "ui/gfx/buffer_format_util.h"
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_native__widget__types.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_native__widget__types.h
index 401c8ea1d46b..de4ba874bf44 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_native__widget__types.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_native__widget__types.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/gfx/native_widget_types.h.orig 2022-02-28 16:54:41 UTC
+--- src/3rdparty/chromium/ui/gfx/native_widget_types.h.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/ui/gfx/native_widget_types.h
-@@ -106,7 +106,7 @@ class SkBitmap;
+@@ -103,7 +103,7 @@ class SkBitmap;
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
@@ -8,13 +8,13 @@
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
extern "C" {
struct _AtkObject;
- typedef struct _AtkObject AtkObject;
-@@ -209,7 +209,7 @@ typedef NSFont* NativeFont;
- typedef id NativeViewAccessible;
+ using AtkObject = struct _AtkObject;
+@@ -221,7 +221,7 @@ using NativeViewAccessible = struct objc_object*;
+ #endif
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
+#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
// Linux doesn't have a native font type.
- typedef AtkObject* NativeViewAccessible;
+ using NativeViewAccessible = AtkObject*;
#else
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_switches.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_switches.cc
index 7b19c6ccc833..7e79bf0f77bb 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_switches.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_switches.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/gfx/switches.cc.orig 2023-01-11 09:17:16 UTC
+--- src/3rdparty/chromium/ui/gfx/switches.cc.orig 2023-07-16 15:47:57 UTC
+++ src/3rdparty/chromium/ui/gfx/switches.cc
-@@ -33,7 +33,7 @@ const char kForcePrefersReducedMotion[] = "force-prefe
+@@ -28,7 +28,7 @@ const char kForcePrefersReducedMotion[] = "force-prefe
// Run in headless mode, i.e., without a UI or display server dependencies.
const char kHeadless[] = "headless";
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_switches.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_switches.h
index cb08def77887..3f2994715608 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_switches.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_switches.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/gfx/switches.h.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/ui/gfx/switches.h.orig 2023-07-16 15:47:57 UTC
+++ src/3rdparty/chromium/ui/gfx/switches.h
-@@ -19,7 +19,7 @@ GFX_SWITCHES_EXPORT extern const char kEnableNativeGpu
+@@ -18,7 +18,7 @@ GFX_SWITCHES_EXPORT extern const char kEnableNativeGpu
GFX_SWITCHES_EXPORT extern const char kForcePrefersReducedMotion[];
GFX_SWITCHES_EXPORT extern const char kHeadless[];
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_x_xlib__support.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_x_xlib__support.cc
index 934f12ccb635..25f1781933fa 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_x_xlib__support.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_x_xlib__support.cc
@@ -1,17 +1,17 @@
---- src/3rdparty/chromium/ui/gfx/x/xlib_support.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/ui/gfx/x/xlib_support.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/ui/gfx/x/xlib_support.cc
@@ -42,10 +42,18 @@ void InitXlib() {
if (xlib_loader->loaded())
return;
-+#if defined(OS_BSD)
++#if BUILDFLAG(IS_BSD)
+ CHECK(xlib_loader->Load("libX11.so"));
+#else
CHECK(xlib_loader->Load("libX11.so.6"));
+#endif
auto* xlib_xcb_loader = GetXlibXcbLoader();
-+#if defined(OS_BSD)
++#if BUILDFLAG(IS_BSD)
+ CHECK(xlib_xcb_loader->Load("libX11-xcb.so"));
+#else
CHECK(xlib_xcb_loader->Load("libX11-xcb.so.1"));
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gl_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gl_BUILD.gn
index b75fb8ce4836..4173ed9ea7cf 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gl_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gl_BUILD.gn
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/gl/BUILD.gn.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/ui/gl/BUILD.gn.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/ui/gl/BUILD.gn
-@@ -172,8 +172,6 @@ jumbo_component("gl") {
+@@ -165,8 +165,6 @@ jumbo_component("gl") {
defines += [ "GPU_ENABLE_SERVICE_LOGGING" ]
}
@@ -9,7 +9,7 @@
all_dependent_configs = [ ":gl_config" ]
public_configs = [ "//third_party/khronos:khronos_headers" ]
-@@ -190,7 +188,6 @@ jumbo_component("gl") {
+@@ -183,7 +181,6 @@ jumbo_component("gl") {
]
public_deps = [
"//base",
@@ -17,7 +17,7 @@
"//ui/events/platform",
"//ui/gfx",
"//ui/gfx/geometry",
-@@ -455,7 +452,6 @@ jumbo_component("gl") {
+@@ -433,7 +430,6 @@ jumbo_component("gl") {
data_deps += [
"//third_party/angle:libEGL",
"//third_party/angle:libGLESv2",
@@ -25,7 +25,7 @@
]
if (enable_swiftshader) {
data_deps += [
-@@ -709,7 +705,6 @@ test("gl_unittests") {
+@@ -648,7 +644,6 @@ test("gl_unittests") {
data_deps = [
"//testing/buildbot/filters:gl_unittests_filters",
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gl_gl__context.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gl_gl__context.cc
index 41a4c19bebb3..100b11319b17 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gl_gl__context.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gl_gl__context.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/gl/gl_context.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/ui/gl/gl_context.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/ui/gl/gl_context.cc
-@@ -416,7 +416,7 @@ bool GLContext::MakeVirtuallyCurrent(
+@@ -445,7 +445,7 @@ bool GLContext::MakeVirtuallyCurrent(
DCHECK(virtual_context->IsCurrent(surface));
if (switched_real_contexts || virtual_context != current_virtual_context_) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gl_gl__fence.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gl_gl__fence.cc
new file mode 100644
index 000000000000..6f776755ee17
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gl_gl__fence.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/ui/gl/gl_fence.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/ui/gl/gl_fence.cc
+@@ -20,7 +20,7 @@
+ #endif
+
+ #if defined(USE_EGL)
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #define USE_GL_FENCE_ANDROID_NATIVE_FENCE_SYNC
+ #include "ui/gl/gl_fence_android_native_fence_sync.h"
+ #endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gl_gl__implementation.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gl_gl__implementation.cc
index 4a3afa687cde..bae39201ddc7 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gl_gl__implementation.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gl_gl__implementation.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/gl/gl_implementation.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/ui/gl/gl_implementation.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/ui/gl/gl_implementation.cc
-@@ -288,7 +288,7 @@ GetRequestedGLImplementationFromCommandLine(
+@@ -291,7 +291,7 @@ GetRequestedGLImplementationFromCommandLine(
*fallback_to_software_gl = false;
bool overrideUseSoftwareGL =
command_line->HasSwitch(switches::kOverrideUseSoftwareGLForTests);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gl_gl__switches.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gl_gl__switches.cc
index c918d5c71f4a..71aa3de0060b 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gl_gl__switches.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gl_gl__switches.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/ui/gl/gl_switches.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/ui/gl/gl_switches.cc.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/ui/gl/gl_switches.cc
@@ -12,7 +12,7 @@
#include "base/android/build_info.h"
@@ -9,7 +9,7 @@
#include <vulkan/vulkan_core.h>
#include "third_party/angle/src/gpu_info_util/SystemInfo.h" // nogncheck
#endif
-@@ -298,7 +298,7 @@ bool IsDefaultANGLEVulkan() {
+@@ -297,7 +297,7 @@ bool IsDefaultANGLEVulkan() {
base::android::SDK_VERSION_Q)
return false;
#endif // BUILDFLAG(IS_ANDROID)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gtk_gtk__compat.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gtk_gtk__compat.cc
index 5e60d9bccb3f..fdd51d2768de 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gtk_gtk__compat.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gtk_gtk__compat.cc
@@ -1,10 +1,10 @@
---- src/3rdparty/chromium/ui/gtk/gtk_compat.cc.orig 2022-02-07 13:39:41 UTC
+--- src/3rdparty/chromium/ui/gtk/gtk_compat.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/ui/gtk/gtk_compat.cc
@@ -62,27 +62,47 @@ auto DlCast(void* symbol) {
}
void* GetLibGio() {
-+#if defined(OS_BSD)
++#if BUILDFLAG(IS_BSD)
+ static void* libgio = DlOpen("libgio-2.0.so");
+#else
static void* libgio = DlOpen("libgio-2.0.so.0");
@@ -13,7 +13,7 @@
}
void* GetLibGdkPixbuf() {
-+#if defined(OS_BSD)
++#if BUILDFLAG(IS_BSD)
+ static void* libgdk_pixbuf = DlOpen("libgdk_pixbuf-2.0.so");
+#else
static void* libgdk_pixbuf = DlOpen("libgdk_pixbuf-2.0.so.0");
@@ -22,7 +22,7 @@
}
void* GetLibGdk3() {
-+#if defined(OS_BSD)
++#if BUILDFLAG(IS_BSD)
+ static void* libgdk3 = DlOpen("libgdk-3.so");
+#else
static void* libgdk3 = DlOpen("libgdk-3.so.0");
@@ -31,7 +31,7 @@
}
void* GetLibGtk3(bool check = true) {
-+#if defined(OS_BSD)
++#if BUILDFLAG(IS_BSD)
+ static void* libgtk3 = DlOpen("libgtk-3.so", check);
+#else
static void* libgtk3 = DlOpen("libgtk-3.so.0", check);
@@ -40,7 +40,7 @@
}
void* GetLibGtk4(bool check = true) {
-+#if defined(OS_BSD)
++#if BUILDFLAG(IS_BSD)
+ static void* libgtk4 = DlOpen("libgtk-4.so", check);
+#else
static void* libgtk4 = DlOpen("libgtk-4.so.1", check);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gtk_gtk__ui.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gtk_gtk__ui.cc
new file mode 100644
index 000000000000..777ee2dbd431
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gtk_gtk__ui.cc
@@ -0,0 +1,22 @@
+--- src/3rdparty/chromium/ui/gtk/gtk_ui.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/ui/gtk/gtk_ui.cc
+@@ -955,11 +955,19 @@ ui::DisplayConfig GtkUi::GetDisplayConfig() const {
+ GdkRectangle geometry;
+ gdk_monitor_get_geometry(monitor, &geometry);
+ int monitor_scale = std::max(1, gdk_monitor_get_scale_factor(monitor));
++#if defined(__clang__) && (__clang_major__ >= 16)
+ config.display_geometries.emplace_back(
+ gfx::Rect(monitor_scale * geometry.x, monitor_scale * geometry.y,
+ monitor_scale * geometry.width,
+ monitor_scale * geometry.height),
+ monitor_scale * font_scale);
++#else
++ config.display_geometries.emplace_back() = {
++ gfx::Rect(monitor_scale * geometry.x, monitor_scale * geometry.y,
++ monitor_scale * geometry.width,
++ monitor_scale * geometry.height),
++ static_cast<float>(monitor_scale * font_scale)};
++#endif
+ }
+ return config;
+ }
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gtk_printing_print__dialog__gtk.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gtk_printing_print__dialog__gtk.cc
index b6194b735755..2d08cd914c58 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gtk_printing_print__dialog__gtk.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gtk_printing_print__dialog__gtk.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/gtk/printing/print_dialog_gtk.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/ui/gtk/printing/print_dialog_gtk.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/ui/gtk/printing/print_dialog_gtk.cc
-@@ -403,7 +403,7 @@ void PrintDialogGtk::ShowDialog(
+@@ -440,7 +440,7 @@ void PrintDialogGtk::ShowDialog(
GtkPrintCapabilities cap = static_cast<GtkPrintCapabilities>(
GTK_PRINT_CAPABILITY_GENERATE_PDF | GTK_PRINT_CAPABILITY_PAGE_SET |
GTK_PRINT_CAPABILITY_COPIES | GTK_PRINT_CAPABILITY_COLLATE |
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_native__theme_native__theme.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_native__theme_native__theme.h
index dac2cd783482..3fa0142466ac 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_native__theme_native__theme.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_native__theme_native__theme.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/native_theme/native_theme.h.orig 2022-03-25 21:59:56 UTC
+--- src/3rdparty/chromium/ui/native_theme/native_theme.h.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/ui/native_theme/native_theme.h
-@@ -59,7 +59,7 @@ class NATIVE_THEME_EXPORT NativeTheme {
+@@ -62,7 +62,7 @@ class NATIVE_THEME_EXPORT NativeTheme {
kCheckbox,
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_native__theme_native__theme__base.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_native__theme_native__theme__base.cc
index 9f5cbc157524..07bb9392d23e 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_native__theme_native__theme__base.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_native__theme_native__theme__base.cc
@@ -1,11 +1,11 @@
---- src/3rdparty/chromium/ui/native_theme/native_theme_base.cc.orig 2023-02-08 09:03:45 UTC
+--- src/3rdparty/chromium/ui/native_theme/native_theme_base.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/ui/native_theme/native_theme_base.cc
-@@ -273,7 +273,7 @@ void NativeThemeBase::Paint(cc::PaintCanvas* canvas,
+@@ -275,7 +275,7 @@ void NativeThemeBase::Paint(cc::PaintCanvas* canvas,
break;
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
case kFrameTopArea:
- PaintFrameTopArea(canvas, state, rect, extra.frame_top_area,
- color_scheme);
+ PaintFrameTopArea(canvas, state, rect,
+ absl::get<FrameTopAreaExtraParams>(extra),
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_common_features.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_common_features.cc
new file mode 100644
index 000000000000..9d319f36638e
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_common_features.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/ui/ozone/common/features.cc.orig 2023-05-31 08:12:17 UTC
++++ src/3rdparty/chromium/ui/ozone/common/features.cc
+@@ -30,7 +30,7 @@ BASE_FEATURE(kWaylandSurfaceSubmissionInPixelCoordinat
+ // enabled.
+ BASE_FEATURE(kWaylandFractionalScaleV1,
+ "WaylandFractionalScaleV1",
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+ base::FEATURE_DISABLED_BY_DEFAULT
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_headless_vulkan__implementation__headless.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_headless_vulkan__implementation__headless.cc
index 33e247782197..91765f7c1d9e 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_headless_vulkan__implementation__headless.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_headless_vulkan__implementation__headless.cc
@@ -1,6 +1,24 @@
---- src/3rdparty/chromium/ui/ozone/platform/headless/vulkan_implementation_headless.cc.orig 2022-11-30 08:12:58 UTC
+--- src/3rdparty/chromium/ui/ozone/platform/headless/vulkan_implementation_headless.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/ui/ozone/platform/headless/vulkan_implementation_headless.cc
-@@ -155,7 +155,7 @@ VulkanImplementationHeadless::CreateImageFromGpuMemory
+@@ -117,7 +117,7 @@ VulkanImplementationHeadless::ExportVkFenceToGpuFence(
+
+ VkExternalSemaphoreHandleTypeFlagBits
+ VulkanImplementationHeadless::GetExternalSemaphoreHandleType() {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ return VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT;
+ #else
+ return VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT;
+@@ -127,7 +127,7 @@ VulkanImplementationHeadless::GetExternalSemaphoreHand
+ bool VulkanImplementationHeadless::CanImportGpuMemoryBuffer(
+ gpu::VulkanDeviceQueue* device_queue,
+ gfx::GpuMemoryBufferType memory_buffer_type) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const auto& enabled_extensions = device_queue->enabled_extensions();
+ return gfx::HasExtension(enabled_extensions,
+ VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME) &&
+@@ -150,7 +150,7 @@ VulkanImplementationHeadless::CreateImageFromGpuMemory
VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT |
VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT;
auto tiling = VK_IMAGE_TILING_OPTIMAL;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_host_wayland__toplevel__window.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_host_wayland__toplevel__window.cc
index 8ee267a44110..028006979cbc 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_host_wayland__toplevel__window.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_host_wayland__toplevel__window.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/ozone/platform/wayland/host/wayland_toplevel_window.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/ui/ozone/platform/wayland/host/wayland_toplevel_window.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/ui/ozone/platform/wayland/host/wayland_toplevel_window.cc
-@@ -448,7 +448,7 @@ void WaylandToplevelWindow::HandleAuraToplevelConfigur
+@@ -539,7 +539,7 @@ void WaylandToplevelWindow::HandleAuraToplevelConfigur
const bool did_active_change = is_active_ != window_states.is_activated;
is_active_ = window_states.is_activated;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_host_wayland__toplevel__window.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_host_wayland__toplevel__window.h
index 8ae031564f3a..f3e424c41695 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_host_wayland__toplevel__window.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_host_wayland__toplevel__window.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/ozone/platform/wayland/host/wayland_toplevel_window.h.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/ui/ozone/platform/wayland/host/wayland_toplevel_window.h.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/ui/ozone/platform/wayland/host/wayland_toplevel_window.h
-@@ -250,7 +250,7 @@ class WaylandToplevelWindow : public WaylandWindow,
+@@ -244,7 +244,7 @@ class WaylandToplevelWindow : public WaylandWindow,
// Contains the previous state of the window.
PlatformWindowState previous_state_ = PlatformWindowState::kUnknown;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_host_wayland__window.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_host_wayland__window.cc
new file mode 100644
index 000000000000..c53ee9f8d1ce
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_host_wayland__window.cc
@@ -0,0 +1,44 @@
+--- src/3rdparty/chromium/ui/ozone/platform/wayland/host/wayland_window.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/ui/ozone/platform/wayland/host/wayland_window.cc
+@@ -233,7 +233,7 @@ void WaylandWindow::OnPointerFocusChanged(bool focused
+ // Whenever the window gets the pointer focus back, the cursor shape must be
+ // updated. Otherwise, it is invalidated upon wl_pointer::leave and is not
+ // restored by the Wayland compositor.
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ if (focused && async_cursor_) {
+ async_cursor_->AddCursorLoadedCallback(
+ base::BindOnce(&WaylandWindow::OnCursorLoaded,
+@@ -490,7 +490,7 @@ bool WaylandWindow::ShouldUseNativeFrame() const {
+ void WaylandWindow::SetCursor(scoped_refptr<PlatformCursor> platform_cursor) {
+ DCHECK(platform_cursor);
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ auto async_cursor = WaylandAsyncCursor::FromPlatformCursor(platform_cursor);
+
+ if (async_cursor_ == async_cursor) {
+@@ -661,7 +661,7 @@ std::string WaylandWindow::WindowStates::ToString() co
+ } else {
+ base::TrimString(states, " ", &states);
+ }
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ states += "; tiled_edges: ";
+ std::string tiled = "";
+ if (tiled_edges.left) {
+@@ -1111,12 +1111,12 @@ void WaylandWindow::UpdateCursorShape(scoped_refptr<Bi
+ cursor->bitmaps(), hotspot_in_dips,
+ std::ceil(cursor->cursor_image_scale_factor()));
+ }
+-#if !BUILDFLAG(IS_LINUX)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+ cursor_ = cursor;
+ #endif
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void WaylandWindow::OnCursorLoaded(scoped_refptr<WaylandAsyncCursor> cursor,
+ scoped_refptr<BitmapCursor> bitmap_cursor) {
+ if (HasPointerFocus() && async_cursor_ == cursor && bitmap_cursor) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_host_wayland__window.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_host_wayland__window.h
index 4dd51dee4908..eb31e1e1535d 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_host_wayland__window.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_host_wayland__window.h
@@ -1,6 +1,15 @@
---- src/3rdparty/chromium/ui/ozone/platform/wayland/host/wayland_window.h.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/ui/ozone/platform/wayland/host/wayland_window.h.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/ui/ozone/platform/wayland/host/wayland_window.h
-@@ -231,7 +231,7 @@ class WaylandWindow : public PlatformWindow,
+@@ -39,7 +39,7 @@
+ #include "ui/platform_window/platform_window_init_properties.h"
+ #include "ui/platform_window/wm/wm_drag_handler.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/ozone/platform/wayland/host/wayland_async_cursor.h"
+ #endif
+
+@@ -241,7 +241,7 @@ class WaylandWindow : public PlatformWindow,
bool is_snapped_primary = false;
bool is_snapped_secondary = false;
bool is_floated = false;
@@ -8,4 +17,22 @@
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
WindowTiledEdges tiled_edges;
#endif
- };
+
+@@ -492,7 +492,7 @@ class WaylandWindow : public PlatformWindow,
+
+ void UpdateCursorShape(scoped_refptr<BitmapCursor> cursor);
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void OnCursorLoaded(scoped_refptr<WaylandAsyncCursor> cursor,
+ scoped_refptr<BitmapCursor> bitmap_cursor);
+ #endif
+@@ -551,7 +551,7 @@ class WaylandWindow : public PlatformWindow,
+
+ wl::Object<zaura_surface> aura_surface_;
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // The current asynchronously loaded cursor (Linux specific).
+ scoped_refptr<WaylandAsyncCursor> async_cursor_;
+ #else
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_host_xdg__toplevel__wrapper__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_host_xdg__toplevel__wrapper__impl.cc
index d46e1bcac45c..3c2a96a74fe6 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_host_xdg__toplevel__wrapper__impl.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_host_xdg__toplevel__wrapper__impl.cc
@@ -1,11 +1,11 @@
---- src/3rdparty/chromium/ui/ozone/platform/wayland/host/xdg_toplevel_wrapper_impl.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/ui/ozone/platform/wayland/host/xdg_toplevel_wrapper_impl.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/ui/ozone/platform/wayland/host/xdg_toplevel_wrapper_impl.cc
-@@ -272,7 +272,7 @@ void XDGToplevelWrapperImpl::ConfigureTopLevel(
+@@ -308,7 +308,7 @@ void XDGToplevelWrapperImpl::OnToplevelConfigure(void*
CheckIfWlArrayHasValue(states, XDG_TOPLEVEL_STATE_ACTIVATED),
};
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
- if (xdg_toplevel_get_version(xdg_toplevel) >=
+ if (xdg_toplevel_get_version(toplevel) >=
XDG_TOPLEVEL_STATE_TILED_LEFT_SINCE_VERSION) {
// All four tiled states have the same since version, so it is enough to
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_host_zwp__text__input__wrapper__v1.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_host_zwp__text__input__wrapper__v1.cc
new file mode 100644
index 000000000000..5f5cdc1f1626
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_host_zwp__text__input__wrapper__v1.cc
@@ -0,0 +1,21 @@
+--- src/3rdparty/chromium/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.cc
+@@ -226,6 +226,10 @@ void ZWPTextInputWrapperV1::SetSurroundingText(
+ // so if it exceeds 16 bits, it may be broken.
+ static constexpr size_t kSizeLimit = 60000;
+ if (HasAdvancedSurroundingTextSupport() && text.length() > kSizeLimit) {
++#if defined(__FreeBSD_version) && __FreeBSD_version < 1300048
++ PLOG(ERROR) << "memfd is not supported";
++ return;
++#else
+ base::ScopedFD memfd(memfd_create("surrounding_text", MFD_CLOEXEC));
+ if (!memfd.get()) {
+ PLOG(ERROR) << "Failed to create memfd";
+@@ -238,6 +242,7 @@ void ZWPTextInputWrapperV1::SetSurroundingText(
+ zcr_extended_text_input_v1_set_large_surrounding_text(
+ extended_obj_.get(), memfd.get(), text.length(),
+ selection_range.start(), selection_range.end());
++#endif
+ } else {
+ zwp_text_input_v1_set_surrounding_text(obj_.get(), text.c_str(),
+ selection_range.start(),
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_ozone__platform__wayland.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_ozone__platform__wayland.cc
index 223bac5db10c..07714b9614c1 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_ozone__platform__wayland.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_wayland_ozone__platform__wayland.cc
@@ -1,7 +1,14 @@
---- src/3rdparty/chromium/ui/ozone/platform/wayland/ozone_platform_wayland.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/ui/ozone/platform/wayland/ozone_platform_wayland.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/ui/ozone/platform/wayland/ozone_platform_wayland.cc
-@@ -71,7 +71,7 @@
+@@ -66,13 +66,13 @@
+ #include "ui/events/ozone/layout/stub/stub_keyboard_layout_engine.h"
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
#include "ui/ozone/platform/wayland/host/wayland_cursor_factory.h"
+ #else
+ #include "ui/ozone/common/bitmap_cursor_factory.h"
#endif
-#if BUILDFLAG(IS_LINUX)
@@ -9,7 +16,16 @@
#include "ui/ozone/platform/wayland/host/linux_ui_delegate_wayland.h"
#endif
-@@ -246,7 +246,7 @@ class OzonePlatformWayland : public OzonePlatform,
+@@ -262,7 +262,7 @@ class OzonePlatformWayland : public OzonePlatform,
+
+ buffer_manager_connector_ = std::make_unique<WaylandBufferManagerConnector>(
+ connection_->buffer_manager_host());
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ cursor_factory_ = std::make_unique<WaylandCursorFactory>(connection_.get());
+ #else
+ cursor_factory_ = std::make_unique<BitmapCursorFactory>();
+@@ -272,7 +272,7 @@ class OzonePlatformWayland : public OzonePlatform,
supported_buffer_formats_ =
connection_->buffer_manager_host()->GetSupportedBufferFormats();
@@ -18,7 +34,7 @@
linux_ui_delegate_ =
std::make_unique<LinuxUiDelegateWayland>(connection_.get());
#endif
-@@ -470,7 +470,7 @@ class OzonePlatformWayland : public OzonePlatform,
+@@ -510,7 +510,7 @@ class OzonePlatformWayland : public OzonePlatform,
DrmRenderNodePathFinder path_finder_;
#endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_x11_ozone__platform__x11.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_x11_ozone__platform__x11.cc
index 77f27f258b14..69946fcd81ce 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_x11_ozone__platform__x11.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_x11_ozone__platform__x11.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/ui/ozone/platform/x11/ozone_platform_x11.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/ui/ozone/platform/x11/ozone_platform_x11.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/ui/ozone/platform/x11/ozone_platform_x11.cc
@@ -196,7 +196,7 @@ class OzonePlatformX11 : public OzonePlatform,
properties->supports_global_application_menus = true;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_x11_x11__screen__ozone.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_x11_x11__screen__ozone.cc
new file mode 100644
index 000000000000..b28474d43445
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_x11_x11__screen__ozone.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/ui/ozone/platform/x11/x11_screen_ozone.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/ui/ozone/platform/x11/x11_screen_ozone.cc
+@@ -235,7 +235,7 @@ base::Value::List X11ScreenOzone::GetGpuExtraInfo(
+ return result;
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void X11ScreenOzone::SetDisplayConfig(const DisplayConfig& display_config) {
+ display_config_ = &display_config;
+ // See DesktopScreenLinux, which sets the |device_scale_factor| before |this|
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_x11_x11__screen__ozone.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_x11_x11__screen__ozone.h
new file mode 100644
index 000000000000..052a328150d7
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_platform_x11_x11__screen__ozone.h
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/ui/ozone/platform/x11/x11_screen_ozone.h.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/ui/ozone/platform/x11/x11_screen_ozone.h
+@@ -61,7 +61,7 @@ class X11ScreenOzone : public PlatformScreen,
+ std::string GetCurrentWorkspace() override;
+ base::Value::List GetGpuExtraInfo(
+ const gfx::GpuExtraInfo& gpu_extra_info) override;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void SetDisplayConfig(const DisplayConfig& display_config) override;
+ #endif
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_public_ozone__platform.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_public_ozone__platform.h
index 69ac9d2ee115..a51739fee085 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_public_ozone__platform.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_public_ozone__platform.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/ozone/public/ozone_platform.h.orig 2022-11-30 08:12:58 UTC
+--- src/3rdparty/chromium/ui/ozone/public/ozone_platform.h.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/ui/ozone/public/ozone_platform.h
-@@ -144,7 +144,7 @@ class COMPONENT_EXPORT(OZONE) OzonePlatform {
+@@ -143,7 +143,7 @@ class COMPONENT_EXPORT(OZONE) OzonePlatform {
// back via gpu extra info.
bool fetch_buffer_formats_for_gmb_on_gpu = false;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_public_platform__screen.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_public_platform__screen.cc
new file mode 100644
index 000000000000..a81db05108b1
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_public_platform__screen.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/ui/ozone/public/platform_screen.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/ui/ozone/public/platform_screen.cc
+@@ -61,7 +61,7 @@ display::TabletState PlatformScreen::GetTabletState()
+ }
+ #endif
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void PlatformScreen::SetDisplayConfig(const DisplayConfig& display_config) {}
+ #endif
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_public_platform__screen.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_public_platform__screen.h
new file mode 100644
index 000000000000..0527962d31c0
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_ozone_public_platform__screen.h
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/ui/ozone/public/platform_screen.h.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/ui/ozone/public/platform_screen.h
+@@ -15,7 +15,7 @@
+ #include "ui/gfx/gpu_extra_info.h"
+ #include "ui/gfx/native_widget_types.h"
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/linux_ui.h"
+ #endif
+
+@@ -136,7 +136,7 @@ class COMPONENT_EXPORT(OZONE_BASE) PlatformScreen {
+ virtual base::Value::List GetGpuExtraInfo(
+ const gfx::GpuExtraInfo& gpu_extra_info);
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Sets device scale factor received from external sources such as toolkits.
+ virtual void SetDisplayConfig(const DisplayConfig& display_config);
+ #endif
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_platform__window_platform__window__delegate.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_platform__window_platform__window__delegate.cc
index 3e295b22fc60..a234f6b09567 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_platform__window_platform__window__delegate.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_platform__window_platform__window__delegate.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/platform_window/platform_window_delegate.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/ui/platform_window/platform_window_delegate.cc.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/ui/platform_window/platform_window_delegate.cc
-@@ -29,7 +29,7 @@ PlatformWindowDelegate::PlatformWindowDelegate() = def
+@@ -36,7 +36,7 @@ PlatformWindowDelegate::PlatformWindowDelegate() = def
PlatformWindowDelegate::~PlatformWindowDelegate() = default;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_platform__window_platform__window__delegate.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_platform__window_platform__window__delegate.h
index 6c4c24b12e2f..8078b0e1a956 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_platform__window_platform__window__delegate.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_platform__window_platform__window__delegate.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/platform_window/platform_window_delegate.h.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/ui/platform_window/platform_window_delegate.h.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/ui/platform_window/platform_window_delegate.h
-@@ -130,7 +130,7 @@ class COMPONENT_EXPORT(PLATFORM_WINDOW) PlatformWindow
+@@ -134,7 +134,7 @@ class COMPONENT_EXPORT(PLATFORM_WINDOW) PlatformWindow
virtual void OnWindowStateChanged(PlatformWindowState old_state,
PlatformWindowState new_state) = 0;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_controls_textfield_textfield.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_controls_textfield_textfield.cc
index aab08dfe6cb7..b7f5e5968daf 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_controls_textfield_textfield.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_controls_textfield_textfield.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/views/controls/textfield/textfield.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/ui/views/controls/textfield/textfield.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/ui/views/controls/textfield/textfield.cc
-@@ -74,7 +74,7 @@
+@@ -79,7 +79,7 @@
#include "base/win/win_util.h"
#endif
@@ -9,7 +9,7 @@
#include "ui/base/ime/linux/text_edit_command_auralinux.h"
#include "ui/linux/linux_ui.h"
#endif
-@@ -168,7 +168,7 @@ bool IsControlKeyModifier(int flags) {
+@@ -173,7 +173,7 @@ bool IsControlKeyModifier(int flags) {
// Control-modified key combination, but we cannot extend it to other platforms
// as Control has different meanings and behaviors.
// https://crrev.com/2580483002/#msg46
@@ -18,7 +18,7 @@
return flags & ui::EF_CONTROL_DOWN;
#else
return false;
-@@ -706,7 +706,7 @@ bool Textfield::OnKeyPressed(const ui::KeyEvent& event
+@@ -742,7 +742,7 @@ bool Textfield::OnKeyPressed(const ui::KeyEvent& event
if (!textfield)
return handled;
@@ -27,7 +27,7 @@
auto* linux_ui = ui::LinuxUi::instance();
std::vector<ui::TextEditCommandAuraLinux> commands;
if (!handled && linux_ui &&
-@@ -878,7 +878,7 @@ void Textfield::AboutToRequestFocusFromTabTraversal(bo
+@@ -924,7 +924,7 @@ void Textfield::AboutToRequestFocusFromTabTraversal(bo
}
bool Textfield::SkipDefaultKeyEventProcessing(const ui::KeyEvent& event) {
@@ -36,7 +36,7 @@
// Skip any accelerator handling that conflicts with custom keybindings.
auto* linux_ui = ui::LinuxUi::instance();
std::vector<ui::TextEditCommandAuraLinux> commands;
-@@ -1831,7 +1831,7 @@ bool Textfield::ShouldDoLearning() {
+@@ -1929,7 +1929,7 @@ bool Textfield::ShouldDoLearning() {
return false;
}
@@ -45,7 +45,7 @@
// TODO(https://crbug.com/952355): Implement this method to support Korean IME
// reconversion feature on native text fields (e.g. find bar).
bool Textfield::SetCompositionFromExistingText(
-@@ -2344,14 +2344,14 @@ ui::TextEditCommand Textfield::GetCommandForKeyEvent(
+@@ -2442,14 +2442,14 @@ ui::TextEditCommand Textfield::GetCommandForKeyEvent(
#endif
return ui::TextEditCommand::DELETE_BACKWARD;
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_controls_textfield_textfield.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_controls_textfield_textfield.h
index a18da2326123..f57e7d05b71f 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_controls_textfield_textfield.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_controls_textfield_textfield.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/views/controls/textfield/textfield.h.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/ui/views/controls/textfield/textfield.h.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/ui/views/controls/textfield/textfield.h
-@@ -42,7 +42,7 @@
+@@ -44,7 +44,7 @@
#include "ui/views/view.h"
#include "ui/views/word_lookup_client.h"
@@ -9,7 +9,7 @@
#include <vector>
#endif
-@@ -450,7 +450,7 @@ class VIEWS_EXPORT Textfield : public View,
+@@ -452,7 +452,7 @@ class VIEWS_EXPORT Textfield : public View,
// Set whether the text should be used to improve typing suggestions.
void SetShouldDoLearning(bool value) { should_do_learning_ = value; }
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_corewm_tooltip__aura.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_corewm_tooltip__aura.cc
index 658dfa312d5e..20dd34306bb6 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_corewm_tooltip__aura.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_corewm_tooltip__aura.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/views/corewm/tooltip_aura.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/ui/views/corewm/tooltip_aura.cc.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/ui/views/corewm/tooltip_aura.cc
-@@ -51,7 +51,7 @@ constexpr int kVerticalPaddingBottom = 5;
+@@ -38,7 +38,7 @@ namespace {
bool CanUseTranslucentTooltipWidget() {
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_focus_focus__manager.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_focus_focus__manager.cc
index 01f65e8da5fa..56647f4fc04d 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_focus_focus__manager.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_focus_focus__manager.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/views/focus/focus_manager.cc.orig 2023-01-11 09:17:16 UTC
+--- src/3rdparty/chromium/ui/views/focus/focus_manager.cc.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/ui/views/focus/focus_manager.cc
-@@ -625,7 +625,7 @@ bool FocusManager::RedirectAcceleratorToBubbleAnchorWi
+@@ -577,7 +577,7 @@ bool FocusManager::RedirectAcceleratorToBubbleAnchorWi
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
@@ -9,7 +9,7 @@
// Processing an accelerator can delete things. Because we
// need these objects afterwards on Linux, save widget_ as weak pointer and
// save the close_on_deactivate property value of widget_delegate in a
-@@ -642,7 +642,7 @@ bool FocusManager::RedirectAcceleratorToBubbleAnchorWi
+@@ -594,7 +594,7 @@ bool FocusManager::RedirectAcceleratorToBubbleAnchorWi
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.cc
index c60c14fcaaa5..07d81668aa10 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/ui/views/widget/desktop_aura/desktop_drag_drop_client_ozone.cc.orig 2023-01-11 09:17:16 UTC
+--- src/3rdparty/chromium/ui/views/widget/desktop_aura/desktop_drag_drop_client_ozone.cc.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/ui/views/widget/desktop_aura/desktop_drag_drop_client_ozone.cc
@@ -194,7 +194,7 @@ DragOperation DesktopDragDropClientOzone::StartDragAnd
return drag_operation_;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc
index 27dde6a0455b..bf67f7ad257b 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
-@@ -43,7 +43,7 @@
+@@ -44,7 +44,7 @@
#include "ui/wm/core/window_util.h"
#include "ui/wm/public/window_move_client.h"
@@ -9,7 +9,7 @@
#include "ui/views/widget/desktop_aura/desktop_drag_drop_client_ozone_linux.h"
#endif
-@@ -257,7 +257,7 @@ void DesktopWindowTreeHostPlatform::Init(const Widget:
+@@ -265,7 +265,7 @@ void DesktopWindowTreeHostPlatform::Init(const Widget:
if (params.type == Widget::InitParams::TYPE_WINDOW)
GetContentWindow()->SetProperty(aura::client::kAnimationsDisabledKey, true);
@@ -18,7 +18,7 @@
const bool requires_accelerated_widget = params.requires_accelerated_widget;
#else
const bool requires_accelerated_widget = false;
-@@ -329,7 +329,7 @@ std::unique_ptr<aura::client::DragDropClient>
+@@ -346,7 +346,7 @@ std::unique_ptr<aura::client::DragDropClient>
DesktopWindowTreeHostPlatform::CreateDragDropClient() {
ui::WmDragHandler* drag_handler = ui::GetWmDragHandler(*(platform_window()));
std::unique_ptr<DesktopDragDropClientOzone> drag_drop_client =
@@ -27,7 +27,7 @@
std::make_unique<DesktopDragDropClientOzoneLinux>(window(), drag_handler);
#else
std::make_unique<DesktopDragDropClientOzone>(window(), drag_handler);
-@@ -1039,7 +1039,7 @@ display::Display DesktopWindowTreeHostPlatform::GetDis
+@@ -1081,7 +1081,7 @@ bool DesktopWindowTreeHostPlatform::RotateFocusForWidg
// DesktopWindowTreeHost:
// Linux subclasses this host and adds some Linux specific bits.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_widget_widget.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_widget_widget.cc
index 90f4d3025dd4..819ebb710d6d 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_widget_widget.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_widget_widget.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/views/widget/widget.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/ui/views/widget/widget.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/ui/views/widget/widget.cc
-@@ -52,7 +52,7 @@
+@@ -54,7 +54,7 @@
#include "ui/views/window/custom_frame_view.h"
#include "ui/views/window/dialog_delegate.h"
@@ -9,7 +9,7 @@
#include "ui/linux/linux_ui.h"
#endif
-@@ -1989,7 +1989,7 @@ const ui::NativeTheme* Widget::GetNativeTheme() const
+@@ -2041,7 +2041,7 @@ const ui::NativeTheme* Widget::GetNativeTheme() const
if (parent_)
return parent_->GetNativeTheme();
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_widget_widget.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_widget_widget.h
index 84a4e98c1e40..53a8abcb720d 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_widget_widget.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_widget_widget.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/views/widget/widget.h.orig 2023-01-11 09:17:16 UTC
+--- src/3rdparty/chromium/ui/views/widget/widget.h.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/ui/views/widget/widget.h
-@@ -408,7 +408,7 @@ class VIEWS_EXPORT Widget : public internal::NativeWid
+@@ -410,7 +410,7 @@ class VIEWS_EXPORT Widget : public internal::NativeWid
// If set, the widget was created in headless mode.
bool headless_mode = false;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_window_dialog__delegate.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_window_dialog__delegate.cc
index 5afcd6af4470..f4d7dfbe9cb1 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_window_dialog__delegate.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_window_dialog__delegate.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/ui/views/window/dialog_delegate.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/ui/views/window/dialog_delegate.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/ui/views/window/dialog_delegate.cc
-@@ -73,7 +73,7 @@ Widget* DialogDelegate::CreateDialogWidget(
+@@ -78,7 +78,7 @@ Widget* DialogDelegate::CreateDialogWidget(
// static
bool DialogDelegate::CanSupportCustomFrame(gfx::NativeView parent) {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_window_frame__background.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_window_frame__background.cc
index 4f644ce8b9bc..b34d95a6105f 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_window_frame__background.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_views_window_frame__background.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/ui/views/window/frame_background.cc.orig 2022-02-28 16:54:41 UTC
+--- src/3rdparty/chromium/ui/views/window/frame_background.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/ui/views/window/frame_background.cc
@@ -110,7 +110,7 @@ void FrameBackground::PaintMaximized(gfx::Canvas* canv
int width) const {
@@ -7,5 +7,5 @@
-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \
+#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \
BUILDFLAG(ENABLE_DESKTOP_AURA)
- ui::NativeTheme::ExtraParams params;
- params.frame_top_area.use_custom_frame = use_custom_frame_;
+ ui::NativeTheme::FrameTopAreaExtraParams frame_top_area;
+ frame_top_area.use_custom_frame = use_custom_frame_;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_BUILD.gn b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_BUILD.gn
index 14c7a8d8a55c..13e4649ae0be 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_BUILD.gn
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_BUILD.gn
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/v8/BUILD.gn.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/v8/BUILD.gn.orig 2023-12-12 22:08:45 UTC
+++ src/3rdparty/chromium/v8/BUILD.gn
-@@ -1305,6 +1305,14 @@ config("toolchain") {
+@@ -1418,6 +1418,14 @@ config("toolchain") {
} else if (target_os == "chromeos") {
defines += [ "V8_HAVE_TARGET_OS" ]
defines += [ "V8_TARGET_OS_CHROMEOS" ]
@@ -15,7 +15,20 @@
}
# TODO(infra): Support v8_enable_prof on Windows.
-@@ -5777,7 +5785,7 @@ v8_component("v8_libbase") {
+@@ -2381,6 +2389,12 @@ template("run_mksnapshot") {
+ if (!v8_enable_builtins_profiling && v8_enable_builtins_reordering) {
+ args += [ "--reorder-builtins" ]
+ }
++
++ if (v8_current_cpu == "x86") {
++ args -= [
++ "--abort-on-bad-builtin-profile-data",
++ ]
++ }
+ }
+
+ # This is needed to distinguish between generating code for the simulator
+@@ -6173,7 +6187,7 @@ v8_component("v8_libbase") {
}
}
@@ -24,7 +37,7 @@
sources += [
"src/base/debug/stack_trace_posix.cc",
"src/base/platform/platform-linux.cc",
-@@ -5788,6 +5796,18 @@ v8_component("v8_libbase") {
+@@ -6184,6 +6198,18 @@ v8_component("v8_libbase") {
"dl",
"rt",
]
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_include_v8-internal.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_include_v8-internal.h
index 3e0eecb4313f..0c56f6f4652e 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_include_v8-internal.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_include_v8-internal.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/v8/include/v8-internal.h.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/v8/include/v8-internal.h.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/v8/include/v8-internal.h
-@@ -176,7 +176,7 @@ using SandboxedPointer_t = Address;
+@@ -172,7 +172,7 @@ using SandboxedPointer_t = Address;
#ifdef V8_ENABLE_SANDBOX
// Size of the sandbox, excluding the guard regions surrounding it.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_api_api.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_api_api.cc
index 3254a55f7306..9f96f37381e7 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_api_api.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_api_api.cc
@@ -1,15 +1,15 @@
---- src/3rdparty/chromium/v8/src/api/api.cc.orig 2023-08-16 19:50:41 UTC
+--- src/3rdparty/chromium/v8/src/api/api.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/v8/src/api/api.cc
-@@ -142,7 +142,7 @@
+@@ -141,7 +141,7 @@
#include "src/wasm/wasm-serialization.h"
#endif // V8_ENABLE_WEBASSEMBLY
-#if V8_OS_LINUX || V8_OS_DARWIN || V8_OS_FREEBSD
+#if V8_OS_LINUX || V8_OS_DARWIN || V8_OS_FREEBSD || V8_OS_OPENBSD
#include <signal.h>
+ #include <unistd.h>
- #if V8_ENABLE_WEBASSEMBLY
-@@ -6354,7 +6354,7 @@ bool v8::V8::Initialize(const int build_config) {
+@@ -6352,7 +6352,7 @@ bool v8::V8::Initialize(const int build_config) {
return true;
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_base_atomicops.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_base_atomicops.h
index 446117838b0a..51d11ee69264 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_base_atomicops.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_base_atomicops.h
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/v8/src/base/atomicops.h.orig 2022-06-17 14:20:10 UTC
+--- src/3rdparty/chromium/v8/src/base/atomicops.h.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/v8/src/base/atomicops.h
@@ -57,10 +57,10 @@ using Atomic64 = SbAtomic64;
using Atomic8 = char;
@@ -13,7 +13,7 @@
using Atomic64 = int64_t;
#else
using Atomic64 = intptr_t;
-@@ -258,7 +258,7 @@ inline Atomic32 SeqCst_Load(volatile const Atomic32* p
+@@ -266,7 +266,7 @@ inline Atomic32 SeqCst_Load(volatile const Atomic32* p
std::memory_order_seq_cst);
}
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_base_platform_platform-openbsd.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_base_platform_platform-openbsd.cc
index 3e8509780585..bf245be77f38 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_base_platform_platform-openbsd.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_base_platform_platform-openbsd.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/v8/src/base/platform/platform-openbsd.cc.orig 2022-02-07 13:39:41 UTC
+--- src/3rdparty/chromium/v8/src/base/platform/platform-openbsd.cc.orig 2023-04-28 17:01:32 UTC
+++ src/3rdparty/chromium/v8/src/base/platform/platform-openbsd.cc
@@ -6,6 +6,7 @@
// POSIX-compatible parts, the implementation is in platform-posix.cc.
@@ -14,7 +14,7 @@
void OS::AdjustSchedulingParams() {}
+
+// static
-+Stack::StackSlot Stack::GetStackStart() {
++Stack::StackSlot Stack::ObtainCurrentThreadStackStart() {
+ stack_t ss;
+ void *base;
+ if (pthread_stackseg_np(pthread_self(), &ss) != 0)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_base_platform_platform-posix.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_base_platform_platform-posix.cc
index a6ab51a09133..b08c34559dd2 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_base_platform_platform-posix.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_base_platform_platform-posix.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/v8/src/base/platform/platform-posix.cc.orig 2023-03-09 06:31:50 UTC
+--- src/3rdparty/chromium/v8/src/base/platform/platform-posix.cc.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/v8/src/base/platform/platform-posix.cc
-@@ -53,7 +53,7 @@
+@@ -55,7 +55,7 @@
#if V8_OS_DARWIN
#include <mach/mach.h>
#include <malloc/malloc.h>
@@ -9,7 +9,7 @@
#include <malloc.h>
#endif
-@@ -71,7 +71,7 @@
+@@ -73,7 +73,7 @@
#include <sys/syscall.h>
#endif
@@ -18,7 +18,7 @@
#define MAP_ANONYMOUS MAP_ANON
#endif
-@@ -297,8 +297,15 @@ void OS::SetRandomMmapSeed(int64_t seed) {
+@@ -305,8 +305,15 @@ void OS::SetRandomMmapSeed(int64_t seed) {
}
}
@@ -34,7 +34,7 @@
uintptr_t raw_addr;
{
MutexGuard guard(rng_mutex.Pointer());
-@@ -393,6 +400,7 @@ void* OS::GetRandomMmapAddr() {
+@@ -401,6 +408,7 @@ void* OS::GetRandomMmapAddr() {
#endif
return reinterpret_cast<void*>(raw_addr);
}
@@ -42,7 +42,7 @@
// TODO(bbudge) Move Cygwin and Fuchsia stuff into platform-specific files.
#if !V8_OS_CYGWIN && !V8_OS_FUCHSIA
-@@ -661,7 +669,7 @@ void OS::DestroySharedMemoryHandle(PlatformSharedMemor
+@@ -674,7 +682,7 @@ void OS::DestroySharedMemoryHandle(PlatformSharedMemor
// static
bool OS::HasLazyCommits() {
@@ -51,12 +51,12 @@
return true;
#else
// TODO(bbudge) Return true for all POSIX platforms.
-@@ -1238,7 +1246,7 @@ void Thread::SetThreadLocal(LocalStorageKey key, void*
+@@ -1281,7 +1289,7 @@ void Thread::SetThreadLocal(LocalStorageKey key, void*
// keep this version in POSIX as most Linux-compatible derivatives will
// support it. MacOS and FreeBSD are different here.
#if !defined(V8_OS_FREEBSD) && !defined(V8_OS_DARWIN) && !defined(_AIX) && \
- !defined(V8_OS_SOLARIS)
+ !defined(V8_OS_SOLARIS) && !defined(V8_OS_OPENBSD)
- // static
- Stack::StackSlot Stack::GetStackStart() {
+ namespace {
+ #if DEBUG
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_baseline_x64_baseline-assembler-x64-inl.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_baseline_x64_baseline-assembler-x64-inl.h
new file mode 100644
index 000000000000..a21a55072cd9
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_baseline_x64_baseline-assembler-x64-inl.h
@@ -0,0 +1,13 @@
+--- src/3rdparty/chromium/v8/src/baseline/x64/baseline-assembler-x64-inl.h.orig 2023-07-16 15:47:57 UTC
++++ src/3rdparty/chromium/v8/src/baseline/x64/baseline-assembler-x64-inl.h
+@@ -73,9 +73,7 @@ MemOperand BaselineAssembler::FeedbackVectorOperand()
+
+ void BaselineAssembler::Bind(Label* label) { __ bind(label); }
+
+-void BaselineAssembler::JumpTarget() {
+- // NOP on x64.
+-}
++void BaselineAssembler::JumpTarget() { __ endbr64(); }
+
+ void BaselineAssembler::Jump(Label* target, Label::Distance distance) {
+ __ jmp(target, distance);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_builtins_x64_builtins-x64.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_builtins_x64_builtins-x64.cc
new file mode 100644
index 000000000000..8aa573e775b6
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_builtins_x64_builtins-x64.cc
@@ -0,0 +1,46 @@
+--- src/3rdparty/chromium/v8/src/builtins/x64/builtins-x64.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/v8/src/builtins/x64/builtins-x64.cc
+@@ -44,6 +44,8 @@ namespace internal {
+ #define __ ACCESS_MASM(masm)
+
+ void Builtins::Generate_Adaptor(MacroAssembler* masm, Address address) {
++ __ CodeEntry();
++
+ __ LoadAddress(kJavaScriptCallExtraArg1Register,
+ ExternalReference::Create(address));
+ __ Jump(BUILTIN_CODE(masm->isolate(), AdaptorWithBuiltinExitFrame),
+@@ -430,7 +432,7 @@ void Generate_JSEntryVariant(MacroAssembler* masm, Sta
+ // Jump to a faked try block that does the invoke, with a faked catch
+ // block that sets the pending exception.
+ __ jmp(&invoke);
+- __ bind(&handler_entry);
++ __ BindExceptionHandler(&handler_entry);
+
+ // Store the current pc as the handler offset. It's used later to create the
+ // handler table.
+@@ -3327,6 +3329,9 @@ void SwitchBackAndReturnPromise(MacroAssembler* masm,
+ void GenerateExceptionHandlingLandingPad(MacroAssembler* masm,
+ Label* return_promise) {
+ int catch_handler = __ pc_offset();
++
++ __ endbr64();
++
+ // Restore rsp to free the reserved stack slots for the sections.
+ __ leaq(rsp, MemOperand(rbp, StackSwitchFrameConstants::kLastSpillOffset));
+
+@@ -3658,6 +3663,7 @@ void Builtins::Generate_WasmSuspend(MacroAssembler* ma
+ LoadJumpBuffer(masm, jmpbuf, true);
+ __ Trap();
+ __ bind(&resume);
++ __ endbr64();
+ __ LeaveFrame(StackFrame::STACK_SWITCH);
+ __ ret(0);
+ }
+@@ -3790,6 +3796,7 @@ void Generate_WasmResumeHelper(MacroAssembler* masm, w
+ }
+ __ Trap();
+ __ bind(&suspend);
++ __ endbr64();
+ __ LeaveFrame(StackFrame::STACK_SWITCH);
+ // Pop receiver + parameter.
+ __ ret(2 * kSystemPointerSize);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_codegen_x64_assembler-x64.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_codegen_x64_assembler-x64.cc
new file mode 100644
index 000000000000..294357791729
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_codegen_x64_assembler-x64.cc
@@ -0,0 +1,42 @@
+--- src/3rdparty/chromium/v8/src/codegen/x64/assembler-x64.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/v8/src/codegen/x64/assembler-x64.cc
+@@ -1316,6 +1316,14 @@ void Assembler::hlt() {
+ emit(0xF4);
+ }
+
++void Assembler::endbr64() {
++ EnsureSpace ensure_space(this);
++ emit(0xF3);
++ emit(0x0f);
++ emit(0x1e);
++ emit(0xfa);
++}
++
+ void Assembler::emit_idiv(Register src, int size) {
+ EnsureSpace ensure_space(this);
+ emit_rex(src, size);
+@@ -1583,16 +1591,22 @@ void Assembler::jmp(Handle<Code> target, RelocInfo::Mo
+ emitl(code_target_index);
+ }
+
+-void Assembler::jmp(Register target) {
++void Assembler::jmp(Register target, bool notrack) {
+ EnsureSpace ensure_space(this);
++ if (notrack) {
++ emit(0x3e);
++ }
+ // Opcode FF/4 r64.
+ emit_optional_rex_32(target);
+ emit(0xFF);
+ emit_modrm(0x4, target);
+ }
+
+-void Assembler::jmp(Operand src) {
++void Assembler::jmp(Operand src, bool notrack) {
+ EnsureSpace ensure_space(this);
++ if (notrack) {
++ emit(0x3e);
++ }
+ // Opcode FF/4 m64.
+ emit_optional_rex_32(src);
+ emit(0xFF);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_codegen_x64_assembler-x64.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_codegen_x64_assembler-x64.h
new file mode 100644
index 000000000000..f455280dc92b
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_codegen_x64_assembler-x64.h
@@ -0,0 +1,21 @@
+--- src/3rdparty/chromium/v8/src/codegen/x64/assembler-x64.h.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/v8/src/codegen/x64/assembler-x64.h
+@@ -860,6 +860,7 @@ class V8_EXPORT_PRIVATE Assembler : public AssemblerBa
+ void ret(int imm16);
+ void ud2();
+ void setcc(Condition cc, Register reg);
++ void endbr64();
+
+ void pblendw(XMMRegister dst, Operand src, uint8_t mask);
+ void pblendw(XMMRegister dst, XMMRegister src, uint8_t mask);
+@@ -917,8 +918,8 @@ class V8_EXPORT_PRIVATE Assembler : public AssemblerBa
+ void jmp(Handle<Code> target, RelocInfo::Mode rmode);
+
+ // Jump near absolute indirect (r64)
+- void jmp(Register adr);
+- void jmp(Operand src);
++ void jmp(Register adr, bool notrack = false);
++ void jmp(Operand src, bool notrack = false);
+
+ // Unconditional jump relative to the current address. Low-level routine,
+ // use with caution!
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_codegen_x64_macro-assembler-x64.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_codegen_x64_macro-assembler-x64.cc
new file mode 100644
index 000000000000..26cc3ba91684
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_codegen_x64_macro-assembler-x64.cc
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/v8/src/codegen/x64/macro-assembler-x64.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/v8/src/codegen/x64/macro-assembler-x64.cc
+@@ -51,6 +51,8 @@ Operand StackArgumentsAccessor::GetArgumentOperand(int
+ return Operand(rsp, kPCOnStackSize + index * kSystemPointerSize);
+ }
+
++void MacroAssembler::CodeEntry() { endbr64(); }
++
+ void MacroAssembler::Load(Register destination, ExternalReference source) {
+ if (root_array_available_ && options().enable_root_relative_access) {
+ intptr_t delta = RootRegisterOffsetForExternalReference(isolate(), source);
+@@ -2046,7 +2048,7 @@ void MacroAssembler::Switch(Register scratch, Register
+ cmpq(reg, Immediate(num_labels));
+ j(above_equal, &fallthrough);
+ leaq(table, MemOperand(&jump_table));
+- jmp(MemOperand(table, reg, times_8, 0));
++ jmp(MemOperand(table, reg, times_8, 0), /*notrack=*/true);
+ // Emit the jump table inline, under the assumption that it's not too big.
+ Align(kSystemPointerSize);
+ bind(&jump_table);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_codegen_x64_macro-assembler-x64.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_codegen_x64_macro-assembler-x64.h
new file mode 100644
index 000000000000..e230f6225052
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_codegen_x64_macro-assembler-x64.h
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/v8/src/codegen/x64/macro-assembler-x64.h.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/v8/src/codegen/x64/macro-assembler-x64.h
+@@ -646,11 +646,14 @@ class V8_EXPORT_PRIVATE MacroAssembler
+
+ // Define a function entrypoint. This doesn't emit any code for this
+ // architecture, as control-flow integrity is not supported for it.
+- void CodeEntry() {}
++ void CodeEntry();
+ // Define an exception handler.
+- void ExceptionHandler() {}
++ void ExceptionHandler() { CodeEntry(); }
+ // Define an exception handler and bind a label.
+- void BindExceptionHandler(Label* label) { bind(label); }
++ void BindExceptionHandler(Label* label) {
++ bind(label);
++ CodeEntry();
++ }
+
+ // ---------------------------------------------------------------------------
+ // Pointer compression support
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_compiler_backend_ia32_instruction-selector-ia32.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_compiler_backend_ia32_instruction-selector-ia32.cc
deleted file mode 100644
index 080323f60714..000000000000
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_compiler_backend_ia32_instruction-selector-ia32.cc
+++ /dev/null
@@ -1,20 +0,0 @@
---- src/3rdparty/chromium/v8/src/compiler/backend/ia32/instruction-selector-ia32.cc.orig 2022-11-30 08:12:58 UTC
-+++ src/3rdparty/chromium/v8/src/compiler/backend/ia32/instruction-selector-ia32.cc
-@@ -3034,6 +3034,7 @@ void InstructionSelector::VisitI8x16Shuffle(Node* node
- Emit(opcode, 1, &dst, input_count, inputs, temp_count, temps);
- }
-
-+#if V8_ENABLE_WEBASSEMBLY
- void InstructionSelector::VisitI8x16Swizzle(Node* node) {
- InstructionCode op = kIA32I8x16Swizzle;
-
-@@ -3087,6 +3088,9 @@ void VisitMinOrMax(InstructionSelector* selector, Node
- void InstructionSelector::VisitF32x4Pmin(Node* node) {
- VisitMinOrMax(this, node, kIA32Minps, true);
- }
-+#else
-+void InstructionSelector::VisitI8x16Swizzle(Node* node) { UNREACHABLE(); }
-+#endif // V8_ENABLE_WEBASSEMBLY
-
- void InstructionSelector::VisitF32x4Pmax(Node* node) {
- VisitMinOrMax(this, node, kIA32Maxps, true);
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_compiler_backend_x64_code-generator-x64.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_compiler_backend_x64_code-generator-x64.cc
new file mode 100644
index 000000000000..92ad4b47ce7f
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_compiler_backend_x64_code-generator-x64.cc
@@ -0,0 +1,16 @@
+--- src/3rdparty/chromium/v8/src/compiler/backend/x64/code-generator-x64.cc.orig 2023-10-11 18:22:24 UTC
++++ src/3rdparty/chromium/v8/src/compiler/backend/x64/code-generator-x64.cc
+@@ -6828,11 +6828,11 @@ void CodeGenerator::AssembleArchTableSwitch(Instructio
+ // target = table + (target - table)
+ __ addq(input, kScratchRegister);
+ // Jump to the target.
+- __ jmp(input);
++ __ jmp(input, /*notrack=*/true);
+ } else {
+ // For non builtins, the value in the table is 'target_address' (8 bytes)
+ // jmp [table + index*8]
+- __ jmp(Operand(kScratchRegister, input, times_8, 0));
++ __ jmp(Operand(kScratchRegister, input, times_8, 0), /*notrack=*/true);
+ }
+ }
+
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_deoptimizer_x64_deoptimizer-x64.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_deoptimizer_x64_deoptimizer-x64.cc
new file mode 100644
index 000000000000..0fcb108f05d5
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_deoptimizer_x64_deoptimizer-x64.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/v8/src/deoptimizer/x64/deoptimizer-x64.cc.orig 2023-07-16 15:47:57 UTC
++++ src/3rdparty/chromium/v8/src/deoptimizer/x64/deoptimizer-x64.cc
+@@ -21,7 +21,7 @@ ASSERT_OFFSET(Builtin::kDeoptimizationEntry_Lazy);
+ #undef ASSERT_OFFSET
+
+ const int Deoptimizer::kEagerDeoptExitSize = 4;
+-const int Deoptimizer::kLazyDeoptExitSize = 4;
++const int Deoptimizer::kLazyDeoptExitSize = 8;
+
+ Float32 RegisterValues::GetFloatRegister(unsigned n) const {
+ return Float32::FromBits(
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_diagnostics_perf-jit.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_diagnostics_perf-jit.cc
index 6b2abb31d0dd..fbe7e994da93 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_diagnostics_perf-jit.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_diagnostics_perf-jit.cc
@@ -1,7 +1,7 @@
---- src/3rdparty/chromium/v8/src/diagnostics/perf-jit.cc.orig 2022-06-17 14:20:10 UTC
+--- src/3rdparty/chromium/v8/src/diagnostics/perf-jit.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/v8/src/diagnostics/perf-jit.cc
-@@ -30,7 +30,7 @@
- #include "src/common/assert-scope.h"
+@@ -31,7 +31,7 @@
+ #include "src/flags/flags.h"
// Only compile the {LinuxPerfJitLogger} on Linux.
-#if V8_OS_LINUX
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_execution_isolate.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_execution_isolate.cc
index 25ea084c2370..b10e18c34b65 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_execution_isolate.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_execution_isolate.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/v8/src/execution/isolate.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/v8/src/execution/isolate.cc.orig 2023-10-11 18:22:24 UTC
+++ src/3rdparty/chromium/v8/src/execution/isolate.cc
-@@ -146,6 +146,10 @@
+@@ -147,6 +147,10 @@
#include "src/execution/simulator-base.h"
#endif
@@ -11,7 +11,7 @@
extern "C" const uint8_t v8_Default_embedded_blob_code_[];
extern "C" uint32_t v8_Default_embedded_blob_code_size_;
extern "C" const uint8_t v8_Default_embedded_blob_data_[];
-@@ -3849,6 +3853,11 @@ void Isolate::InitializeDefaultEmbeddedBlob() {
+@@ -4034,6 +4038,11 @@ void Isolate::InitializeDefaultEmbeddedBlob() {
uint32_t code_size = DefaultEmbeddedBlobCodeSize();
const uint8_t* data = DefaultEmbeddedBlobData();
uint32_t data_size = DefaultEmbeddedBlobDataSize();
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_flags_flags.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_flags_flags.cc
new file mode 100644
index 000000000000..a704bb280780
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_flags_flags.cc
@@ -0,0 +1,36 @@
+--- src/3rdparty/chromium/v8/src/flags/flags.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/v8/src/flags/flags.cc
+@@ -12,6 +12,10 @@
+ #include <iomanip>
+ #include <sstream>
+
++#if V8_OS_OPENBSD
++#include <sys/mman.h>
++#endif
++
+ #include "src/base/functional.h"
+ #include "src/base/logging.h"
+ #include "src/base/platform/platform.h"
+@@ -31,7 +35,11 @@
+ namespace v8::internal {
+
+ // Define {v8_flags}, declared in flags.h.
++#if V8_OS_OPENBSD
++FlagValues v8_flags __attribute__((section(".openbsd.mutable")));
++#else
+ FlagValues v8_flags;
++#endif
+
+ // {v8_flags} needs to be aligned to a memory page, and the size needs to be a
+ // multiple of a page size. This is required for memory-protection of the memory
+@@ -824,6 +832,10 @@ void FlagList::FreezeFlags() {
+ // Note that for string flags we only protect the pointer itself, but not the
+ // string storage. TODO(12887): Fix this.
+ base::OS::SetDataReadOnly(&v8_flags, sizeof(v8_flags));
++#if V8_OS_OPENBSD
++ if (mimmutable(&v8_flags, sizeof(v8_flags)) == -1)
++ FATAL("unable to set immutability of v8_flags");
++#endif
+ }
+
+ // static
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_maglev_x64_maglev-assembler-x64-inl.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_maglev_x64_maglev-assembler-x64-inl.h
new file mode 100644
index 000000000000..a38884e12313
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_maglev_x64_maglev-assembler-x64-inl.h
@@ -0,0 +1,14 @@
+--- src/3rdparty/chromium/v8/src/maglev/x64/maglev-assembler-x64-inl.h.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/v8/src/maglev/x64/maglev-assembler-x64-inl.h
+@@ -229,7 +229,10 @@ void MaglevAssembler::PushReverse(T... vals) {
+ detail::PushAllHelper<T...>::PushReverse(this, vals...);
+ }
+
+-inline void MaglevAssembler::BindJumpTarget(Label* label) { bind(label); }
++inline void MaglevAssembler::BindJumpTarget(Label* label) {
++ bind(label);
++ endbr64();
++}
+
+ inline void MaglevAssembler::BindBlock(BasicBlock* block) {
+ bind(block->label());
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_maglev_x64_maglev-assembler-x64.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_maglev_x64_maglev-assembler-x64.cc
new file mode 100644
index 000000000000..20252707ee65
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_maglev_x64_maglev-assembler-x64.cc
@@ -0,0 +1,16 @@
+--- src/3rdparty/chromium/v8/src/maglev/x64/maglev-assembler-x64.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/v8/src/maglev/x64/maglev-assembler-x64.cc
+@@ -433,10 +433,12 @@ void MaglevAssembler::OSRPrologue(Graph* graph) {
+ void MaglevAssembler::Prologue(Graph* graph) {
+ DCHECK(!graph->is_osr());
+
++ CodeEntry();
++
+ BailoutIfDeoptimized(rbx);
+
+ if (graph->has_recursive_calls()) {
+- bind(code_gen_state()->entry_label());
++ BindJumpTarget(code_gen_state()->entry_label());
+ }
+
+ // Tiering support.
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_regexp_x64_regexp-macro-assembler-x64.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_regexp_x64_regexp-macro-assembler-x64.cc
new file mode 100644
index 000000000000..8c27106d5ad1
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_regexp_x64_regexp-macro-assembler-x64.cc
@@ -0,0 +1,22 @@
+--- src/3rdparty/chromium/v8/src/regexp/x64/regexp-macro-assembler-x64.cc.orig 2023-07-16 15:47:57 UTC
++++ src/3rdparty/chromium/v8/src/regexp/x64/regexp-macro-assembler-x64.cc
+@@ -110,6 +110,7 @@ RegExpMacroAssemblerX64::RegExpMacroAssemblerX64(Isola
+ backtrack_label_(),
+ exit_label_() {
+ DCHECK_EQ(0, registers_to_save % 2);
++ __ CodeEntry();
+ __ jmp(&entry_label_); // We'll write the entry code when we know more.
+ __ bind(&start_label_); // And then continue from here.
+ }
+@@ -714,6 +715,11 @@ bool RegExpMacroAssemblerX64::CheckSpecialClassRanges(
+ // Match any character.
+ return true;
+ }
++}
++
++void RegExpMacroAssemblerX64::BindJumpTarget(Label* label) {
++ Bind(label);
++ __ CodeEntry();
+ }
+
+ void RegExpMacroAssemblerX64::Fail() {
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_regexp_x64_regexp-macro-assembler-x64.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_regexp_x64_regexp-macro-assembler-x64.h
new file mode 100644
index 000000000000..43fbe6a20691
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_regexp_x64_regexp-macro-assembler-x64.h
@@ -0,0 +1,12 @@
+--- src/3rdparty/chromium/v8/src/regexp/x64/regexp-macro-assembler-x64.h.orig 2023-07-16 15:47:57 UTC
++++ src/3rdparty/chromium/v8/src/regexp/x64/regexp-macro-assembler-x64.h
+@@ -59,6 +59,9 @@ class V8_EXPORT_PRIVATE RegExpMacroAssemblerX64
+ void CheckPosition(int cp_offset, Label* on_outside_input) override;
+ bool CheckSpecialClassRanges(StandardCharacterSet type,
+ Label* on_no_match) override;
++
++ void BindJumpTarget(Label* label) override;
++
+ void Fail() override;
+ Handle<HeapObject> GetCode(Handle<String> source) override;
+ void GoTo(Label* label) override;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_snapshot_embedded_platform-embedded-file-writer-generic.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_snapshot_embedded_platform-embedded-file-writer-generic.cc
index 956817daf095..8f34904e9bbe 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_snapshot_embedded_platform-embedded-file-writer-generic.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_snapshot_embedded_platform-embedded-file-writer-generic.cc
@@ -1,8 +1,8 @@
---- src/3rdparty/chromium/v8/src/snapshot/embedded/platform-embedded-file-writer-generic.cc.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/v8/src/snapshot/embedded/platform-embedded-file-writer-generic.cc.orig 2023-08-17 07:33:31 UTC
+++ src/3rdparty/chromium/v8/src/snapshot/embedded/platform-embedded-file-writer-generic.cc
@@ -9,6 +9,10 @@
- #include "src/objects/code.h"
+ #include "src/objects/instruction-stream.h"
+#if V8_OS_OPENBSD
+#include <sys/param.h>
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_trap-handler_handler-inside-posix.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_trap-handler_handler-inside-posix.cc
index dc0542162ea5..7ec4e44c855f 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_trap-handler_handler-inside-posix.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_trap-handler_handler-inside-posix.cc
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/v8/src/trap-handler/handler-inside-posix.cc.orig 2023-01-11 09:17:16 UTC
+--- src/3rdparty/chromium/v8/src/trap-handler/handler-inside-posix.cc.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/v8/src/trap-handler/handler-inside-posix.cc
-@@ -55,6 +55,8 @@ namespace trap_handler {
+@@ -59,6 +59,8 @@ namespace trap_handler {
#define CONTEXT_REG(reg, REG) &uc->uc_mcontext->__ss.__##reg
#elif V8_OS_FREEBSD
#define CONTEXT_REG(reg, REG) &uc->uc_mcontext.mc_##reg
@@ -9,7 +9,7 @@
#else
#error "Unsupported platform."
#endif
-@@ -64,8 +66,12 @@ bool IsKernelGeneratedSignal(siginfo_t* info) {
+@@ -68,8 +70,12 @@ bool IsKernelGeneratedSignal(siginfo_t* info) {
// si_code at its default of 0 for signals that dont originate in hardware.
// The other conditions are only relevant for Linux.
return info->si_code > 0 && info->si_code != SI_USER &&
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_trap-handler_trap-handler.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_trap-handler_trap-handler.h
index d9d610892469..b22dfb97260a 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_trap-handler_trap-handler.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_trap-handler_trap-handler.h
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/v8/src/trap-handler/trap-handler.h.orig 2022-04-21 18:48:31 UTC
+--- src/3rdparty/chromium/v8/src/trap-handler/trap-handler.h.orig 2023-05-31 08:12:17 UTC
+++ src/3rdparty/chromium/v8/src/trap-handler/trap-handler.h
@@ -20,7 +20,7 @@ namespace trap_handler {
// X64 on Linux, Windows, MacOS, FreeBSD.
@@ -7,5 +7,5 @@
- V8_OS_FREEBSD)
+ V8_OS_FREEBSD || V8_OS_OPENBSD)
#define V8_TRAP_HANDLER_SUPPORTED true
- // Arm64 (non-simulator) on Mac.
- #elif V8_TARGET_ARCH_ARM64 && V8_HOST_ARCH_ARM64 && V8_OS_DARWIN
+ // Arm64 (non-simulator) on Mac and Linux.
+ #elif V8_TARGET_ARCH_ARM64 && V8_HOST_ARCH_ARM64 && \
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_wasm_baseline_ia32_liftoff-assembler-ia32.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_wasm_baseline_ia32_liftoff-assembler-ia32.h
index 174870543e59..3dc87904205c 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_wasm_baseline_ia32_liftoff-assembler-ia32.h
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_wasm_baseline_ia32_liftoff-assembler-ia32.h
@@ -1,6 +1,6 @@
---- src/3rdparty/chromium/v8/src/wasm/baseline/ia32/liftoff-assembler-ia32.h.orig 2023-04-05 11:05:06 UTC
+--- src/3rdparty/chromium/v8/src/wasm/baseline/ia32/liftoff-assembler-ia32.h.orig 2023-09-13 12:11:42 UTC
+++ src/3rdparty/chromium/v8/src/wasm/baseline/ia32/liftoff-assembler-ia32.h
-@@ -424,7 +424,7 @@ void LiftoffAssembler::StoreTaggedPointer(Register dst
+@@ -491,7 +491,7 @@ void LiftoffAssembler::StoreTaggedPointer(Register dst
}
void LiftoffAssembler::Load(LiftoffRegister dst, Register src_addr,
@@ -9,7 +9,7 @@
LoadType type, uint32_t* protected_load_pc,
bool /* is_load_mem */, bool /* i64_offset */,
bool needs_shift) {
-@@ -504,7 +504,7 @@ void LiftoffAssembler::Load(LiftoffRegister dst, Regis
+@@ -571,7 +571,7 @@ void LiftoffAssembler::Load(LiftoffRegister dst, Regis
}
void LiftoffAssembler::Store(Register dst_addr, Register offset_reg,
@@ -18,7 +18,7 @@
StoreType type, LiftoffRegList pinned,
uint32_t* protected_store_pc,
bool /* is_store_mem */, bool /* i64_offset */) {
-@@ -573,7 +573,7 @@ void LiftoffAssembler::Store(Register dst_addr, Regist
+@@ -651,7 +651,7 @@ void LiftoffAssembler::Store(Register dst_addr, Regist
}
void LiftoffAssembler::AtomicLoad(LiftoffRegister dst, Register src_addr,
@@ -27,7 +27,7 @@
LoadType type, LiftoffRegList /* pinned */,
bool /* i64_offset */) {
if (type.value() != LoadType::kI64Load) {
-@@ -593,7 +593,7 @@ void LiftoffAssembler::AtomicLoad(LiftoffRegister dst,
+@@ -671,7 +671,7 @@ void LiftoffAssembler::AtomicLoad(LiftoffRegister dst,
}
void LiftoffAssembler::AtomicStore(Register dst_addr, Register offset_reg,
@@ -36,7 +36,7 @@
StoreType type, LiftoffRegList pinned,
bool /* i64_offset */) {
DCHECK_NE(offset_reg, no_reg);
-@@ -663,7 +663,7 @@ enum Binop { kAdd, kSub, kAnd, kOr, kXor, kExchange };
+@@ -741,7 +741,7 @@ enum Binop { kAdd, kSub, kAnd, kOr, kXor, kExchange };
inline void AtomicAddOrSubOrExchange32(LiftoffAssembler* lasm, Binop binop,
Register dst_addr, Register offset_reg,
@@ -45,7 +45,7 @@
LiftoffRegister value,
LiftoffRegister result, StoreType type) {
DCHECK_EQ(value, result);
-@@ -730,7 +730,7 @@ inline void AtomicAddOrSubOrExchange32(LiftoffAssemble
+@@ -808,7 +808,7 @@ inline void AtomicAddOrSubOrExchange32(LiftoffAssemble
}
inline void AtomicBinop32(LiftoffAssembler* lasm, Binop op, Register dst_addr,
@@ -54,7 +54,7 @@
LiftoffRegister value, LiftoffRegister result,
StoreType type) {
DCHECK_EQ(value, result);
-@@ -842,7 +842,7 @@ inline void AtomicBinop32(LiftoffAssembler* lasm, Bino
+@@ -920,7 +920,7 @@ inline void AtomicBinop32(LiftoffAssembler* lasm, Bino
}
inline void AtomicBinop64(LiftoffAssembler* lasm, Binop op, Register dst_addr,
@@ -63,7 +63,7 @@
LiftoffRegister value, LiftoffRegister result) {
// We need {ebx} here, which is the root register. As the root register it
// needs special treatment. As we use {ebx} directly in the code below, we
-@@ -934,7 +934,7 @@ inline void AtomicBinop64(LiftoffAssembler* lasm, Bino
+@@ -1012,7 +1012,7 @@ inline void AtomicBinop64(LiftoffAssembler* lasm, Bino
} // namespace liftoff
void LiftoffAssembler::AtomicAdd(Register dst_addr, Register offset_reg,
@@ -72,7 +72,7 @@
LiftoffRegister result, StoreType type,
bool /* i64_offset */) {
if (type.value() == StoreType::kI64Store) {
-@@ -948,7 +948,7 @@ void LiftoffAssembler::AtomicAdd(Register dst_addr, Re
+@@ -1026,7 +1026,7 @@ void LiftoffAssembler::AtomicAdd(Register dst_addr, Re
}
void LiftoffAssembler::AtomicSub(Register dst_addr, Register offset_reg,
@@ -81,7 +81,7 @@
LiftoffRegister result, StoreType type,
bool /* i64_offset */) {
if (type.value() == StoreType::kI64Store) {
-@@ -961,7 +961,7 @@ void LiftoffAssembler::AtomicSub(Register dst_addr, Re
+@@ -1039,7 +1039,7 @@ void LiftoffAssembler::AtomicSub(Register dst_addr, Re
}
void LiftoffAssembler::AtomicAnd(Register dst_addr, Register offset_reg,
@@ -90,7 +90,7 @@
LiftoffRegister result, StoreType type,
bool /* i64_offset */) {
if (type.value() == StoreType::kI64Store) {
-@@ -975,7 +975,7 @@ void LiftoffAssembler::AtomicAnd(Register dst_addr, Re
+@@ -1053,7 +1053,7 @@ void LiftoffAssembler::AtomicAnd(Register dst_addr, Re
}
void LiftoffAssembler::AtomicOr(Register dst_addr, Register offset_reg,
@@ -99,7 +99,7 @@
LiftoffRegister result, StoreType type,
bool /* i64_offset */) {
if (type.value() == StoreType::kI64Store) {
-@@ -989,7 +989,7 @@ void LiftoffAssembler::AtomicOr(Register dst_addr, Reg
+@@ -1067,7 +1067,7 @@ void LiftoffAssembler::AtomicOr(Register dst_addr, Reg
}
void LiftoffAssembler::AtomicXor(Register dst_addr, Register offset_reg,
@@ -108,7 +108,7 @@
LiftoffRegister result, StoreType type,
bool /* i64_offset */) {
if (type.value() == StoreType::kI64Store) {
-@@ -1003,7 +1003,7 @@ void LiftoffAssembler::AtomicXor(Register dst_addr, Re
+@@ -1081,7 +1081,7 @@ void LiftoffAssembler::AtomicXor(Register dst_addr, Re
}
void LiftoffAssembler::AtomicExchange(Register dst_addr, Register offset_reg,
@@ -117,7 +117,7 @@
LiftoffRegister value,
LiftoffRegister result, StoreType type,
bool /* i64_offset */) {
-@@ -1018,7 +1018,7 @@ void LiftoffAssembler::AtomicExchange(Register dst_add
+@@ -1096,7 +1096,7 @@ void LiftoffAssembler::AtomicExchange(Register dst_add
}
void LiftoffAssembler::AtomicCompareExchange(
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_wasm_jump-table-assembler.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_wasm_jump-table-assembler.cc
new file mode 100644
index 000000000000..57c26827fc25
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_wasm_jump-table-assembler.cc
@@ -0,0 +1,51 @@
+--- src/3rdparty/chromium/v8/src/wasm/jump-table-assembler.cc.orig 2023-07-16 15:47:57 UTC
++++ src/3rdparty/chromium/v8/src/wasm/jump-table-assembler.cc
+@@ -52,15 +52,21 @@ void JumpTableAssembler::InitializeJumpsToLazyCompileT
+ #if V8_TARGET_ARCH_X64
+ void JumpTableAssembler::EmitLazyCompileJumpSlot(uint32_t func_index,
+ Address lazy_compile_target) {
++ intptr_t displacement =
++ static_cast<intptr_t>(reinterpret_cast<uint8_t*>(lazy_compile_target) -
++ (pc_ + 9) - kNearJmpInstrSize);
++ if (!is_int32(displacement)) return;
++ CodeEntry(); // 4 bytes
+ // Use a push, because mov to an extended register takes 6 bytes.
+- pushq_imm32(func_index); // 5 bytes
+- EmitJumpSlot(lazy_compile_target); // 5 bytes
++ pushq_imm32(func_index); // 5 bytes
++ near_jmp(displacement, RelocInfo::NO_INFO); // 5 bytes
+ }
+
+ bool JumpTableAssembler::EmitJumpSlot(Address target) {
+ intptr_t displacement = static_cast<intptr_t>(
+- reinterpret_cast<uint8_t*>(target) - pc_ - kNearJmpInstrSize);
++ reinterpret_cast<uint8_t*>(target) - (pc_ + 4) - kNearJmpInstrSize);
+ if (!is_int32(displacement)) return false;
++ CodeEntry(); // 4 bytes
+ near_jmp(displacement, RelocInfo::NO_INFO); // 5 bytes
+ return true;
+ }
+@@ -68,11 +74,12 @@ bool JumpTableAssembler::EmitJumpSlot(Address target)
+ void JumpTableAssembler::EmitFarJumpSlot(Address target) {
+ Label data;
+ int start_offset = pc_offset();
++ CodeEntry(); // 4 bytes
+ jmp(Operand(&data)); // 6 bytes
+- Nop(2); // 2 bytes
++ Nop(6); // 6 bytes
+ // The data must be properly aligned, so it can be patched atomically (see
+ // {PatchFarJumpSlot}).
+- DCHECK_EQ(start_offset + kSystemPointerSize, pc_offset());
++ DCHECK_EQ(start_offset + kFarJumpTableSlotOffset, pc_offset());
+ USE(start_offset);
+ bind(&data);
+ dq(target); // 8 bytes
+@@ -83,7 +90,7 @@ void JumpTableAssembler::PatchFarJumpSlot(Address slot
+ // The slot needs to be pointer-size aligned so we can atomically update it.
+ DCHECK(IsAligned(slot, kSystemPointerSize));
+ // Offset of the target is at 8 bytes, see {EmitFarJumpSlot}.
+- reinterpret_cast<std::atomic<Address>*>(slot + kSystemPointerSize)
++ reinterpret_cast<std::atomic<Address>*>(slot + kFarJumpTableSlotOffset)
+ ->store(target, std::memory_order_relaxed);
+ // The update is atomic because the address is properly aligned.
+ // Because of cache coherence, the data update will eventually be seen by all
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_wasm_jump-table-assembler.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_wasm_jump-table-assembler.h
new file mode 100644
index 000000000000..b1f3d1d5539f
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_wasm_jump-table-assembler.h
@@ -0,0 +1,16 @@
+--- src/3rdparty/chromium/v8/src/wasm/jump-table-assembler.h.orig 2023-07-16 15:47:57 UTC
++++ src/3rdparty/chromium/v8/src/wasm/jump-table-assembler.h
+@@ -185,9 +185,10 @@ class V8_EXPORT_PRIVATE JumpTableAssembler : public Ma
+ // boundaries. The jump table line size has been chosen to satisfy this.
+ #if V8_TARGET_ARCH_X64
+ static constexpr int kJumpTableLineSize = 64;
+- static constexpr int kJumpTableSlotSize = 5;
+- static constexpr int kFarJumpTableSlotSize = 16;
+- static constexpr int kLazyCompileTableSlotSize = 10;
++ static constexpr int kJumpTableSlotSize = 5 + 4;
++ static constexpr int kFarJumpTableSlotOffset = 2 * kSystemPointerSize;
++ static constexpr int kFarJumpTableSlotSize = 16 + 8;
++ static constexpr int kLazyCompileTableSlotSize = 10 + 4;
+ #elif V8_TARGET_ARCH_IA32
+ static constexpr int kJumpTableLineSize = 64;
+ static constexpr int kJumpTableSlotSize = 5;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_weblayer_browser_browser__main__parts__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_weblayer_browser_browser__main__parts__impl.cc
new file mode 100644
index 000000000000..bc76caba35f0
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_weblayer_browser_browser__main__parts__impl.cc
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/weblayer/browser/browser_main_parts_impl.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/weblayer/browser/browser_main_parts_impl.cc
+@@ -82,7 +82,7 @@
+
+ // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is
+ // complete.
+-#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
+ #include "ui/base/ime/init/input_method_initializer.h"
+ #endif
+
+@@ -201,7 +201,7 @@ int BrowserMainPartsImpl::PreEarlyInitialization() {
+
+ // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is
+ // complete.
+-#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
+ ui::InitializeInputMethodForTesting();
+ #endif
+ #if BUILDFLAG(IS_ANDROID)
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_weblayer_browser_content__browser__client__impl.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_weblayer_browser_content__browser__client__impl.cc
new file mode 100644
index 000000000000..e30491b9f28a
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_weblayer_browser_content__browser__client__impl.cc
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/weblayer/browser/content_browser_client_impl.cc.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/weblayer/browser/content_browser_client_impl.cc
+@@ -154,7 +154,7 @@
+ // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is
+ // complete.
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || \
+- BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ #include "content/public/common/content_descriptors.h"
+ #endif
+
+@@ -1025,7 +1025,7 @@ SafeBrowsingService* ContentBrowserClientImpl::GetSafe
+ // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is
+ // complete.
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || \
+- BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ void ContentBrowserClientImpl::GetAdditionalMappedFilesForChildProcess(
+ const base::CommandLine& command_line,
+ int child_process_id,
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_weblayer_browser_content__browser__client__impl.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_weblayer_browser_content__browser__client__impl.h
new file mode 100644
index 000000000000..bcf8fe116242
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_weblayer_browser_content__browser__client__impl.h
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/weblayer/browser/content_browser_client_impl.h.orig 2023-09-13 12:11:42 UTC
++++ src/3rdparty/chromium/weblayer/browser/content_browser_client_impl.h
+@@ -184,7 +184,7 @@ class ContentBrowserClientImpl : public content::Conte
+ // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is
+ // complete.
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || \
+- BUILDFLAG(IS_ANDROID)
++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ void GetAdditionalMappedFilesForChildProcess(
+ const base::CommandLine& command_line,
+ int child_process_id,
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_weblayer_browser_system__network__context__manager.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_weblayer_browser_system__network__context__manager.cc
new file mode 100644
index 000000000000..9b1ea960f8ef
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_weblayer_browser_system__network__context__manager.cc
@@ -0,0 +1,11 @@
+--- src/3rdparty/chromium/weblayer/browser/system_network_context_manager.cc.orig 2022-03-25 21:59:56 UTC
++++ src/3rdparty/chromium/weblayer/browser/system_network_context_manager.cc
+@@ -69,7 +69,7 @@ void SystemNetworkContextManager::ConfigureDefaultNetw
+ network_context_params->user_agent = user_agent;
+ // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is
+ // complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ // We're not configuring the cookie encryption on these platforms yet.
+ network_context_params->enable_encrypted_cookies = false;
+ #endif // (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) ||
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_weblayer_common_weblayer__paths.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_weblayer_common_weblayer__paths.cc
new file mode 100644
index 000000000000..80c3836c307c
--- /dev/null
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_weblayer_common_weblayer__paths.cc
@@ -0,0 +1,20 @@
+--- src/3rdparty/chromium/weblayer/common/weblayer_paths.cc.orig 2022-03-25 21:59:56 UTC
++++ src/3rdparty/chromium/weblayer/common/weblayer_paths.cc
+@@ -18,7 +18,7 @@
+
+ #if BUILDFLAG(IS_WIN)
+ #include "base/base_paths_win.h"
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ #include "base/nix/xdg_util.h"
+ #endif
+
+@@ -36,7 +36,7 @@ bool GetDefaultUserDataDirectory(base::FilePath* resul
+ return false;
+ *result = result->AppendASCII("weblayer");
+ return true;
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ std::unique_ptr<base::Environment> env(base::Environment::Create());
+ base::FilePath config_dir(base::nix::GetXDGDirectory(
+ env.get(), base::nix::kXdgConfigHomeEnvVar, base::nix::kDotConfigDir));
diff --git a/www/qt6-webengine/files/patch-src_core_CMakeLists.txt b/www/qt6-webengine/files/patch-src_core_CMakeLists.txt
index 2c1eeafc4734..ce8adebaa3df 100644
--- a/www/qt6-webengine/files/patch-src_core_CMakeLists.txt
+++ b/www/qt6-webengine/files/patch-src_core_CMakeLists.txt
@@ -1,6 +1,6 @@
---- src/core/CMakeLists.txt.orig 2023-08-16 19:50:41 UTC
+--- src/core/CMakeLists.txt.orig 2023-12-12 22:08:45 UTC
+++ src/core/CMakeLists.txt
-@@ -20,7 +20,7 @@ add_subdirectory(tools)
+@@ -20,7 +20,7 @@ add_subdirectory(tools/qwebengine_convert_dict)
# TOOLCHAIN SETUP
##
@@ -9,7 +9,7 @@
setup_toolchains()
endif()
-@@ -405,7 +405,7 @@ foreach(arch ${archs})
+@@ -409,7 +409,7 @@ foreach(arch ${archs})
CONDITION QT_FEATURE_webengine_embedded_build
)
@@ -18,7 +18,7 @@
list(APPEND gnArgArg
use_gtk=false # GTK toolkit bindings
use_qt=false # Qt5 toolkit bindings
-@@ -415,7 +415,7 @@ foreach(arch ${archs})
+@@ -418,7 +418,7 @@ foreach(arch ${archs})
use_bundled_fontconfig=false
use_glib=false
use_bluez=false
@@ -27,7 +27,7 @@
is_cfi=false
use_ozone=true
ozone_auto_platforms=false
-@@ -474,6 +474,10 @@ foreach(arch ${archs})
+@@ -477,6 +477,10 @@ foreach(arch ${archs})
extend_gn_list(gnArgArg
ARGS use_pulseaudio
CONDITION QT_FEATURE_webengine_system_pulseaudio
@@ -37,4 +37,4 @@
+ CONDITION QT_FEATURE_webengine_system_sndio
)
extend_gn_list(gnArgArg
- ARGS use_vaapi
+ ARGS use_system_minigbm
diff --git a/www/qt6-webengine/files/patch-src_core_api_configure.cmake b/www/qt6-webengine/files/patch-src_core_api_configure.cmake
index 37bf6d26192b..ddeccc69e5bb 100644
--- a/www/qt6-webengine/files/patch-src_core_api_configure.cmake
+++ b/www/qt6-webengine/files/patch-src_core_api_configure.cmake
@@ -1,14 +1,14 @@
---- src/core/api/configure.cmake.orig 2023-11-20 16:08:07 UTC
+--- src/core/api/configure.cmake.orig 2023-12-12 22:08:45 UTC
+++ src/core/api/configure.cmake
@@ -10,6 +10,7 @@ if(NOT QT_CONFIGURE_RUNNING)
- if(PkgConfig_FOUND)
+ if(PkgConfig_FOUND AND QT_FEATURE_pkg_config)
pkg_check_modules(ALSA alsa IMPORTED_TARGET)
pkg_check_modules(PULSEAUDIO libpulse>=0.9.10 libpulse-mainloop-glib)
+ pkg_check_modules(SNDIO libsndio)
pkg_check_modules(XDAMAGE xdamage)
pkg_check_modules(POPPLER_CPP poppler-cpp IMPORTED_TARGET)
pkg_check_modules(GBM gbm)
-@@ -84,6 +85,11 @@ qt_feature("webengine-printing-and-pdf" PRIVATE
+@@ -90,6 +91,11 @@ qt_feature("webengine-printing-and-pdf" PRIVATE
CONDITION TARGET Qt::PrintSupport AND QT_FEATURE_printer AND
(CUPS_FOUND OR WIN32)
)
@@ -20,7 +20,7 @@
qt_feature("webengine-pepper-plugins" PRIVATE
LABEL "Pepper Plugins"
PURPOSE "Enables use of Pepper plugins."
-@@ -164,7 +170,7 @@ qt_feature("webengine-vaapi" PRIVATE
+@@ -170,7 +176,7 @@ qt_feature("webengine-vaapi" PRIVATE
PURPOSE "Enables support for VA-API hardware acceleration"
AUTODETECT GBM_FOUND AND LIBVA_FOUND AND QT_FEATURE_vulkan
# hardware accelerated encoding requires bundled libvpx
@@ -29,7 +29,7 @@
)
# internal testing feature
qt_feature("webengine-system-poppler" PRIVATE
-@@ -199,15 +205,19 @@ qt_configure_add_summary_entry(
+@@ -205,15 +211,19 @@ qt_configure_add_summary_entry(
)
qt_configure_add_summary_entry(
ARGS "webengine-vaapi"
diff --git a/www/qt6-webengine/files/patch-src_pdf_CMakeLists.txt b/www/qt6-webengine/files/patch-src_pdf_CMakeLists.txt
index 02f80b1dfddd..c5fd9473264d 100644
--- a/www/qt6-webengine/files/patch-src_pdf_CMakeLists.txt
+++ b/www/qt6-webengine/files/patch-src_pdf_CMakeLists.txt
@@ -1,16 +1,16 @@
---- src/pdf/CMakeLists.txt.orig 2023-10-03 19:49:54 UTC
+--- src/pdf/CMakeLists.txt.orig 2023-12-12 22:08:45 UTC
+++ src/pdf/CMakeLists.txt
@@ -71,7 +71,7 @@ add_dependencies(docs generate_pdf_attributions)
# TOOLCHAIN SETUP
##
--if(LINUX OR MINGW)
-+if(LINUX OR MINGW OR FREEBSD)
+-if(LINUX OR MINGW OR ANDROID)
++if(LINUX OR MINGW OR ANDROID OR FREEBSD)
setup_toolchains()
endif()
-@@ -134,7 +134,7 @@ foreach(arch ${archs})
- strip_absolute_paths_from_debug_symbols=false
+@@ -138,7 +138,7 @@ foreach(arch ${archs})
+ v8_enable_webassembly=false
)
- if(LINUX OR ANDROID)
diff --git a/www/qt6-webengine/pkg-plist b/www/qt6-webengine/pkg-plist
index 3a88087a9a7c..218e4c51ff94 100644
--- a/www/qt6-webengine/pkg-plist
+++ b/www/qt6-webengine/pkg-plist
@@ -2,6 +2,7 @@
%%QT_INCDIR%%/QtWebEngineCore/%%FULLVER%%/QtWebEngineCore/private/qtwebenginecoreglobal_p.h
%%QT_INCDIR%%/QtWebEngineCore/%%FULLVER%%/QtWebEngineCore/private/qwebenginecontextmenurequest_p.h
%%QT_INCDIR%%/QtWebEngineCore/%%FULLVER%%/QtWebEngineCore/private/qwebenginecookiestore_p.h
+%%QT_INCDIR%%/QtWebEngineCore/%%FULLVER%%/QtWebEngineCore/private/qwebenginedesktopmediarequest_p.h
%%QT_INCDIR%%/QtWebEngineCore/%%FULLVER%%/QtWebEngineCore/private/qwebenginedownloadrequest_p.h
%%QT_INCDIR%%/QtWebEngineCore/%%FULLVER%%/QtWebEngineCore/private/qwebengineglobalsettings_p.h
%%QT_INCDIR%%/QtWebEngineCore/%%FULLVER%%/QtWebEngineCore/private/qwebenginehistory_p.h
@@ -11,11 +12,13 @@
%%QT_INCDIR%%/QtWebEngineCore/%%FULLVER%%/QtWebEngineCore/private/qwebengineprofile_p.h
%%QT_INCDIR%%/QtWebEngineCore/%%FULLVER%%/QtWebEngineCore/private/qwebenginescriptcollection_p.h
%%QT_INCDIR%%/QtWebEngineCore/%%FULLVER%%/QtWebEngineCore/private/qwebengineurlrequestinfo_p.h
+%%QT_INCDIR%%/QtWebEngineCore/%%FULLVER%%/QtWebEngineCore/private/qwebenginewebauthuxrequest_p.h
%%QT_INCDIR%%/QtWebEngineCore/QWebEngineCertificateError
%%QT_INCDIR%%/QtWebEngineCore/QWebEngineClientCertificateSelection
%%QT_INCDIR%%/QtWebEngineCore/QWebEngineClientCertificateStore
%%QT_INCDIR%%/QtWebEngineCore/QWebEngineContextMenuRequest
%%QT_INCDIR%%/QtWebEngineCore/QWebEngineCookieStore
+%%QT_INCDIR%%/QtWebEngineCore/QWebEngineDesktopMediaRequest
%%QT_INCDIR%%/QtWebEngineCore/QWebEngineDownloadRequest
%%QT_INCDIR%%/QtWebEngineCore/QWebEngineFileSystemAccessRequest
%%QT_INCDIR%%/QtWebEngineCore/QWebEngineFindTextResult
@@ -41,6 +44,8 @@
%%QT_INCDIR%%/QtWebEngineCore/QWebEngineUrlRequestJob
%%QT_INCDIR%%/QtWebEngineCore/QWebEngineUrlScheme
%%QT_INCDIR%%/QtWebEngineCore/QWebEngineUrlSchemeHandler
+%%QT_INCDIR%%/QtWebEngineCore/QWebEngineWebAuthPinRequest
+%%QT_INCDIR%%/QtWebEngineCore/QWebEngineWebAuthUxRequest
%%QT_INCDIR%%/QtWebEngineCore/QtWebEngineCore
%%QT_INCDIR%%/QtWebEngineCore/QtWebEngineCoreDepends
%%QT_INCDIR%%/QtWebEngineCore/QtWebEngineCoreVersion
@@ -52,6 +57,7 @@
%%QT_INCDIR%%/QtWebEngineCore/qwebengineclientcertificatestore.h
%%QT_INCDIR%%/QtWebEngineCore/qwebenginecontextmenurequest.h
%%QT_INCDIR%%/QtWebEngineCore/qwebenginecookiestore.h
+%%QT_INCDIR%%/QtWebEngineCore/qwebenginedesktopmediarequest.h
%%QT_INCDIR%%/QtWebEngineCore/qwebenginedownloadrequest.h
%%QT_INCDIR%%/QtWebEngineCore/qwebenginefilesystemaccessrequest.h
%%QT_INCDIR%%/QtWebEngineCore/qwebenginefindtextresult.h
@@ -75,6 +81,7 @@
%%QT_INCDIR%%/QtWebEngineCore/qwebengineurlrequestjob.h
%%QT_INCDIR%%/QtWebEngineCore/qwebengineurlscheme.h
%%QT_INCDIR%%/QtWebEngineCore/qwebengineurlschemehandler.h
+%%QT_INCDIR%%/QtWebEngineCore/qwebenginewebauthuxrequest.h
%%QT_INCDIR%%/QtWebEngineQuick/%%FULLVER%%/QtWebEngineQuick/private/qquickwebengineaction_p.h
%%QT_INCDIR%%/QtWebEngineQuick/%%FULLVER%%/QtWebEngineQuick/private/qquickwebengineaction_p_p.h
%%QT_INCDIR%%/QtWebEngineQuick/%%FULLVER%%/QtWebEngineQuick/private/qquickwebengineclientcertificateselection_p.h
@@ -243,11 +250,13 @@ libdata/pkgconfig/Qt6WebEngineQuickDelegatesQml.pc
libdata/pkgconfig/Qt6WebEngineWidgets.pc
%%QT_TOOLDIR%%/QtWebEngineProcess
%%QT_TOOLDIR%%/qwebengine_convert_dict
+%%DRIVER%%%%QT_TOOLDIR%%/webenginedriver
%%QT_DATADIR%%/modules/WebEngineCore.json
%%QT_DATADIR%%/modules/WebEngineQuick.json
%%QT_DATADIR%%/modules/WebEngineQuickDelegatesQml.json
%%QT_DATADIR%%/modules/WebEngineWidgets.json
%%QT_DATADIR%%/resources/icudtl.dat
+@dir %%QT_DATADIR%%/resources/locales
%%QT_DATADIR%%/resources/qtwebengine_devtools_resources.pak
%%QT_DATADIR%%/resources/qtwebengine_resources.pak
%%QT_DATADIR%%/resources/qtwebengine_resources_100p.pak
diff --git a/www/qt6-websockets/distinfo b/www/qt6-websockets/distinfo
index 9cfc02d380e7..4f6c0c4014f0 100644
--- a/www/qt6-websockets/distinfo
+++ b/www/qt6-websockets/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1711664653
-SHA256 (KDE/Qt/6.6.3/qtwebsockets-everywhere-src-6.6.3.tar.xz) = 16f481765794dd66e4538a1074fbc9a68e2091eda5f99868cc27d9b1a931a036
-SIZE (KDE/Qt/6.6.3/qtwebsockets-everywhere-src-6.6.3.tar.xz) = 455068
+TIMESTAMP = 1712115502
+SHA256 (KDE/Qt/6.7.0/qtwebsockets-everywhere-src-6.7.0.tar.xz) = 5ffc77da6b36cdf18e04c975a0fbf243968806a93a6291bcd2e9cd0b26139736
+SIZE (KDE/Qt/6.7.0/qtwebsockets-everywhere-src-6.7.0.tar.xz) = 454868
diff --git a/www/qt6-webview/distinfo b/www/qt6-webview/distinfo
index 96032685854f..bc7daf5619a4 100644
--- a/www/qt6-webview/distinfo
+++ b/www/qt6-webview/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1711664655
-SHA256 (KDE/Qt/6.6.3/qtwebview-everywhere-src-6.6.3.tar.xz) = 206463df560746b9ddfee3d5aae4a50831b5660510f862998e7b319ee2ef4c02
-SIZE (KDE/Qt/6.6.3/qtwebview-everywhere-src-6.6.3.tar.xz) = 138776
+TIMESTAMP = 1712115504
+SHA256 (KDE/Qt/6.7.0/qtwebview-everywhere-src-6.7.0.tar.xz) = 3619e07138cc1fe2fa091e25ba6548f5f11f26f1ebf68a56f193aed336ea5cf9
+SIZE (KDE/Qt/6.7.0/qtwebview-everywhere-src-6.7.0.tar.xz) = 138160
diff --git a/www/rearx/Makefile b/www/rearx/Makefile
index d7872e7d4c1a..900076dea86f 100644
--- a/www/rearx/Makefile
+++ b/www/rearx/Makefile
@@ -1,7 +1,7 @@
PORTNAME= rearx
DISTVERSIONPREFIX= v
DISTVERSION= 0.1.4
-PORTREVISION= 29
+PORTREVISION= 30
CATEGORIES= www
MAINTAINER= yuri@FreeBSD.org
diff --git a/www/reddsaver/Makefile b/www/reddsaver/Makefile
index 1be10dc73a5e..c700a4cf9fab 100644
--- a/www/reddsaver/Makefile
+++ b/www/reddsaver/Makefile
@@ -1,7 +1,7 @@
PORTNAME= reddsaver
DISTVERSIONPREFIX= v
DISTVERSION= 0.4.0
-PORTREVISION= 12
+PORTREVISION= 13
CATEGORIES= www
MAINTAINER= yuri@FreeBSD.org
diff --git a/www/remark42/Makefile b/www/remark42/Makefile
index edc6033db529..a515825e1caf 100644
--- a/www/remark42/Makefile
+++ b/www/remark42/Makefile
@@ -1,7 +1,6 @@
PORTNAME= remark42
DISTVERSIONPREFIX= v
-DISTVERSION= 1.12.1
-PORTREVISION= 6
+DISTVERSION= 1.13.0
CATEGORIES= www
MASTER_SITES= LOCAL/delphij:npmcache
DISTFILES= ${PORTNAME}-npm-cache-${DISTVERSION}${EXTRACT_SUFX}:npmcache
@@ -33,70 +32,70 @@ PLIST_FILES= libexec/${PORTNAME}
GH_TUPLE= \
Depado:bfchroma:v2.0.0:depado_bfchroma_v2/vendor/github.com/Depado/bfchroma/v2 \
- PuerkitoBio:goquery:v1.8.1:puerkitobio_goquery/vendor/github.com/PuerkitoBio/goquery \
+ PuerkitoBio:goquery:v1.9.1:puerkitobio_goquery/vendor/github.com/PuerkitoBio/goquery \
ajg:form:v1.5.1:ajg_form/vendor/github.com/ajg/form \
- alecthomas:chroma:v2.8.0:alecthomas_chroma_v2/vendor/github.com/alecthomas/chroma/v2 \
+ alecthomas:chroma:v2.13.0:alecthomas_chroma_v2/vendor/github.com/alecthomas/chroma/v2 \
andybalholm:cascadia:v1.3.2:andybalholm_cascadia/vendor/github.com/andybalholm/cascadia \
aymerick:douceur:v0.2.0:aymerick_douceur/vendor/github.com/aymerick/douceur \
cespare:xxhash:v2.2.0:cespare_xxhash_v2/vendor/github.com/cespare/xxhash/v2 \
davecgh:go-spew:v1.1.1:davecgh_go_spew/vendor/github.com/davecgh/go-spew \
- dghubble:oauth1:v0.7.2:dghubble_oauth1/vendor/github.com/dghubble/oauth1 \
+ dghubble:oauth1:v0.7.3:dghubble_oauth1/vendor/github.com/dghubble/oauth1 \
dgryski:go-rendezvous:9f7001d12a5f:dgryski_go_rendezvous/vendor/github.com/dgryski/go-rendezvous \
didip:tollbooth:v7.0.1:didip_tollbooth_v7/vendor/github.com/didip/tollbooth/v7 \
didip:tollbooth_chi:d662a7f6928f:didip_tollbooth_chi/vendor/github.com/didip/tollbooth_chi \
- dlclark:regexp2:v1.10.0:dlclark_regexp2/vendor/github.com/dlclark/regexp2 \
- etcd-io:bbolt:v1.3.7:etcd_io_bbolt/vendor/go.etcd.io/bbolt \
- go-chi:chi:v5.0.10:go_chi_chi_v5/vendor/github.com/go-chi/chi/v5 \
+ dlclark:regexp2:v1.11.0:dlclark_regexp2/vendor/github.com/dlclark/regexp2 \
+ etcd-io:bbolt:v1.3.9:etcd_io_bbolt/vendor/go.etcd.io/bbolt \
+ go-chi:chi:v5.0.12:go_chi_chi_v5/vendor/github.com/go-chi/chi/v5 \
go-chi:cors:v1.2.1:go_chi_cors/vendor/github.com/go-chi/cors \
go-chi:render:v1.0.3:go_chi_render/vendor/github.com/go-chi/render \
go-oauth2:oauth2:v4.5.2:go_oauth2_oauth2_v4/vendor/github.com/go-oauth2/oauth2/v4 \
- go-pkgz:auth:v1.22.0:go_pkgz_auth/vendor/github.com/go-pkgz/auth \
- go-pkgz:email:v0.4.1:go_pkgz_email/vendor/github.com/go-pkgz/email \
+ go-pkgz:auth:v1.23.0:go_pkgz_auth/vendor/github.com/go-pkgz/auth \
+ go-pkgz:email:v0.5.0:go_pkgz_email/vendor/github.com/go-pkgz/email \
go-pkgz:expirable-cache:v1.0.0:go_pkgz_expirable_cache/vendor/github.com/go-pkgz/expirable-cache \
go-pkgz:jrpc:v0.3.0:go_pkgz_jrpc/vendor/github.com/go-pkgz/jrpc \
- go-pkgz:lcw:v1.0.2:go_pkgz_lcw/vendor/github.com/go-pkgz/lcw \
- go-pkgz:lgr:v0.11.0:go_pkgz_lgr/vendor/github.com/go-pkgz/lgr \
- go-pkgz:notify:v0.2.0:go_pkgz_notify/vendor/github.com/go-pkgz/notify \
+ go-pkgz:lcw:v2.0.0:go_pkgz_lcw_v2/vendor/github.com/go-pkgz/lcw \
+ go-pkgz:lgr:v0.11.1:go_pkgz_lgr/vendor/github.com/go-pkgz/lgr \
+ go-pkgz:notify:v1.1.0:go_pkgz_notify/vendor/github.com/go-pkgz/notify \
go-pkgz:repeater:v1.1.3:go_pkgz_repeater/vendor/github.com/go-pkgz/repeater \
- go-pkgz:rest:v1.17.0:go_pkgz_rest/vendor/github.com/go-pkgz/rest \
+ go-pkgz:rest:v1.19.0:go_pkgz_rest/vendor/github.com/go-pkgz/rest \
go-pkgz:syncs:v1.3.2:go_pkgz_syncs/vendor/github.com/go-pkgz/syncs \
- go-redis:redis:v8.11.5:go_redis_redis_v8/vendor/github.com/go-redis/redis/v8 \
go-yaml:yaml:v3.0.1:go_yaml_yaml/vendor/gopkg.in/yaml.v3 \
golang-jwt:jwt:v3.2.2:golang_jwt_jwt/vendor/github.com/golang-jwt/jwt \
- golang:appengine:v1.6.7:golang_appengine/vendor/google.golang.org/appengine \
- golang:crypto:v0.12.0:golang_crypto/vendor/golang.org/x/crypto \
- golang:image:v0.11.0:golang_image/vendor/golang.org/x/image \
- golang:net:v0.14.0:golang_net/vendor/golang.org/x/net \
- golang:oauth2:v0.11.0:golang_oauth2/vendor/golang.org/x/oauth2 \
- golang:protobuf:v1.5.3:golang_protobuf/vendor/github.com/golang/protobuf \
+ golang:appengine:v1.6.8:golang_appengine/vendor/google.golang.org/appengine \
+ golang:crypto:v0.22.0:golang_crypto/vendor/golang.org/x/crypto \
+ golang:image:v0.15.0:golang_image/vendor/golang.org/x/image \
+ golang:net:v0.24.0:golang_net/vendor/golang.org/x/net \
+ golang:oauth2:v0.18.0:golang_oauth2/vendor/golang.org/x/oauth2 \
+ golang:protobuf:v1.5.4:golang_protobuf/vendor/github.com/golang/protobuf \
golang:snappy:v0.0.4:golang_snappy/vendor/github.com/golang/snappy \
- golang:sync:v0.3.0:golang_sync/vendor/golang.org/x/sync \
- golang:sys:v0.11.0:golang_sys/vendor/golang.org/x/sys \
- golang:text:v0.12.0:golang_text/vendor/golang.org/x/text \
- google:uuid:v1.3.0:google_uuid/vendor/github.com/google/uuid \
- googleapis:google-cloud-go:compute/v1.23.0:googleapis_google_cloud_go_compute/vendor/cloud.google.com/go \
+ golang:sync:v0.6.0:golang_sync/vendor/golang.org/x/sync \
+ golang:sys:v0.19.0:golang_sys/vendor/golang.org/x/sys \
+ golang:text:v0.14.0:golang_text/vendor/golang.org/x/text \
+ google:uuid:v1.6.0:google_uuid/vendor/github.com/google/uuid \
+ googleapis:google-cloud-go:compute/v1.25.1:googleapis_google_cloud_go_compute/vendor/cloud.google.com/go \
googleapis:google-cloud-go:compute/metadata/v0.2.3:googleapis_google_cloud_go/vendor/cloud.google.com/go/compute/metadata \
- gorilla:css:v1.0.0:gorilla_css/vendor/github.com/gorilla/css \
- gorilla:feeds:v1.1.1:gorilla_feeds/vendor/github.com/gorilla/feeds \
- gorilla:websocket:v1.5.0:gorilla_websocket/vendor/github.com/gorilla/websocket \
+ gorilla:css:v1.0.1:gorilla_css/vendor/github.com/gorilla/css \
+ gorilla:feeds:v1.1.2:gorilla_feeds/vendor/github.com/gorilla/feeds \
+ gorilla:websocket:v1.5.1:gorilla_websocket/vendor/github.com/gorilla/websocket \
hashicorp:errwrap:v1.1.0:hashicorp_errwrap/vendor/github.com/hashicorp/errwrap \
hashicorp:go-multierror:v1.1.1:hashicorp_go_multierror/vendor/github.com/hashicorp/go-multierror \
- hashicorp:golang-lru:v0.5.4:hashicorp_golang_lru/vendor/github.com/hashicorp/golang-lru \
+ hashicorp:golang-lru:v2.0.7:hashicorp_golang_lru_v2/vendor/github.com/hashicorp/golang-lru/v2 \
jessevdk:go-flags:v1.5.0:jessevdk_go_flags/vendor/github.com/jessevdk/go-flags \
- klauspost:compress:v1.16.7:klauspost_compress/vendor/github.com/klauspost/compress \
+ klauspost:compress:v1.17.7:klauspost_compress/vendor/github.com/klauspost/compress \
kyokomi:emoji:v2.2.12:kyokomi_emoji_v2/vendor/github.com/kyokomi/emoji/v2 \
- microcosm-cc:bluemonday:v1.0.25:microcosm_cc_bluemonday/vendor/github.com/microcosm-cc/bluemonday \
- mongodb:mongo-go-driver:v1.12.1:mongodb_mongo_go_driver/vendor/go.mongodb.org/mongo-driver \
+ microcosm-cc:bluemonday:v1.0.26:microcosm_cc_bluemonday/vendor/github.com/microcosm-cc/bluemonday \
+ mongodb:mongo-go-driver:v1.14.0:mongodb_mongo_go_driver/vendor/go.mongodb.org/mongo-driver \
montanaflynn:stats:v0.7.1:montanaflynn_stats/vendor/github.com/montanaflynn/stats \
- nullrocks:identicon:7875f45b0022:nullrocks_identicon/vendor/github.com/nullrocks/identicon \
pmezard:go-difflib:v1.0.0:pmezard_go_difflib/vendor/github.com/pmezard/go-difflib \
- protocolbuffers:protobuf-go:v1.31.0:protocolbuffers_protobuf_go/vendor/google.golang.org/protobuf \
+ protocolbuffers:protobuf-go:v1.33.0:protocolbuffers_protobuf_go/vendor/google.golang.org/protobuf \
+ redis:go-redis:v9.4.0:redis_go_redis_v9/vendor/github.com/redis/go-redis/v9 \
+ rrivera:identicon:d5ba35832c0d:rrivera_identicon/vendor/github.com/rrivera/identicon \
rs:xid:v1.5.0:rs_xid/vendor/github.com/rs/xid \
russross:blackfriday:v2.1.0:russross_blackfriday_v2/vendor/github.com/russross/blackfriday/v2 \
skip2:go-qrcode:da1b6568686e:skip2_go_qrcode/vendor/github.com/skip2/go-qrcode \
- slack-go:slack:v0.12.2:slack_go_slack/vendor/github.com/slack-go/slack \
- stretchr:testify:v1.8.4:stretchr_testify/vendor/github.com/stretchr/testify \
- uber-go:goleak:v1.2.1:uber_go_goleak/vendor/go.uber.org/goleak \
+ slack-go:slack:v0.12.4:slack_go_slack/vendor/github.com/slack-go/slack \
+ stretchr:testify:v1.9.0:stretchr_testify/vendor/github.com/stretchr/testify \
+ uber-go:goleak:v1.3.0:uber_go_goleak/vendor/go.uber.org/goleak \
xdg-go:pbkdf2:v1.0.0:xdg_go_pbkdf2/vendor/github.com/xdg-go/pbkdf2 \
xdg-go:scram:v1.1.2:xdg_go_scram/vendor/github.com/xdg-go/scram \
xdg-go:stringprep:v1.0.4:xdg_go_stringprep/vendor/github.com/xdg-go/stringprep \
@@ -127,6 +126,7 @@ make-npm-cache: extract
pre-build:
cd ${WRKSRC}/frontend/apps/${PORTNAME} && ${SETENV} HOME=${WRKDIR} npm install --force --legacy-peer-deps
cd ${WRKSRC}/frontend/apps/${PORTNAME} && ${SETENV} HOME=${WRKDIR} npm run build
+ cd ${WRKSRC}/frontend/apps/${PORTNAME} && ${SETENV} HOME=${WRKDIR} npm test
${RM} -r ${WRKSRC}/backend/app/cmd/web/
${MV} ${WRKSRC}/frontend/apps/remark42/public ${WRKSRC}/backend/app/cmd/web
${FIND} ${WRKSRC}/backend/app/cmd/web -type f \( -name '*.html' -or -name '*.js' -or -name '*.mjs' \) \
diff --git a/www/remark42/distinfo b/www/remark42/distinfo
index c430d8745ce7..ac1002f53ef2 100644
--- a/www/remark42/distinfo
+++ b/www/remark42/distinfo
@@ -1,16 +1,16 @@
-TIMESTAMP = 1693379504
-SHA256 (remark42-npm-cache-1.12.1.tar.xz) = 2ab686cebbd31523e5592f457c8430ed7fd741250ff35063ed875820827faa9c
-SIZE (remark42-npm-cache-1.12.1.tar.xz) = 113414220
-SHA256 (umputun-remark42-v1.12.1_GH0.tar.gz) = 5c1f74eb44e3aeba5c7bff68ff3bb6eec5a64f82a1be75ee67e074fe4963de2e
-SIZE (umputun-remark42-v1.12.1_GH0.tar.gz) = 6357410
+TIMESTAMP = 1715756871
+SHA256 (remark42-npm-cache-1.13.0.tar.xz) = ae7308c58c097bdcdb812b3031380f41d63de51f8f7a6942b1e076106e817ad0
+SIZE (remark42-npm-cache-1.13.0.tar.xz) = 124074780
+SHA256 (umputun-remark42-v1.13.0_GH0.tar.gz) = 89e3cb35a39295dca55961cc84f12f348304107cfe1f4cbd75fa2e93aaed41cb
+SIZE (umputun-remark42-v1.13.0_GH0.tar.gz) = 6500141
SHA256 (Depado-bfchroma-v2.0.0_GH0.tar.gz) = d999d4cf56554c15fe8d1651e4b5e87dbd5b399a0d4c7af7bc7b682e93da4f18
SIZE (Depado-bfchroma-v2.0.0_GH0.tar.gz) = 7451
-SHA256 (PuerkitoBio-goquery-v1.8.1_GH0.tar.gz) = d6e72ac1c5bb92e1106dab9a03bb29cdabd7b1ef8b915e7a6fbcfedb8e2b9388
-SIZE (PuerkitoBio-goquery-v1.8.1_GH0.tar.gz) = 106563
+SHA256 (PuerkitoBio-goquery-v1.9.1_GH0.tar.gz) = ad303bf30070c34fa0f05d2701b7bd024642e0183708a96ed0d2b837b21f4d1a
+SIZE (PuerkitoBio-goquery-v1.9.1_GH0.tar.gz) = 107417
SHA256 (ajg-form-v1.5.1_GH0.tar.gz) = 085e8e98cf63d39241c6ba815b9a71d38808c3fadb6b522feb7fab6d123c44c7
SIZE (ajg-form-v1.5.1_GH0.tar.gz) = 14946
-SHA256 (alecthomas-chroma-v2.8.0_GH0.tar.gz) = d6ddb56fd3cf0d7ae2c592f834aced1be4494f21338a79636743c25305a65a00
-SIZE (alecthomas-chroma-v2.8.0_GH0.tar.gz) = 971055
+SHA256 (alecthomas-chroma-v2.13.0_GH0.tar.gz) = f3538d9db5df0d0325f3eaab7e3d465a6ec9ad6067051863ac52241f070824a0
+SIZE (alecthomas-chroma-v2.13.0_GH0.tar.gz) = 1032348
SHA256 (andybalholm-cascadia-v1.3.2_GH0.tar.gz) = f30ebb75a9f43a30478c870dd6e372ac7ef64549f621eceb3b13fd91bfde80cb
SIZE (andybalholm-cascadia-v1.3.2_GH0.tar.gz) = 35370
SHA256 (aymerick-douceur-v0.2.0_GH0.tar.gz) = ceed015cddc99b600ccbbd6aa0ebe39063554049f70153887d3df7c21fefedbb
@@ -19,120 +19,120 @@ SHA256 (cespare-xxhash-v2.2.0_GH0.tar.gz) = b8c684b9e5e136510913727e6a845b28f817
SIZE (cespare-xxhash-v2.2.0_GH0.tar.gz) = 12334
SHA256 (davecgh-go-spew-v1.1.1_GH0.tar.gz) = 7d82b9bb7291adbe7498fe946920ab3e7fc9e6cbfc3b2294693fad00bf0dd17e
SIZE (davecgh-go-spew-v1.1.1_GH0.tar.gz) = 42152
-SHA256 (dghubble-oauth1-v0.7.2_GH0.tar.gz) = e89bc3df198e368667e28c15e93a6f5dee3e04fde790ced3c49e98b4c0349b24
-SIZE (dghubble-oauth1-v0.7.2_GH0.tar.gz) = 22692
+SHA256 (dghubble-oauth1-v0.7.3_GH0.tar.gz) = 98480ffc97cf5ca3a80875263ceee0afdacf279b7148e91aec96a52a751efd99
+SIZE (dghubble-oauth1-v0.7.3_GH0.tar.gz) = 22410
SHA256 (dgryski-go-rendezvous-9f7001d12a5f_GH0.tar.gz) = 29584550745fd4b8fce2e2f3def7b9d9ffe2b86cf9b6596b53a660c9bbfe27b6
SIZE (dgryski-go-rendezvous-9f7001d12a5f_GH0.tar.gz) = 1699
SHA256 (didip-tollbooth-v7.0.1_GH0.tar.gz) = fc8258f324a0232ee6fbbc327b3d5ead417349ef4c179fd04a9281fa9363fb99
SIZE (didip-tollbooth-v7.0.1_GH0.tar.gz) = 26431
SHA256 (didip-tollbooth_chi-d662a7f6928f_GH0.tar.gz) = a64242f72a7c7274ce3ba6416fe3028c9c9c13edbfd633a0c2748f8641cbf60a
SIZE (didip-tollbooth_chi-d662a7f6928f_GH0.tar.gz) = 1830
-SHA256 (dlclark-regexp2-v1.10.0_GH0.tar.gz) = 3e22a8bc42531c263954350a7ad4620319a77122c991c758883e43339cd5ae48
-SIZE (dlclark-regexp2-v1.10.0_GH0.tar.gz) = 212212
-SHA256 (etcd-io-bbolt-v1.3.7_GH0.tar.gz) = a99c0371bd041a3ca45bd314428976f3f13408ea53dbf2f8aa74b0288889acb2
-SIZE (etcd-io-bbolt-v1.3.7_GH0.tar.gz) = 116699
-SHA256 (go-chi-chi-v5.0.10_GH0.tar.gz) = 60da5049ef0fbe21611b49602afacb8bd0dbf82699e18c02954b8215701fbdd9
-SIZE (go-chi-chi-v5.0.10_GH0.tar.gz) = 83652
+SHA256 (dlclark-regexp2-v1.11.0_GH0.tar.gz) = c380209bd67b67859014f9bfd155aec4bfc4beb65f4a6aec37683b80186b18f7
+SIZE (dlclark-regexp2-v1.11.0_GH0.tar.gz) = 212532
+SHA256 (etcd-io-bbolt-v1.3.9_GH0.tar.gz) = c48eee1b2d2395ac0958e38fa6f78c6e50e1273bdaf2fb2edf2c106d7aece5ff
+SIZE (etcd-io-bbolt-v1.3.9_GH0.tar.gz) = 124908
+SHA256 (go-chi-chi-v5.0.12_GH0.tar.gz) = 289c6c9b6edee2da39d23c4bb806b2c2ab320d42985a46f9f5d9c7a4909a7d56
+SIZE (go-chi-chi-v5.0.12_GH0.tar.gz) = 85024
SHA256 (go-chi-cors-v1.2.1_GH0.tar.gz) = d3fa42948b4b365db19c9a6639090c6869b968fa8c5ecb9635dce1a9bf4cf8d8
SIZE (go-chi-cors-v1.2.1_GH0.tar.gz) = 8827
SHA256 (go-chi-render-v1.0.3_GH0.tar.gz) = 4458232c0a5b600bd64d2b48bc90a8469fcd520e070bd390bbe5e43431999495
SIZE (go-chi-render-v1.0.3_GH0.tar.gz) = 6165
SHA256 (go-oauth2-oauth2-v4.5.2_GH0.tar.gz) = 199234a61701d288d379a37d12af32a9bfb9470a8f5f6c714b258405177f06de
SIZE (go-oauth2-oauth2-v4.5.2_GH0.tar.gz) = 579318
-SHA256 (go-pkgz-auth-v1.22.0_GH0.tar.gz) = 4da05ea6c19cb3d674a30b5638ecadbb02caae192f059acf0262a4bd587e15b1
-SIZE (go-pkgz-auth-v1.22.0_GH0.tar.gz) = 155767
-SHA256 (go-pkgz-email-v0.4.1_GH0.tar.gz) = e169a0e8d91030f3cce123c4a65719f51d9ac0b45e35152b3569816cbbc171fc
-SIZE (go-pkgz-email-v0.4.1_GH0.tar.gz) = 100857
+SHA256 (go-pkgz-auth-v1.23.0_GH0.tar.gz) = 14ac86a24114c36f3a7f650333a8548616b9603696d41681c9b724b15ef7888c
+SIZE (go-pkgz-auth-v1.23.0_GH0.tar.gz) = 155182
+SHA256 (go-pkgz-email-v0.5.0_GH0.tar.gz) = 916e50fa63c87226b6387e849f13bf63e67946ab6c704085798d9fbdcf565b73
+SIZE (go-pkgz-email-v0.5.0_GH0.tar.gz) = 100993
SHA256 (go-pkgz-expirable-cache-v1.0.0_GH0.tar.gz) = 631e621c87bc8900a2181fe1b4285a5cd852a4e91145031327cb416b3081547e
SIZE (go-pkgz-expirable-cache-v1.0.0_GH0.tar.gz) = 8212
SHA256 (go-pkgz-jrpc-v0.3.0_GH0.tar.gz) = 158ec6a2c711cee4608f5c55ecc0692c3e38b0c6c4f2af01aea008a64822d988
SIZE (go-pkgz-jrpc-v0.3.0_GH0.tar.gz) = 15188
-SHA256 (go-pkgz-lcw-v1.0.2_GH0.tar.gz) = c47096e773a7689be2bbe4c64a888187bafe601991cfcc194b48dfcddee52ec1
-SIZE (go-pkgz-lcw-v1.0.2_GH0.tar.gz) = 28973
-SHA256 (go-pkgz-lgr-v0.11.0_GH0.tar.gz) = f69d505f01b8b2866aaa4575cda30b0296274c4d14794c8bc612967294758d82
-SIZE (go-pkgz-lgr-v0.11.0_GH0.tar.gz) = 15052
-SHA256 (go-pkgz-notify-v0.2.0_GH0.tar.gz) = 558eecf2a17c45b1c66fbf88f7647c17f06450867e92f3dffeb55c59700f7077
-SIZE (go-pkgz-notify-v0.2.0_GH0.tar.gz) = 18854
+SHA256 (go-pkgz-lcw-v2.0.0_GH0.tar.gz) = aa974c65f1dfdd69040238d0f6e4438d63b20083cc899c444f0083aee25f42e3
+SIZE (go-pkgz-lcw-v2.0.0_GH0.tar.gz) = 41497
+SHA256 (go-pkgz-lgr-v0.11.1_GH0.tar.gz) = 20af8601ac0bb4d75d45a67897e92f340e2a401548a2ff677004a8027871ce06
+SIZE (go-pkgz-lgr-v0.11.1_GH0.tar.gz) = 15100
+SHA256 (go-pkgz-notify-v1.1.0_GH0.tar.gz) = 008aa38116a21c64a17f740a6fd978ad583d827797a5097b83a7dfb4a9ce5930
+SIZE (go-pkgz-notify-v1.1.0_GH0.tar.gz) = 18412
SHA256 (go-pkgz-repeater-v1.1.3_GH0.tar.gz) = d3c6bdece4cd305e33efc64369aaab9ebf0452dffb7bd841b9e5a8e861607f43
SIZE (go-pkgz-repeater-v1.1.3_GH0.tar.gz) = 6059
-SHA256 (go-pkgz-rest-v1.17.0_GH0.tar.gz) = d53111732ede3abd0d0e02d274a057495af85f3e4cca547e69b1b850687397fe
-SIZE (go-pkgz-rest-v1.17.0_GH0.tar.gz) = 30508
+SHA256 (go-pkgz-rest-v1.19.0_GH0.tar.gz) = 867491d3b07c03455c4534ed43c48d2e4c70ecd449e73d1094349b7e3d637bf2
+SIZE (go-pkgz-rest-v1.19.0_GH0.tar.gz) = 31725
SHA256 (go-pkgz-syncs-v1.3.2_GH0.tar.gz) = 78c90265f7617a9eda774c39deb5f17cd87dfdf161402b3e4dc6e5dac48c0c68
SIZE (go-pkgz-syncs-v1.3.2_GH0.tar.gz) = 9087
-SHA256 (go-redis-redis-v8.11.5_GH0.tar.gz) = 49f307ad85960c25d98bea3b2d155c893e43f41831c1bb4891e1eb867ead1245
-SIZE (go-redis-redis-v8.11.5_GH0.tar.gz) = 168188
SHA256 (go-yaml-yaml-v3.0.1_GH0.tar.gz) = cf05411540d3e6ef8f1fd88434b34f94cedaceb540329031d80e23b74540c4e5
SIZE (go-yaml-yaml-v3.0.1_GH0.tar.gz) = 91173
SHA256 (golang-jwt-jwt-v3.2.2_GH0.tar.gz) = 4cd18a4bb5d949244f137fed0884f93695ff268cb9efaba71ddcf4c50b17efe0
SIZE (golang-jwt-jwt-v3.2.2_GH0.tar.gz) = 39887
-SHA256 (golang-appengine-v1.6.7_GH0.tar.gz) = c623d81235f7c9699e299b328191d813337dd57dcc800d7afdb5130e8c321a8f
-SIZE (golang-appengine-v1.6.7_GH0.tar.gz) = 333007
-SHA256 (golang-crypto-v0.12.0_GH0.tar.gz) = f2e422baedd3a599471bfe6adb8e4b337a80bb8a9665d283a8d0810edadbd31c
-SIZE (golang-crypto-v0.12.0_GH0.tar.gz) = 1792261
-SHA256 (golang-image-v0.11.0_GH0.tar.gz) = f3f2478f08274fabf49f4947ba98bdda9de35e811a0e28cc76144ae33c816680
-SIZE (golang-image-v0.11.0_GH0.tar.gz) = 5091140
-SHA256 (golang-net-v0.14.0_GH0.tar.gz) = 4e1e28fced7e751f6e91462463bbd5c291601807a7cc2ead1fcc7373bcc93828
-SIZE (golang-net-v0.14.0_GH0.tar.gz) = 1421533
-SHA256 (golang-oauth2-v0.11.0_GH0.tar.gz) = 8cb6f05e8bf107a1b99fe05450eac7b115d1eccb2aaa115cc3212447058c68b6
-SIZE (golang-oauth2-v0.11.0_GH0.tar.gz) = 87085
-SHA256 (golang-protobuf-v1.5.3_GH0.tar.gz) = 48457a6a9e8c78a7556ff5ff4a4c77d7df9bf70e882491ee0f3f1ff06db2bfaa
-SIZE (golang-protobuf-v1.5.3_GH0.tar.gz) = 171822
+SHA256 (golang-appengine-v1.6.8_GH0.tar.gz) = 9f0029767e180c64ef42c448f02a247deb2980b2ba6908977ad4c53ebae1abb5
+SIZE (golang-appengine-v1.6.8_GH0.tar.gz) = 628708
+SHA256 (golang-crypto-v0.22.0_GH0.tar.gz) = be0f461ea3ce13349996dca48fbb27537fd738aa6498fb38cfbf87a2ce31e082
+SIZE (golang-crypto-v0.22.0_GH0.tar.gz) = 1813353
+SHA256 (golang-image-v0.15.0_GH0.tar.gz) = 90b6dbb36a61290acac3050008594203c5c094af562b8e7be5af7d3b7230f53b
+SIZE (golang-image-v0.15.0_GH0.tar.gz) = 5093053
+SHA256 (golang-net-v0.24.0_GH0.tar.gz) = 6fbc9f6ddc538c67affd1248d68ca85f69e0abe916181b1cd81323093afa96b9
+SIZE (golang-net-v0.24.0_GH0.tar.gz) = 1509016
+SHA256 (golang-oauth2-v0.18.0_GH0.tar.gz) = 497458219c1b4c3c44f0acf33a54c68dd723dcc3a1c592f0ac712265008a182a
+SIZE (golang-oauth2-v0.18.0_GH0.tar.gz) = 99719
+SHA256 (golang-protobuf-v1.5.4_GH0.tar.gz) = d75e6960ecfabaaa83a7261b1b630d24e9c63aca79615fb15bf33e11b62fd019
+SIZE (golang-protobuf-v1.5.4_GH0.tar.gz) = 172992
SHA256 (golang-snappy-v0.0.4_GH0.tar.gz) = 77df678795596f9dfecb5744deb984633d780460a7e9a59e0c7ecfe2052b644f
SIZE (golang-snappy-v0.0.4_GH0.tar.gz) = 66129
-SHA256 (golang-sync-v0.3.0_GH0.tar.gz) = 0be463c5e9198caec11b59795c780db96d9136df65451196629d74f737ef457a
-SIZE (golang-sync-v0.3.0_GH0.tar.gz) = 20003
-SHA256 (golang-sys-v0.11.0_GH0.tar.gz) = 907778fbdf5a900ee51fc45e0a3f2cc7bc693af8a9c972c00679b194b61ea24c
-SIZE (golang-sys-v0.11.0_GH0.tar.gz) = 1445078
-SHA256 (golang-text-v0.12.0_GH0.tar.gz) = 223318d6bd0b76fe5cdff3499a0ad0b3bfe573336951b0b141af6cde704252da
-SIZE (golang-text-v0.12.0_GH0.tar.gz) = 8967035
-SHA256 (google-uuid-v1.3.0_GH0.tar.gz) = 7f7f37c47980e0afcc178a9ffc390bec29ed2371919b4c07658eb01791a7f921
-SIZE (google-uuid-v1.3.0_GH0.tar.gz) = 16210
-SHA256 (googleapis-google-cloud-go-compute-v1.23.0_GH0.tar.gz) = 3d3378dbc0be74c941caafbd53fdd4a75c277d22599669a97da282e7f6c1aee0
-SIZE (googleapis-google-cloud-go-compute-v1.23.0_GH0.tar.gz) = 21906397
+SHA256 (golang-sync-v0.6.0_GH0.tar.gz) = 23b8fca95397b2293e64e58d333633051ec942b46318ad8f630318e801658b67
+SIZE (golang-sync-v0.6.0_GH0.tar.gz) = 17605
+SHA256 (golang-sys-v0.19.0_GH0.tar.gz) = da82f3d99abd964483ec5d622ddf620e2492ec0a18c154475f35d938c4240c7b
+SIZE (golang-sys-v0.19.0_GH0.tar.gz) = 1449493
+SHA256 (golang-text-v0.14.0_GH0.tar.gz) = c80295e75bda599d17ccf74038139b0957b9915fae4e60d8b46f89454ef171a0
+SIZE (golang-text-v0.14.0_GH0.tar.gz) = 8974094
+SHA256 (google-uuid-v1.6.0_GH0.tar.gz) = ee63376b5675376c60e055ed66e5f3651ccc703bd580c022b8ad00cea309252d
+SIZE (google-uuid-v1.6.0_GH0.tar.gz) = 20896
+SHA256 (googleapis-google-cloud-go-compute-v1.25.1_GH0.tar.gz) = 32836252941d05a264ef1fbfffe1d1283fbf4bff5274ce57e72f54d9f6967757
+SIZE (googleapis-google-cloud-go-compute-v1.25.1_GH0.tar.gz) = 26378300
SHA256 (googleapis-google-cloud-go-compute-metadata-v0.2.3_GH0.tar.gz) = c83b666324b7ae4997298d55efde8b1a3890d02fb1b86395e305e7f8ad0bfa51
SIZE (googleapis-google-cloud-go-compute-metadata-v0.2.3_GH0.tar.gz) = 18575574
-SHA256 (gorilla-css-v1.0.0_GH0.tar.gz) = 9decf83063b85bcd5392f645fac322e986b5fc596b3e44c3be02ee5939106f4c
-SIZE (gorilla-css-v1.0.0_GH0.tar.gz) = 6443
-SHA256 (gorilla-feeds-v1.1.1_GH0.tar.gz) = 361482738014da53e03d0be5b22d39f3a4d9a8f258cf7e09faf3694ee63e091f
-SIZE (gorilla-feeds-v1.1.1_GH0.tar.gz) = 14733
-SHA256 (gorilla-websocket-v1.5.0_GH0.tar.gz) = 5d86f9e1c76ff7ceca0747f78b79864fbaec9d440f4fdb03197466e5102a86b0
-SIZE (gorilla-websocket-v1.5.0_GH0.tar.gz) = 54155
+SHA256 (gorilla-css-v1.0.1_GH0.tar.gz) = c56d3dd69a9922440c3a79246ff3b3fe8114128eac94605e3efcd9c465c57e4a
+SIZE (gorilla-css-v1.0.1_GH0.tar.gz) = 7769
+SHA256 (gorilla-feeds-v1.1.2_GH0.tar.gz) = d08f470d944757a89fdccdd1f6d0bcdc7757fcfec2eb8e5fc6860007a0e373c2
+SIZE (gorilla-feeds-v1.1.2_GH0.tar.gz) = 16554
+SHA256 (gorilla-websocket-v1.5.1_GH0.tar.gz) = b8c9f291d12c1b2fcbc64b4862bead21d709c2884fe4b3e35ae1e5485c039d8d
+SIZE (gorilla-websocket-v1.5.1_GH0.tar.gz) = 61416
SHA256 (hashicorp-errwrap-v1.1.0_GH0.tar.gz) = 0d73891a7a179e50a142ac8832db97b17c792d29ae205b0e6aeedde4c43d51a4
SIZE (hashicorp-errwrap-v1.1.0_GH0.tar.gz) = 8581
SHA256 (hashicorp-go-multierror-v1.1.1_GH0.tar.gz) = 8d1bb3377310e8ffe4c7b5672c5de1eaed153402aebd15d6e5b9673c356a065f
SIZE (hashicorp-go-multierror-v1.1.1_GH0.tar.gz) = 13803
-SHA256 (hashicorp-golang-lru-v0.5.4_GH0.tar.gz) = d50c188af0cc8b22e7e4b79e9071694fa06428a9964b22d68dc997fa787a177a
-SIZE (hashicorp-golang-lru-v0.5.4_GH0.tar.gz) = 13428
+SHA256 (hashicorp-golang-lru-v2.0.7_GH0.tar.gz) = 312697d0bf6e6bb44e66a94b2a8a07955edf89af10b09e69b5a9101d30ad5149
+SIZE (hashicorp-golang-lru-v2.0.7_GH0.tar.gz) = 23860
SHA256 (jessevdk-go-flags-v1.5.0_GH0.tar.gz) = d4bf30f729cbc16d2aa0095ac10ca4fadc8f092b9a28990c0cfca2345c3e7ffd
SIZE (jessevdk-go-flags-v1.5.0_GH0.tar.gz) = 59316
-SHA256 (klauspost-compress-v1.16.7_GH0.tar.gz) = 0f68d194c726a9cc36bcd011e2f4498d15dad5f040382c3dbfffd7bf7d2bca28
-SIZE (klauspost-compress-v1.16.7_GH0.tar.gz) = 37939325
+SHA256 (klauspost-compress-v1.17.7_GH0.tar.gz) = 9484685898592e9232cab3e6597cb6a9fdd0b60c5ad83536257ca4c414b36a07
+SIZE (klauspost-compress-v1.17.7_GH0.tar.gz) = 38745513
SHA256 (kyokomi-emoji-v2.2.12_GH0.tar.gz) = 27d4c16399eee1d4a5d83696f9b7bfbdbee4f0a4d4083bfc9132774b367401d7
SIZE (kyokomi-emoji-v2.2.12_GH0.tar.gz) = 103875
-SHA256 (microcosm-cc-bluemonday-v1.0.25_GH0.tar.gz) = 6a101391e443fb87f50b13b6bd8f5b12b99e1a091aa57b5073f0272823a82a93
-SIZE (microcosm-cc-bluemonday-v1.0.25_GH0.tar.gz) = 172782
-SHA256 (mongodb-mongo-go-driver-v1.12.1_GH0.tar.gz) = 9231b130e0e5accc1c9282b76c7707e315cb91229f4ea947a4151a73006a0951
-SIZE (mongodb-mongo-go-driver-v1.12.1_GH0.tar.gz) = 5181577
+SHA256 (microcosm-cc-bluemonday-v1.0.26_GH0.tar.gz) = f267d586b4df8e09ad733b4b62476f044173a9eb480118f1036ed874f2a69dc1
+SIZE (microcosm-cc-bluemonday-v1.0.26_GH0.tar.gz) = 174738
+SHA256 (mongodb-mongo-go-driver-v1.14.0_GH0.tar.gz) = 2ed3cb74ba7c799f4a27f4452abbe60e9260a9856e90a2c8e62bd5717fb0804c
+SIZE (mongodb-mongo-go-driver-v1.14.0_GH0.tar.gz) = 5469590
SHA256 (montanaflynn-stats-v0.7.1_GH0.tar.gz) = 97e9258173992d3caee6f7d7ac175d559dfc086388ad6c65fde439b808e1b725
SIZE (montanaflynn-stats-v0.7.1_GH0.tar.gz) = 52136
-SHA256 (nullrocks-identicon-7875f45b0022_GH0.tar.gz) = d1e5a569e2314748c2523ec8aa6603a9db09d128c408148add8630b7b0b44580
-SIZE (nullrocks-identicon-7875f45b0022_GH0.tar.gz) = 24819
SHA256 (pmezard-go-difflib-v1.0.0_GH0.tar.gz) = 28f3dc1b5c0efd61203ab07233f774740d3bf08da4d8153fb5310db6cea0ebda
SIZE (pmezard-go-difflib-v1.0.0_GH0.tar.gz) = 11398
-SHA256 (protocolbuffers-protobuf-go-v1.31.0_GH0.tar.gz) = 96d670e9bae145ff2dd0f48a3693edb1f45ec3ee56d5f50a5f01cc7e060314bc
-SIZE (protocolbuffers-protobuf-go-v1.31.0_GH0.tar.gz) = 1311732
+SHA256 (protocolbuffers-protobuf-go-v1.33.0_GH0.tar.gz) = 21661d7634e3f783b015b93ceafc0261f2f02a270799bac871602c3a2172cfbe
+SIZE (protocolbuffers-protobuf-go-v1.33.0_GH0.tar.gz) = 1482410
+SHA256 (redis-go-redis-v9.4.0_GH0.tar.gz) = d2bd26be4dcb2368b6d4fbab2759b61385b0b36f8b8ccf80ad211f0594785973
+SIZE (redis-go-redis-v9.4.0_GH0.tar.gz) = 294300
+SHA256 (rrivera-identicon-d5ba35832c0d_GH0.tar.gz) = 25968d56488ac24dfe008becbd4b950c98c3215277cd9da7009ae5521d6e6f94
+SIZE (rrivera-identicon-d5ba35832c0d_GH0.tar.gz) = 24885
SHA256 (rs-xid-v1.5.0_GH0.tar.gz) = 105fc29a13c39f558a5ccf70bd27eded738628328bad682e24e04c3a798d3196
SIZE (rs-xid-v1.5.0_GH0.tar.gz) = 11534
SHA256 (russross-blackfriday-v2.1.0_GH0.tar.gz) = a13af0fc5305713f5154693feaf654d024689efea76390091a5e8c757335b4f4
SIZE (russross-blackfriday-v2.1.0_GH0.tar.gz) = 92896
SHA256 (skip2-go-qrcode-da1b6568686e_GH0.tar.gz) = af179c37da861a43242fb4383186724b34866d7b5bd3e54ca44031a2b9f92046
SIZE (skip2-go-qrcode-da1b6568686e_GH0.tar.gz) = 36693
-SHA256 (slack-go-slack-v0.12.2_GH0.tar.gz) = aab173a7dd82b928abe9e1f18be3a0ad4e3d11cd4625aaf324b182a95988212c
-SIZE (slack-go-slack-v0.12.2_GH0.tar.gz) = 371950
-SHA256 (stretchr-testify-v1.8.4_GH0.tar.gz) = 0d3e82b04a05d9428a2a2aec8776bd0a07f14f5d1b4fa0a3676526ca8259fd62
-SIZE (stretchr-testify-v1.8.4_GH0.tar.gz) = 104427
-SHA256 (uber-go-goleak-v1.2.1_GH0.tar.gz) = e66f27ce9d738486df5fe133af6c425119d21776e0e85c07ffcaeb6ba043604b
-SIZE (uber-go-goleak-v1.2.1_GH0.tar.gz) = 15403
+SHA256 (slack-go-slack-v0.12.4_GH0.tar.gz) = ed8fa001a41188a8b634ba34c13070e6dd87e3e4f6a49c5d78391462b508f446
+SIZE (slack-go-slack-v0.12.4_GH0.tar.gz) = 385607
+SHA256 (stretchr-testify-v1.9.0_GH0.tar.gz) = ee651d4d4427d55096007190398102383498e6b5cf97ea9e89ad6e72b4115fbb
+SIZE (stretchr-testify-v1.9.0_GH0.tar.gz) = 108663
+SHA256 (uber-go-goleak-v1.3.0_GH0.tar.gz) = 4813e7694736f4d7fd1aad195d942f40ffca448c29bff3282ba6e92eaba4e0cd
+SIZE (uber-go-goleak-v1.3.0_GH0.tar.gz) = 20057
SHA256 (xdg-go-pbkdf2-v1.0.0_GH0.tar.gz) = 2eec55146447215eb58190e04c546c93cad7f369ac9b5aacd9dc11330d756757
SIZE (xdg-go-pbkdf2-v1.0.0_GH0.tar.gz) = 7758
SHA256 (xdg-go-scram-v1.1.2_GH0.tar.gz) = 66e8e73966d87b7266957dbe421313b335c455907a36b0115ea81bdf7d1c9d19
diff --git a/www/remark42/files/patch-frontend_apps_remark42_app_components_comment-form_____subscribe-by-email_comment-form____subscribe-by-email.test.tsx b/www/remark42/files/patch-frontend_apps_remark42_app_components_comment-form_____subscribe-by-email_comment-form____subscribe-by-email.test.tsx
new file mode 100644
index 000000000000..a06d41976ff3
--- /dev/null
+++ b/www/remark42/files/patch-frontend_apps_remark42_app_components_comment-form_____subscribe-by-email_comment-form____subscribe-by-email.test.tsx
@@ -0,0 +1,20 @@
+--- frontend/apps/remark42/app/components/comment-form/__subscribe-by-email/comment-form__subscribe-by-email.test.tsx.orig 2024-05-10 03:32:00 UTC
++++ frontend/apps/remark42/app/components/comment-form/__subscribe-by-email/comment-form__subscribe-by-email.test.tsx
+@@ -193,7 +193,7 @@ describe('<SubscribeByEmailForm/>', () => {
+
+ it('should send form by paste valid token', async () => {
+ const wrapper = createWrapper();
+- const onInputEmail = wrapper.find(Input).prop('onInput');
++ const onInputEmail = wrapper.find(Input).prop('onInput') as Function;
+ const form = wrapper.find('form');
+
+ expect(typeof onInputEmail === 'function').toBe(true);
+@@ -220,7 +220,7 @@ describe('<SubscribeByEmailForm/>', () => {
+ it('should pass throw unsubscribe process', async () => {
+ const store = mockStore({ ...initialStore, user: { email_subscription: true } });
+ const wrapper = createWrapper(store);
+- const onClick = wrapper.find(Button).prop('onClick');
++ const onClick = wrapper.find(Button).prop('onClick') as Function;
+
+ expect(typeof onClick === 'function').toBe(true);
+
diff --git a/www/remark42/files/remark.in b/www/remark42/files/remark.in
index 705b68a0066e..d36f13be1c0a 100644
--- a/www/remark42/files/remark.in
+++ b/www/remark42/files/remark.in
@@ -120,6 +120,7 @@ load_rc_config ${name}
: ${remark_telegram_token:=""}
: ${remark_telegram_timeout:=""}
: ${remark_smtp_host:=""}
+: ${remark_smtp_insecure_skip_verify:=""}
: ${remark_smtp_port:=""}
: ${remark_smtp_username:=""}
: ${remark_smtp_password:=""}
@@ -134,6 +135,7 @@ load_rc_config ${name}
: ${remark_ssl_acme_location:=""}
: ${remark_ssl_acme_email:=""}
: ${remark_max_comment_size:=""}
+: ${remark_min_comment_size:=""}
: ${remark_max_votes:=""}
: ${remark_votes_ip:=""}
: ${remark_anon_vote:=""}
@@ -157,6 +159,7 @@ load_rc_config ${name}
: ${remark_remark_web_root:=""}
: ${remark_update_limit:=""}
: ${remark_subscribers_only:=""}
+: ${remark_disable_fancy_html_formatting:=""}
: ${remark_disable_signature:=""}
: ${remark_admin_passwd:=""}
: ${remark_debug:=""}
@@ -250,13 +253,13 @@ remark_precmd()
export_variables NOTIFY_USERS NOTIFY_ADMINS NOTIFY_QUEUE NOTIFY_TELEGRAM_CHAN NOTIFY_SLACK_TOKEN NOTIFY_SLACK_CHAN
export_variables NOTIFY_WEBHOOK_URL NOTIFY_WEBHOOK_TEMPLATE NOTIFY_WEBHOOK_HEADERS NOTIFY_WEBHOOK_TIMEOUT
export_variables NOTIFY_EMAIL_FROM NOTIFY_EMAIL_VERIFICATION_SUBJ TELEGRAM_TOKEN TELEGRAM_TIMEOUT
- export_variables SMTP_HOST SMTP_PORT SMTP_USERNAME SMTP_PASSWORD SMTP_LOGIN_AUTH SMTP_TLS
+ export_variables SMTP_HOST SMTP_INSECURE_SKIP_VERIFY SMTP_PORT SMTP_USERNAME SMTP_PASSWORD SMTP_LOGIN_AUTH SMTP_TLS
export_variables SMTP_STARTTLS SMTP_TIMEOUT SSL_TYPE SSL_PORT SSL_CERT SSL_KEY SSL_ACME_LOCATION
- export_variables SSL_ACME_EMAIL MAX_COMMENT_SIZE MAX_VOTES VOTES_IP ANON_VOTE VOTES_IP_TIME
+ export_variables SSL_ACME_EMAIL MAX_COMMENT_SIZE MIN_COMMENT_SIZE MAX_VOTES VOTES_IP ANON_VOTE VOTES_IP_TIME
export_variables LOW_SCORE CRITICAL_SCORE POSITIVE_SCORE RESTRICTED_WORDS RESTRICTED_NAMES
export_variables EDIT_TIME ADMIN_EDIT READONLY_AGE IMAGE_PROXY_HTTP2HTTPS IMAGE_PROXY_CACHE_EXTERNAL
export_variables EMOJI SIMPLE_VIEW PROXY_CORS ALLOWED_HOSTS REMARK_ADDRESS REMARK_PORT REMARK_WEB_ROOT
- export_variables UPDATE_LIMIT SUBSCRIBERS_ONLY DISABLE_SIGNATURE ADMIN_PASSWD DEBUG
+ export_variables UPDATE_LIMIT SUBSCRIBERS_ONLY DISABLE_FANCY_HTML_FORMATTING DISABLE_SIGNATURE ADMIN_PASSWD DEBUG
}
pidfile="%%REMARK_PIDDIR%%${name}.pid"
diff --git a/www/reproxy/Makefile b/www/reproxy/Makefile
index 6046946ec297..c32d26112d59 100644
--- a/www/reproxy/Makefile
+++ b/www/reproxy/Makefile
@@ -1,7 +1,6 @@
PORTNAME= reproxy
-PORTVERSION= 0.11.0
+PORTVERSION= 1.1.1
DISTVERSIONPREFIX= v
-PORTREVISION= 19
CATEGORIES= www
MAINTAINER= danfe@FreeBSD.org
@@ -14,15 +13,10 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
USES= go:modules
USE_GITHUB= yes
GH_ACCOUNT= umputun
-GH_TUPLE= golang:sys:v0.6.0:sys
BUILD_WRKSRC= ${WRKSRC}/app
PLIST_FILES= bin/reproxy
-pre-patch:
- ${RM} -r ${WRKSRC}/vendor/golang.org/x/sys
- ${LN} -s ${WRKDIR}/sys-* ${WRKSRC}/vendor/golang.org/x/sys
-
post-patch:
@${REINPLACE_CMD} -e '/var revision/s,unknown,${PORTVERSION},' \
${BUILD_WRKSRC}/main.go
diff --git a/www/reproxy/distinfo b/www/reproxy/distinfo
index 653d072a1870..a15b25cc08cb 100644
--- a/www/reproxy/distinfo
+++ b/www/reproxy/distinfo
@@ -1,5 +1,3 @@
-TIMESTAMP = 1679135608
-SHA256 (umputun-reproxy-v0.11.0_GH0.tar.gz) = fa8ae8eb2f92c6c49fa68dcce08cad50a37d8eb424a9765e0c43629ae111743b
-SIZE (umputun-reproxy-v0.11.0_GH0.tar.gz) = 2893531
-SHA256 (golang-sys-v0.6.0_GH0.tar.gz) = b4f6d17c7a128f76169964b437cb66b3f2dbf9a33361928ec19dfecf7b03fc54
-SIZE (golang-sys-v0.6.0_GH0.tar.gz) = 1434234
+TIMESTAMP = 1707197375
+SHA256 (umputun-reproxy-v1.1.1_GH0.tar.gz) = 595af6971ea6be9f5f4a3e92c9c9ad9024c93c353456cd3d8d9efa9786679c1e
+SIZE (umputun-reproxy-v1.1.1_GH0.tar.gz) = 3166619
diff --git a/www/restinio/Makefile b/www/restinio/Makefile
index 7e38a4c54592..533fa37be08b 100644
--- a/www/restinio/Makefile
+++ b/www/restinio/Makefile
@@ -21,6 +21,19 @@ RUN_DEPENDS= libfmt>0:devel/libfmt \
USES= cmake:testing compiler:c++14-lang localbase:ldflags tar:bz2
+EXTRACT_AFTER_ARGS= --exclude ${PORTNAME}-${DISTVERSION}/dev/asio \
+ --exclude ${PORTNAME}-${DISTVERSION}/dev/asio_mxxru \
+ --exclude ${PORTNAME}-${DISTVERSION}/dev/catch2 \
+ --exclude ${PORTNAME}-${DISTVERSION}/dev/fmt \
+ --exclude ${PORTNAME}-${DISTVERSION}/dev/fmt_mxxru \
+ --exclude ${PORTNAME}-${DISTVERSION}/dev/nodejs/http_parser/http_parser.* \
+ --exclude ${PORTNAME}-${DISTVERSION}/dev/nodejs/http_parser_mxxru \
+ --exclude ${PORTNAME}-${DISTVERSION}/dev/rapidjson \
+ --exclude ${PORTNAME}-${DISTVERSION}/dev/rapidjson_mxxru \
+ --exclude ${PORTNAME}-${DISTVERSION}/dev/so_5 \
+ --exclude ${PORTNAME}-${DISTVERSION}/dev/timertt \
+ --no-same-owner --no-same-permissions
+
WRKSRC= ${WRKDIR}/${PORTNAME}-${DISTVERSION}
WRKSRC_SUBDIR= dev
@@ -39,17 +52,4 @@ SAMPLES_CMAKE_BOOL= RESTINIO_SAMPLE RESTINIO_INSTALL_SAMPLES
SAMPLES_VARS_OFF= NO_ARCH=yes
SAMPLES_BUILD_DEPENDS= json-dto>0:devel/json-dto
-post-extract:
- ${RM} -rf ${WRKSRC}/asio
- ${RM} -rf ${WRKSRC}/asio_mxxru
- ${RM} -rf ${WRKSRC}/catch2
- ${RM} -rf ${WRKSRC}/fmt
- ${RM} -rf ${WRKSRC}/fmt_mxxru
- ${RM} -rf ${WRKSRC}/nodejs/http_parser/http-parser.*
- ${RM} -rf ${WRKSRC}/nodejs/http_parser_mxxru
- ${RM} -rf ${WRKSRC}/rapidjson
- ${RM} -rf ${WRKSRC}/rapidjson_mxxru
- ${RM} -rf ${WRKSRC}/so_5
- ${RM} -rf ${WRKSRC}/timertt
-
.include <bsd.port.mk>
diff --git a/www/rt50/Makefile b/www/rt50/Makefile
index 1652e8507ae4..6eb8f8ffee4f 100644
--- a/www/rt50/Makefile
+++ b/www/rt50/Makefile
@@ -1,6 +1,5 @@
PORTNAME= rt
-DISTVERSION= 5.0.5
-PORTREVISION= 1
+DISTVERSION= 5.0.6
CATEGORIES= www
MASTER_SITES= http://download.bestpractical.com/pub/rt/release/
PKGNAMESUFFIX= 50
diff --git a/www/rt50/Makefile.cpan b/www/rt50/Makefile.cpan
index 91f775c6f7b4..012d09984d17 100644
--- a/www/rt50/Makefile.cpan
+++ b/www/rt50/Makefile.cpan
@@ -22,7 +22,7 @@
### DateTime::Format::Natural 0.67
### DateTime::Locale 0.40
### DBI 1.37
-### DBIx::SearchBuilder 1.77
+### DBIx::SearchBuilder 1.80
### Devel::GlobalDestruction
### Devel::StackTrace 1.19
### Digest::base perl std
@@ -104,7 +104,7 @@ CORE_DEPS= p5-Apache-Session>=1.53:www/p5-Apache-Session \
p5-Convert-Color>0:graphics/p5-Convert-Color \
p5-Crypt-Eksblowfish>0:security/p5-Crypt-Eksblowfish \
p5-DBI>=1.37:databases/p5-DBI \
- p5-DBIx-SearchBuilder>=1.77:databases/p5-DBIx-SearchBuilder \
+ p5-DBIx-SearchBuilder>=1.80:databases/p5-DBIx-SearchBuilder \
p5-Data-GUID>0:devel/p5-Data-GUID \
p5-Data-ICal>0:deskutils/p5-Data-ICal \
p5-Data-Page>0:databases/p5-Data-Page \
diff --git a/www/rt50/distinfo b/www/rt50/distinfo
index e0d4d8f8282b..6c2023751344 100644
--- a/www/rt50/distinfo
+++ b/www/rt50/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1697786825
-SHA256 (rt-5.0.5.tar.gz) = 90f845daaa436198c334b6e9cf5afb1df9f4445dcc165d0bcae35de9eb9be8ef
-SIZE (rt-5.0.5.tar.gz) = 19055361
+TIMESTAMP = 1715603268
+SHA256 (rt-5.0.6.tar.gz) = b556bedd2b4a356ec9f54eb673ff250ae9100347a04d11e34637e3fdd3efdddb
+SIZE (rt-5.0.6.tar.gz) = 19771599
diff --git a/www/rt50/pkg-plist b/www/rt50/pkg-plist
index ffbb0f9947bb..b483abc9c14c 100644
--- a/www/rt50/pkg-plist
+++ b/www/rt50/pkg-plist
@@ -272,8 +272,14 @@ sbin/rt-email-expiring-auth-tokens
%%SITE_PERL%%/RT/Record/Role/Roles.pm
%%SITE_PERL%%/RT/Record/Role/Status.pm
%%SITE_PERL%%/RT/Reminders.pm
+%%SITE_PERL%%/RT/Report.pm
+%%SITE_PERL%%/RT/Report/Assets.pm
+%%SITE_PERL%%/RT/Report/Assets/Entry.pm
+%%SITE_PERL%%/RT/Report/Entry.pm
%%SITE_PERL%%/RT/Report/Tickets.pm
%%SITE_PERL%%/RT/Report/Tickets/Entry.pm
+%%SITE_PERL%%/RT/Report/Transactions.pm
+%%SITE_PERL%%/RT/Report/Transactions/Entry.pm
%%SITE_PERL%%/RT/RightsInspector.pm
%%SITE_PERL%%/RT/Rule.pm
%%SITE_PERL%%/RT/Ruleset.pm
@@ -383,7 +389,6 @@ sbin/rt-validator
sbin/standalone_httpd
@group wheel
%%PORTDOCS%%%%DOCSDIR%%/GDPR.pod
-%%PORTDOCS%%%%DOCSDIR%%/README
%%PORTDOCS%%%%DOCSDIR%%/UPGRADING-2.0
%%PORTDOCS%%%%DOCSDIR%%/UPGRADING-3.0
%%PORTDOCS%%%%DOCSDIR%%/UPGRADING-3.2
@@ -432,6 +437,9 @@ sbin/standalone_httpd
%%PORTDOCS%%%%DOCSDIR%%/images/asset-ticket-create-selfservice.png
%%PORTDOCS%%%%DOCSDIR%%/images/asset-ticket-create.png
%%PORTDOCS%%%%DOCSDIR%%/images/catalog-rights.png
+%%PORTDOCS%%%%DOCSDIR%%/images/chart-limited-to-top-10.png
+%%PORTDOCS%%%%DOCSDIR%%/images/chart-ordered-by-value.png
+%%PORTDOCS%%%%DOCSDIR%%/images/chart-tickets-by-requestor.png
%%PORTDOCS%%%%DOCSDIR%%/images/complicated-search-arrows.png
%%PORTDOCS%%%%DOCSDIR%%/images/create-setowner-action.png
%%PORTDOCS%%%%DOCSDIR%%/images/current-search.png
@@ -466,12 +474,14 @@ sbin/standalone_httpd
%%PORTDOCS%%%%DOCSDIR%%/images/quote-selection-highlighted.png
%%PORTDOCS%%%%DOCSDIR%%/images/quote-selection-ticket-update.png
%%PORTDOCS%%%%DOCSDIR%%/images/saved-dashboard.png
+%%PORTDOCS%%%%DOCSDIR%%/images/screenshot.png
%%PORTDOCS%%%%DOCSDIR%%/images/search-arrows.png
%%PORTDOCS%%%%DOCSDIR%%/images/search-criteria.png
%%PORTDOCS%%%%DOCSDIR%%/images/search-results.png
%%PORTDOCS%%%%DOCSDIR%%/images/sorting-display-columns.png
%%PORTDOCS%%%%DOCSDIR%%/images/status-change-condition.png
%%PORTDOCS%%%%DOCSDIR%%/images/subscriptions.png
+%%PORTDOCS%%%%DOCSDIR%%/images/support-dashboard.png
%%PORTDOCS%%%%DOCSDIR%%/images/theme_editor_defaults.png
%%PORTDOCS%%%%DOCSDIR%%/images/user-time-worked-report.png
%%PORTDOCS%%%%DOCSDIR%%/images/with-created-before.png
@@ -746,6 +756,7 @@ sbin/standalone_httpd
%%DOCSDIR%%/upgrade/5.0.5/schema.Pg
%%DOCSDIR%%/upgrade/5.0.5/schema.SQLite
%%DOCSDIR%%/upgrade/5.0.5/schema.mysql
+%%DOCSDIR%%/upgrade/5.0.6/indexes
%%DOCSDIR%%/upgrade/generate-rtaddressregexp
%%DOCSDIR%%/upgrade/reset-sequences
%%DOCSDIR%%/upgrade/sanity-check-stylesheets
@@ -1003,6 +1014,7 @@ sbin/standalone_httpd
%%DATADIR%%/html/Asset/Elements/EditCatalogPeople
%%DATADIR%%/html/Asset/Elements/EditDates
%%DATADIR%%/html/Asset/Elements/EditPeople
+%%DATADIR%%/html/Asset/Elements/EditPeopleInline
%%DATADIR%%/html/Asset/Elements/EditRoleMembers
%%DATADIR%%/html/Asset/Elements/Search
%%DATADIR%%/html/Asset/Elements/SelectCatalog
@@ -1105,6 +1117,7 @@ sbin/standalone_httpd
%%DATADIR%%/html/Elements/GotoUser
%%DATADIR%%/html/Elements/Header
%%DATADIR%%/html/Elements/HeaderJavascript
+%%DATADIR%%/html/Elements/HttpResponseHeaders
%%DATADIR%%/html/Elements/JavascriptConfig
%%DATADIR%%/html/Elements/LabeledValue
%%DATADIR%%/html/Elements/Lifecycle/Graph
@@ -1151,8 +1164,8 @@ sbin/standalone_httpd
%%DATADIR%%/html/Elements/RT__User/ColumnMap
%%DATADIR%%/html/Elements/Refresh
%%DATADIR%%/html/Elements/RefreshHomepage
-%%DATADIR%%/html/Elements/SavedSearches
%%DATADIR%%/html/Elements/SavedSearchSelectUser
+%%DATADIR%%/html/Elements/SavedSearches
%%DATADIR%%/html/Elements/ScrubHTML
%%DATADIR%%/html/Elements/SearchFilter
%%DATADIR%%/html/Elements/Section
@@ -1178,6 +1191,7 @@ sbin/standalone_httpd
%%DATADIR%%/html/Elements/SelectOwner
%%DATADIR%%/html/Elements/SelectOwnerAutocomplete
%%DATADIR%%/html/Elements/SelectOwnerDropdown
+%%DATADIR%%/html/Elements/SelectOwnerDropdownDelay
%%DATADIR%%/html/Elements/SelectPriority
%%DATADIR%%/html/Elements/SelectPriorityAsString
%%DATADIR%%/html/Elements/SelectQueue
@@ -1250,10 +1264,12 @@ sbin/standalone_httpd
%%DATADIR%%/html/Group/Summary.html
%%DATADIR%%/html/Helpers/AddTimeWorked
%%DATADIR%%/html/Helpers/Admin/EditCustomFieldValue
+%%DATADIR%%/html/Helpers/AssetUpdate
%%DATADIR%%/html/Helpers/Autocomplete/Articles
%%DATADIR%%/html/Helpers/Autocomplete/Assets
%%DATADIR%%/html/Helpers/Autocomplete/CustomFieldValues
%%DATADIR%%/html/Helpers/Autocomplete/Groups
+%%DATADIR%%/html/Helpers/Autocomplete/LinkTargets
%%DATADIR%%/html/Helpers/Autocomplete/Owners
%%DATADIR%%/html/Helpers/Autocomplete/Principals
%%DATADIR%%/html/Helpers/Autocomplete/Queues
@@ -1266,6 +1282,7 @@ sbin/standalone_httpd
%%DATADIR%%/html/Helpers/PreviewScrips
%%DATADIR%%/html/Helpers/RightsInspector/Revoke
%%DATADIR%%/html/Helpers/RightsInspector/Search
+%%DATADIR%%/html/Helpers/SelectOwnerDropdown
%%DATADIR%%/html/Helpers/ShortcutHelp
%%DATADIR%%/html/Helpers/ShowSimplifiedRecipients
%%DATADIR%%/html/Helpers/SpawnLinkedTicket
@@ -1366,6 +1383,8 @@ sbin/standalone_httpd
%%DATADIR%%/html/Search/Elements/EditQuery
%%DATADIR%%/html/Search/Elements/EditSearches
%%DATADIR%%/html/Search/Elements/EditSort
+%%DATADIR%%/html/Search/Elements/FilterAssets
+%%DATADIR%%/html/Search/Elements/FilterTickets
%%DATADIR%%/html/Search/Elements/Graph
%%DATADIR%%/html/Search/Elements/NewListActions
%%DATADIR%%/html/Search/Elements/PickAssetCFs
@@ -1417,6 +1436,7 @@ sbin/standalone_httpd
%%DATADIR%%/html/SelfService/Helpers/Autocomplete/CustomFieldValues
%%DATADIR%%/html/SelfService/Helpers/Autocomplete/Principals
%%DATADIR%%/html/SelfService/Helpers/Autocomplete/Users
+%%DATADIR%%/html/SelfService/Helpers/SelectOwnerDropdown
%%DATADIR%%/html/SelfService/Helpers/ShortcutHelp
%%DATADIR%%/html/SelfService/Helpers/TextDiff
%%DATADIR%%/html/SelfService/Helpers/Upload/Add
diff --git a/www/rubygem-actioncable70/Makefile b/www/rubygem-actioncable70/Makefile
index 8eead46e5b17..75d8b0c57282 100644
--- a/www/rubygem-actioncable70/Makefile
+++ b/www/rubygem-actioncable70/Makefile
@@ -1,5 +1,5 @@
PORTNAME= actioncable
-PORTVERSION= 7.0.8.1
+PORTVERSION= 7.0.8.3
CATEGORIES= www rubygems
MASTER_SITES= RG
PKGNAMESUFFIX= 70
diff --git a/www/rubygem-actioncable70/distinfo b/www/rubygem-actioncable70/distinfo
index 2010f2f6a04c..bea9d2a9ae56 100644
--- a/www/rubygem-actioncable70/distinfo
+++ b/www/rubygem-actioncable70/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1709391038
-SHA256 (rubygem/actioncable-7.0.8.1.gem) = bc5eddc8c6412d067b9fecec6a53dd14f3bd83baca96762eb864f01fb4c40649
-SIZE (rubygem/actioncable-7.0.8.1.gem) = 44544
+TIMESTAMP = 1716142248
+SHA256 (rubygem/actioncable-7.0.8.3.gem) = beb70a44cce8ecb1de7130351a653b6cf6d2dc74ae9c359e33022891132cafb4
+SIZE (rubygem/actioncable-7.0.8.3.gem) = 44544
diff --git a/www/rubygem-actioncable71/Makefile b/www/rubygem-actioncable71/Makefile
index 082ecf819367..8dc8102fe00d 100644
--- a/www/rubygem-actioncable71/Makefile
+++ b/www/rubygem-actioncable71/Makefile
@@ -1,5 +1,5 @@
PORTNAME= actioncable
-PORTVERSION= 7.1.3.2
+PORTVERSION= 7.1.3.3
CATEGORIES= www rubygems
MASTER_SITES= RG
PKGNAMESUFFIX= 71
diff --git a/www/rubygem-actioncable71/distinfo b/www/rubygem-actioncable71/distinfo
index d8afadc83348..efa9200c9b30 100644
--- a/www/rubygem-actioncable71/distinfo
+++ b/www/rubygem-actioncable71/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1709391064
-SHA256 (rubygem/actioncable-7.1.3.2.gem) = e162ce4094368e86237cbf8345cc78c2c7cf1fddaf5d8aacf86428d32cf9d145
-SIZE (rubygem/actioncable-7.1.3.2.gem) = 48128
+TIMESTAMP = 1716142274
+SHA256 (rubygem/actioncable-7.1.3.3.gem) = 57323cda266c950b18d67b3a751ba388dc7e0615fde48eb17400fa785a61adcf
+SIZE (rubygem/actioncable-7.1.3.3.gem) = 48128
diff --git a/www/rubygem-actionpack70/Makefile b/www/rubygem-actionpack70/Makefile
index 22bf095f2803..94088673cca9 100644
--- a/www/rubygem-actionpack70/Makefile
+++ b/www/rubygem-actionpack70/Makefile
@@ -1,5 +1,5 @@
PORTNAME= actionpack
-PORTVERSION= 7.0.8.1
+PORTVERSION= 7.0.8.3
CATEGORIES= www rubygems
MASTER_SITES= RG
PKGNAMESUFFIX= 70
diff --git a/www/rubygem-actionpack70/distinfo b/www/rubygem-actionpack70/distinfo
index b3a49a09f287..04149588e379 100644
--- a/www/rubygem-actionpack70/distinfo
+++ b/www/rubygem-actionpack70/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1709391040
-SHA256 (rubygem/actionpack-7.0.8.1.gem) = 5dcd2b39cb69abe899edc9faf878fb667a64a9fe306a2e56d09e3ed3701e084a
-SIZE (rubygem/actionpack-7.0.8.1.gem) = 233984
+TIMESTAMP = 1716142250
+SHA256 (rubygem/actionpack-7.0.8.3.gem) = 26fe3648ce8993dbe9ac128564c50e568628e7e595be221aa6dc905a4cbd8585
+SIZE (rubygem/actionpack-7.0.8.3.gem) = 233984
diff --git a/www/rubygem-actionpack71/Makefile b/www/rubygem-actionpack71/Makefile
index f23569d85bdf..3f1593caf237 100644
--- a/www/rubygem-actionpack71/Makefile
+++ b/www/rubygem-actionpack71/Makefile
@@ -1,5 +1,5 @@
PORTNAME= actionpack
-PORTVERSION= 7.1.3.2
+PORTVERSION= 7.1.3.3
CATEGORIES= www rubygems
MASTER_SITES= RG
PKGNAMESUFFIX= 71
diff --git a/www/rubygem-actionpack71/distinfo b/www/rubygem-actionpack71/distinfo
index 174de4cee663..83cd786069bd 100644
--- a/www/rubygem-actionpack71/distinfo
+++ b/www/rubygem-actionpack71/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1709391066
-SHA256 (rubygem/actionpack-7.1.3.2.gem) = b8f958d5d77e17b0fcbcd21f03eedac0405b0bf17421479be38529cf4a263b58
-SIZE (rubygem/actionpack-7.1.3.2.gem) = 244736
+TIMESTAMP = 1716142276
+SHA256 (rubygem/actionpack-7.1.3.3.gem) = 3d09fd1f80080401d0924f2ce3d61297422166e5b253416ee95d4278bcda7aa4
+SIZE (rubygem/actionpack-7.1.3.3.gem) = 244736
diff --git a/www/rubygem-async-http/Makefile b/www/rubygem-async-http/Makefile
index 6a11dd8b2773..dec96a400dbf 100644
--- a/www/rubygem-async-http/Makefile
+++ b/www/rubygem-async-http/Makefile
@@ -1,21 +1,23 @@
PORTNAME= async-http
-PORTVERSION= 0.64.1
+PORTVERSION= 0.66.3
CATEGORIES= www rubygems
MASTER_SITES= RG
MAINTAINER= sunpoet@FreeBSD.org
COMMENT= HTTP client and server library
-WWW= https://github.com/socketry/async-http
+WWW= https://socketry.github.io/async-http/ \
+ https://github.com/socketry/async-http
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/license.md
-RUN_DEPENDS= rubygem-async>=1.25:devel/rubygem-async \
- rubygem-async-io>=1.28:devel/rubygem-async-io \
- rubygem-async-pool>=0.2:www/rubygem-async-pool \
+RUN_DEPENDS= rubygem-async>=2.10.2:devel/rubygem-async \
+ rubygem-async-pool>=0.6.1:www/rubygem-async-pool \
+ rubygem-io-endpoint>=0.10.3<1:devel/rubygem-io-endpoint \
+ rubygem-io-stream>=0.4<1:devel/rubygem-io-stream \
rubygem-protocol-http>=0.26.0<0.27:www/rubygem-protocol-http \
rubygem-protocol-http1>=0.19.0<0.20:www/rubygem-protocol-http1 \
- rubygem-protocol-http2>=0.16.0<0.17:www/rubygem-protocol-http2 \
+ rubygem-protocol-http2>=0.17.0<0.18:www/rubygem-protocol-http2 \
rubygem-traces>=0.10.0:devel/rubygem-traces
USES= gem
diff --git a/www/rubygem-async-http/distinfo b/www/rubygem-async-http/distinfo
index 00e1a6eb42be..c857edc07fbd 100644
--- a/www/rubygem-async-http/distinfo
+++ b/www/rubygem-async-http/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1712427996
-SHA256 (rubygem/async-http-0.64.1.gem) = 93e73403b7e2d1878b306d300bbda5afb5cedd71ec969162bf15d2dd9fe5b1f0
-SIZE (rubygem/async-http-0.64.1.gem) = 33792
+TIMESTAMP = 1715843788
+SHA256 (rubygem/async-http-0.66.3.gem) = a5919be93246a16b6b95f152c052a3642822f254c3fea2fb1aca3e28b9457f8d
+SIZE (rubygem/async-http-0.66.3.gem) = 34304
diff --git a/www/rubygem-async-pool/Makefile b/www/rubygem-async-pool/Makefile
index 0a68f91d9ad0..0f220853fb76 100644
--- a/www/rubygem-async-pool/Makefile
+++ b/www/rubygem-async-pool/Makefile
@@ -1,13 +1,15 @@
PORTNAME= async-pool
-PORTVERSION= 0.4.0
+PORTVERSION= 0.6.1
CATEGORIES= www rubygems
MASTER_SITES= RG
MAINTAINER= sunpoet@FreeBSD.org
COMMENT= Redis client library
-WWW= https://github.com/socketry/async-pool
+WWW= https://socketry.github.io/async-pool/ \
+ https://github.com/socketry/async-pool
LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/license.md
RUN_DEPENDS= rubygem-async>=1.25:devel/rubygem-async
diff --git a/www/rubygem-async-pool/distinfo b/www/rubygem-async-pool/distinfo
index e548d8052e85..c9ac407c3120 100644
--- a/www/rubygem-async-pool/distinfo
+++ b/www/rubygem-async-pool/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1684104712
-SHA256 (rubygem/async-pool-0.4.0.gem) = c0bb04331c8652059369ea3720031072978b3a7dcc1b8163a61f90833432aef8
-SIZE (rubygem/async-pool-0.4.0.gem) = 12800
+TIMESTAMP = 1715843790
+SHA256 (rubygem/async-pool-0.6.1.gem) = 56cfcb285da9b92e9a029c13b4ed0735d1d62173ae752e4a5f916e8867751625
+SIZE (rubygem/async-pool-0.6.1.gem) = 12800
diff --git a/www/rubygem-async-rest/Makefile b/www/rubygem-async-rest/Makefile
index 416afed5de5e..a4e20873358a 100644
--- a/www/rubygem-async-rest/Makefile
+++ b/www/rubygem-async-rest/Makefile
@@ -5,9 +5,11 @@ MASTER_SITES= RG
MAINTAINER= sunpoet@FreeBSD.org
COMMENT= RESTful clients (and hopefully servers)
-WWW= https://github.com/socketry/async-rest
+WWW= https://socketry.github.io/async-rest/ \
+ https://github.com/socketry/async-rest
LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/license.md
RUN_DEPENDS= rubygem-async-http>=0.42<1:www/rubygem-async-http \
rubygem-protocol-http>=0.7<1:www/rubygem-protocol-http
diff --git a/www/rubygem-async-websocket/Makefile b/www/rubygem-async-websocket/Makefile
index 0073c1845d06..64cab5443bf4 100644
--- a/www/rubygem-async-websocket/Makefile
+++ b/www/rubygem-async-websocket/Makefile
@@ -1,17 +1,18 @@
PORTNAME= async-websocket
-PORTVERSION= 0.26.0
+PORTVERSION= 0.26.1
CATEGORIES= www rubygems
MASTER_SITES= RG
MAINTAINER= sunpoet@FreeBSD.org
COMMENT= Async websocket library on top of websocket-driver
-WWW= https://github.com/socketry/async-websocket
+WWW= https://socketry.github.io/async-websocket/ \
+ https://github.com/socketry/async-websocket
LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/license.md
RUN_DEPENDS= rubygem-async-http>=0.54<1:www/rubygem-async-http \
- rubygem-async-io>=1.23<2:devel/rubygem-async-io \
- rubygem-protocol-rack>=0.1<1:www/rubygem-protocol-rack \
+ rubygem-protocol-rack>=0.5<1:www/rubygem-protocol-rack \
rubygem-protocol-websocket>=0.11<1:www/rubygem-protocol-websocket
USES= gem
diff --git a/www/rubygem-async-websocket/distinfo b/www/rubygem-async-websocket/distinfo
index 9e010ab13a4a..459933d04864 100644
--- a/www/rubygem-async-websocket/distinfo
+++ b/www/rubygem-async-websocket/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1702543804
-SHA256 (rubygem/async-websocket-0.26.0.gem) = 62872d30a9c95926eb6aafee627c7f90d365272421da5a16bb54e1abded7994a
-SIZE (rubygem/async-websocket-0.26.0.gem) = 14336
+TIMESTAMP = 1715843792
+SHA256 (rubygem/async-websocket-0.26.1.gem) = 4059512bad7d3f1fe5d3dec1d715095666478ace30ab709c5674cc1b793662cf
+SIZE (rubygem/async-websocket-0.26.1.gem) = 14336
diff --git a/www/rubygem-browser/Makefile b/www/rubygem-browser/Makefile
index 5b0a9fc4e705..2a368d24a167 100644
--- a/www/rubygem-browser/Makefile
+++ b/www/rubygem-browser/Makefile
@@ -1,5 +1,5 @@
PORTNAME= browser
-PORTVERSION= 5.3.1
+PORTVERSION= 6.0.0
CATEGORIES= www rubygems
MASTER_SITES= RG
@@ -9,6 +9,8 @@ WWW= https://github.com/fnando/browser
LICENSE= MIT
+BROKEN_RUBY31= yes
+
USES= gem
NO_ARCH= yes
diff --git a/www/rubygem-browser/distinfo b/www/rubygem-browser/distinfo
index 6dd217d326ba..9979103bf96e 100644
--- a/www/rubygem-browser/distinfo
+++ b/www/rubygem-browser/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1669462251
-SHA256 (rubygem/browser-5.3.1.gem) = 62745301701ff2c6c5d32d077bb12532b20be261929dcb52c6781ed0d5658b3c
-SIZE (rubygem/browser-5.3.1.gem) = 56832
+TIMESTAMP = 1715843884
+SHA256 (rubygem/browser-6.0.0.gem) = 0399f0f12c925e529aa995b096a3824384e00ea2c7241fbb4b707d2a25e87920
+SIZE (rubygem/browser-6.0.0.gem) = 57856
diff --git a/www/rubygem-browser5/Makefile b/www/rubygem-browser5/Makefile
new file mode 100644
index 000000000000..c6eb96c16759
--- /dev/null
+++ b/www/rubygem-browser5/Makefile
@@ -0,0 +1,19 @@
+PORTNAME= browser
+PORTVERSION= 5.3.1
+CATEGORIES= www rubygems
+MASTER_SITES= RG
+PKGNAMESUFFIX= 5
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= Web browser detection for Ruby
+WWW= https://github.com/fnando/browser
+
+LICENSE= MIT
+
+USES= gem
+
+NO_ARCH= yes
+
+PORTSCOUT= limit:^5\.
+
+.include <bsd.port.mk>
diff --git a/www/rubygem-browser5/distinfo b/www/rubygem-browser5/distinfo
new file mode 100644
index 000000000000..6dd217d326ba
--- /dev/null
+++ b/www/rubygem-browser5/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1669462251
+SHA256 (rubygem/browser-5.3.1.gem) = 62745301701ff2c6c5d32d077bb12532b20be261929dcb52c6781ed0d5658b3c
+SIZE (rubygem/browser-5.3.1.gem) = 56832
diff --git a/www/rubygem-browser5/pkg-descr b/www/rubygem-browser5/pkg-descr
new file mode 100644
index 000000000000..31502148a916
--- /dev/null
+++ b/www/rubygem-browser5/pkg-descr
@@ -0,0 +1 @@
+Web browser detection gem for Ruby, includes ActionController integration.
diff --git a/www/rubygem-bullet_train-fields/Makefile b/www/rubygem-bullet_train-fields/Makefile
new file mode 100644
index 000000000000..f37e55af5e06
--- /dev/null
+++ b/www/rubygem-bullet_train-fields/Makefile
@@ -0,0 +1,22 @@
+PORTNAME= bullet_train-fields
+PORTVERSION= 1.7.5
+CATEGORIES= www rubygems
+MASTER_SITES= RG
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= Bullet Train Fields
+WWW= https://github.com/bullet-train-co/bullet_train-core/tree/main/bullet_train-fields
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/MIT-LICENSE
+
+RUN_DEPENDS= rubygem-chronic>=0:devel/rubygem-chronic \
+ rubygem-cloudinary>=0:www/rubygem-cloudinary \
+ rubygem-phonelib>=0:devel/rubygem-phonelib \
+ rubygem-rails71>=6.0.0:www/rubygem-rails71
+
+USES= gem
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/www/rubygem-bullet_train-fields/distinfo b/www/rubygem-bullet_train-fields/distinfo
new file mode 100644
index 000000000000..64037f63762f
--- /dev/null
+++ b/www/rubygem-bullet_train-fields/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1716142210
+SHA256 (rubygem/bullet_train-fields-1.7.5.gem) = 10400293e2d2882d05d216f336f6193643c3a3b801514b906e2ed2c721a44b4c
+SIZE (rubygem/bullet_train-fields-1.7.5.gem) = 20992
diff --git a/www/rubygem-bullet_train-fields/pkg-descr b/www/rubygem-bullet_train-fields/pkg-descr
new file mode 100644
index 000000000000..f6b87613f89e
--- /dev/null
+++ b/www/rubygem-bullet_train-fields/pkg-descr
@@ -0,0 +1,14 @@
+Bullet Train includes a collection of view partials that are intended to DRY-up
+as much redundant presentation logic as possible for different types of form
+fields without taking on a third-party dependency like Formtastic.
+
+These form field partials standardize and centralize the following behavior
+across all form fields that use them:
+- Apply theme styling and classes.
+- Display any error messages for a specific field inline under the field itself.
+- Display a stylized asterisk next to the label of fields that are known to be
+ required.
+- Any labels, placeholder values, and help text are defined in a standardized
+ way in the model's localization Yaml file.
+- For fields presenting a static list of options (e.g. a list of buttons or a
+ select field) the options can be defined in the localization Yaml file.
diff --git a/www/rubygem-bullet_train-has_uuid/Makefile b/www/rubygem-bullet_train-has_uuid/Makefile
new file mode 100644
index 000000000000..dc61b6ba6a8f
--- /dev/null
+++ b/www/rubygem-bullet_train-has_uuid/Makefile
@@ -0,0 +1,19 @@
+PORTNAME= bullet_train-has_uuid
+PORTVERSION= 1.7.5
+CATEGORIES= www rubygems
+MASTER_SITES= RG
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= Bullet Train Has UUID
+WWW= https://github.com/bullet-train-co/bullet_train-core/tree/main/bullet_train-has_uuid
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/MIT-LICENSE
+
+RUN_DEPENDS= rubygem-rails71>=6.0.0:www/rubygem-rails71
+
+USES= gem
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/www/rubygem-bullet_train-has_uuid/distinfo b/www/rubygem-bullet_train-has_uuid/distinfo
new file mode 100644
index 000000000000..9ae4af4a15e3
--- /dev/null
+++ b/www/rubygem-bullet_train-has_uuid/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1716142212
+SHA256 (rubygem/bullet_train-has_uuid-1.7.5.gem) = ba00c7a0c16a8910955f5d5b7dbaea495c51d270fba6ec5624fa11a997e49ae4
+SIZE (rubygem/bullet_train-has_uuid-1.7.5.gem) = 6144
diff --git a/www/rubygem-bullet_train-has_uuid/pkg-descr b/www/rubygem-bullet_train-has_uuid/pkg-descr
new file mode 100644
index 000000000000..221a5fd7914d
--- /dev/null
+++ b/www/rubygem-bullet_train-has_uuid/pkg-descr
@@ -0,0 +1 @@
+BulletTrain's UUID (Universally Unique Identifier) function
diff --git a/www/rubygem-bullet_train-roles/Makefile b/www/rubygem-bullet_train-roles/Makefile
new file mode 100644
index 000000000000..9e8307cae020
--- /dev/null
+++ b/www/rubygem-bullet_train-roles/Makefile
@@ -0,0 +1,21 @@
+PORTNAME= bullet_train-roles
+PORTVERSION= 1.7.5
+CATEGORIES= www rubygems
+MASTER_SITES= RG
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= Yaml-backed ApplicationHash for CanCan Roles
+WWW= https://github.com/bullet-train-co/bullet_train-core/tree/main/bullet_train-roles
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE.txt
+
+RUN_DEPENDS= rubygem-active_hash>=0:devel/rubygem-active_hash \
+ rubygem-activesupport71>=0:devel/rubygem-activesupport71 \
+ rubygem-cancancan>=0:security/rubygem-cancancan
+
+USES= gem
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/www/rubygem-bullet_train-roles/distinfo b/www/rubygem-bullet_train-roles/distinfo
new file mode 100644
index 000000000000..2bf3b1ee1824
--- /dev/null
+++ b/www/rubygem-bullet_train-roles/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1716142214
+SHA256 (rubygem/bullet_train-roles-1.7.5.gem) = 8dca6a5224d9fc3d7c3d2862bc8798aa4902896ea3465d9ef12db98454e9215a
+SIZE (rubygem/bullet_train-roles-1.7.5.gem) = 21504
diff --git a/www/rubygem-bullet_train-roles/pkg-descr b/www/rubygem-bullet_train-roles/pkg-descr
new file mode 100644
index 000000000000..7137999e3848
--- /dev/null
+++ b/www/rubygem-bullet_train-roles/pkg-descr
@@ -0,0 +1,9 @@
+Bullet Train Roles provides a Yaml-based configuration layer on top of
+CanCanCan. You can use this configuration file to simplify the definition of
+many common permissions, while still implementing more complicated permissions
+in CanCanCan's traditional app/model/ability.rb.
+
+Additionally, Bullet Train Roles makes it trivial to assign the same roles and
+associated permissions at different levels in your application. For example, you
+can assign someone administrative privileges at a team level, or only at a
+project level.
diff --git a/www/rubygem-bullet_train-routes/Makefile b/www/rubygem-bullet_train-routes/Makefile
new file mode 100644
index 000000000000..8a096d060fae
--- /dev/null
+++ b/www/rubygem-bullet_train-routes/Makefile
@@ -0,0 +1,19 @@
+PORTNAME= bullet_train-routes
+PORTVERSION= 1.0.0
+CATEGORIES= www rubygems
+MASTER_SITES= RG
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= Black magic for defining model-driven routes
+WWW= https://rubygems.org/gems/bullet_train-routes
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/MIT-LICENSE
+
+RUN_DEPENDS= rubygem-rails71>=6.0.0:www/rubygem-rails71
+
+USES= gem
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/www/rubygem-bullet_train-routes/distinfo b/www/rubygem-bullet_train-routes/distinfo
new file mode 100644
index 000000000000..17ce57feb6c7
--- /dev/null
+++ b/www/rubygem-bullet_train-routes/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1714227836
+SHA256 (rubygem/bullet_train-routes-1.0.0.gem) = 96f47c2d8066dab48c4ceb4f3b71d7c3866cc5c078a6f3a7d27be51e406065cc
+SIZE (rubygem/bullet_train-routes-1.0.0.gem) = 6656
diff --git a/www/rubygem-bullet_train-routes/pkg-descr b/www/rubygem-bullet_train-routes/pkg-descr
new file mode 100644
index 000000000000..7e878ccf7991
--- /dev/null
+++ b/www/rubygem-bullet_train-routes/pkg-descr
@@ -0,0 +1,4 @@
+Bullet Train Routes provides a vastly simplified method for defining shallow,
+nested resource routes in Rails applications when modules and namespaces are
+involved. We do this by introducing a model method to the Rails routing DSL,
+which serves as an interchangable substitute for the resources method.
diff --git a/www/rubygem-bullet_train-scope_validator/Makefile b/www/rubygem-bullet_train-scope_validator/Makefile
new file mode 100644
index 000000000000..388db4bc6d3a
--- /dev/null
+++ b/www/rubygem-bullet_train-scope_validator/Makefile
@@ -0,0 +1,19 @@
+PORTNAME= bullet_train-scope_validator
+PORTVERSION= 1.7.5
+CATEGORIES= www rubygems
+MASTER_SITES= RG
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= Protect belongs_to attributes from ID stuffing
+WWW= https://github.com/bullet-train-co/bullet_train-core/tree/main/bullet_train-scope_validator
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE.txt
+
+RUN_DEPENDS= rubygem-rails71>=0:www/rubygem-rails71
+
+USES= gem
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/www/rubygem-bullet_train-scope_validator/distinfo b/www/rubygem-bullet_train-scope_validator/distinfo
new file mode 100644
index 000000000000..93fc3c7177af
--- /dev/null
+++ b/www/rubygem-bullet_train-scope_validator/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1716142216
+SHA256 (rubygem/bullet_train-scope_validator-1.7.5.gem) = 5cb4fb7ccf5fd1e39447819a0bc948cdfc37c04a0fa46cbc7d8c4ba6343c8823
+SIZE (rubygem/bullet_train-scope_validator-1.7.5.gem) = 11776
diff --git a/www/rubygem-bullet_train-scope_validator/pkg-descr b/www/rubygem-bullet_train-scope_validator/pkg-descr
new file mode 100644
index 000000000000..a84854c94e99
--- /dev/null
+++ b/www/rubygem-bullet_train-scope_validator/pkg-descr
@@ -0,0 +1,2 @@
+Bullet Train Scope Validator provides a simple pattern for protecting belongs_to
+associations from malicious ID stuffing.
diff --git a/www/rubygem-bullet_train-super_load_and_authorize_resource/Makefile b/www/rubygem-bullet_train-super_load_and_authorize_resource/Makefile
new file mode 100644
index 000000000000..2e098d3c52e3
--- /dev/null
+++ b/www/rubygem-bullet_train-super_load_and_authorize_resource/Makefile
@@ -0,0 +1,20 @@
+PORTNAME= bullet_train-super_load_and_authorize_resource
+PORTVERSION= 1.7.5
+CATEGORIES= www rubygems
+MASTER_SITES= RG
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= Bullet Train Super Load And Authorize Resource
+WWW= https://github.com/bullet-train-co/bullet_train-core/tree/main/bullet_train-super_load_and_authorize_resource
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/MIT-LICENSE
+
+RUN_DEPENDS= rubygem-cancancan>=0:security/rubygem-cancancan \
+ rubygem-rails71>=6.0.0:www/rubygem-rails71
+
+USES= gem
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/www/rubygem-bullet_train-super_load_and_authorize_resource/distinfo b/www/rubygem-bullet_train-super_load_and_authorize_resource/distinfo
new file mode 100644
index 000000000000..b5ece2409e04
--- /dev/null
+++ b/www/rubygem-bullet_train-super_load_and_authorize_resource/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1716142218
+SHA256 (rubygem/bullet_train-super_load_and_authorize_resource-1.7.5.gem) = 47f9641b11d9eb8d7195170029e940e9c361422eaf3ae6cca31f3833a0d10691
+SIZE (rubygem/bullet_train-super_load_and_authorize_resource-1.7.5.gem) = 8704
diff --git a/www/rubygem-bullet_train-super_load_and_authorize_resource/pkg-descr b/www/rubygem-bullet_train-super_load_and_authorize_resource/pkg-descr
new file mode 100644
index 000000000000..10a232f58b55
--- /dev/null
+++ b/www/rubygem-bullet_train-super_load_and_authorize_resource/pkg-descr
@@ -0,0 +1,3 @@
+BulletTrain's super load and authorize resource function
+
+It is heavily based on cancancan's load_and_authorize_resource method.
diff --git a/www/rubygem-bullet_train-themes/Makefile b/www/rubygem-bullet_train-themes/Makefile
new file mode 100644
index 000000000000..8355748f2464
--- /dev/null
+++ b/www/rubygem-bullet_train-themes/Makefile
@@ -0,0 +1,21 @@
+PORTNAME= bullet_train-themes
+PORTVERSION= 1.7.5
+CATEGORIES= www rubygems
+MASTER_SITES= RG
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= Bullet Train Themes
+WWW= https://github.com/bullet-train-co/bullet_train-core/tree/main/bullet_train-themes
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/MIT-LICENSE
+
+RUN_DEPENDS= rubygem-bullet_train-fields>=0:www/rubygem-bullet_train-fields \
+ rubygem-nice_partials>=0.9<1:devel/rubygem-nice_partials \
+ rubygem-rails71>=6.0.0:www/rubygem-rails71
+
+USES= gem
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/www/rubygem-bullet_train-themes/distinfo b/www/rubygem-bullet_train-themes/distinfo
new file mode 100644
index 000000000000..8ae3b5bb2407
--- /dev/null
+++ b/www/rubygem-bullet_train-themes/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1716142220
+SHA256 (rubygem/bullet_train-themes-1.7.5.gem) = ba816a005d92ccd5c9a7970e8c28b0f3e09c73d32bea3481b8651b61c7a5db4b
+SIZE (rubygem/bullet_train-themes-1.7.5.gem) = 12288
diff --git a/www/rubygem-bullet_train-themes/pkg-descr b/www/rubygem-bullet_train-themes/pkg-descr
new file mode 100644
index 000000000000..8df8b973ac1e
--- /dev/null
+++ b/www/rubygem-bullet_train-themes/pkg-descr
@@ -0,0 +1,7 @@
+Bullet Train has a theme subsystem designed to allow you the flexibility to
+either extend or completely replace the stock "Light" UI theme. To reduce
+duplication of code across themes, Bullet Train implements the following three
+packages:
+- bullet_train-themes
+- bullet_train-themes-tailwind_css
+- bullet_train-themes-light
diff --git a/www/rubygem-bullet_train/Makefile b/www/rubygem-bullet_train/Makefile
new file mode 100644
index 000000000000..cf0129886ea9
--- /dev/null
+++ b/www/rubygem-bullet_train/Makefile
@@ -0,0 +1,51 @@
+PORTNAME= bullet_train
+PORTVERSION= 1.7.5
+CATEGORIES= www rubygems
+MASTER_SITES= RG
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= Bullet Train, Open Source Ruby on Rails SaaS Framework
+WWW= https://bullettrain.co/ \
+ https://github.com/bullet-train-co/bullet_train-core/tree/main/bullet_train
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/MIT-LICENSE
+
+RUN_DEPENDS= rubygem-awesome_print>=0:devel/rubygem-awesome_print \
+ rubygem-bullet_train-has_uuid>=0:www/rubygem-bullet_train-has_uuid \
+ rubygem-bullet_train-roles>=0:www/rubygem-bullet_train-roles \
+ rubygem-bullet_train-routes>=0:www/rubygem-bullet_train-routes \
+ rubygem-bullet_train-scope_validator>=0:www/rubygem-bullet_train-scope_validator \
+ rubygem-bullet_train-super_load_and_authorize_resource>=0:www/rubygem-bullet_train-super_load_and_authorize_resource \
+ rubygem-bullet_train-themes>=0:www/rubygem-bullet_train-themes \
+ rubygem-cable_ready>=5.0.0<5.1:www/rubygem-cable_ready \
+ rubygem-cancancan>=0:security/rubygem-cancancan \
+ rubygem-colorizer>=0:devel/rubygem-colorizer \
+ rubygem-commonmarker>=1.0.0:textproc/rubygem-commonmarker \
+ rubygem-devise-pwned_password>=0:devel/rubygem-devise-pwned_password \
+ rubygem-devise-rails71>=0:devel/rubygem-devise-rails71 \
+ rubygem-extended_email_reply_parser>=0:mail/rubygem-extended_email_reply_parser \
+ rubygem-fastimage>=0:graphics/rubygem-fastimage \
+ rubygem-figaro>=0:devel/rubygem-figaro \
+ rubygem-hiredis>=0:databases/rubygem-hiredis \
+ rubygem-http_accept_language>=0:devel/rubygem-http_accept_language \
+ rubygem-image_processing>=0:graphics/rubygem-image_processing \
+ rubygem-microscope>=0:databases/rubygem-microscope \
+ rubygem-nice_partials>=0.9<1:devel/rubygem-nice_partials \
+ rubygem-omniauth>=0:security/rubygem-omniauth \
+ rubygem-pagy>=0:devel/rubygem-pagy \
+ rubygem-possessive>=0:www/rubygem-possessive \
+ rubygem-premailer-rails-rails71>=0:mail/rubygem-premailer-rails-rails71 \
+ rubygem-rails71>=6.0.0:www/rubygem-rails71 \
+ rubygem-ruby-openai>=0:www/rubygem-ruby-openai \
+ rubygem-showcase-rails>=0:www/rubygem-showcase-rails \
+ rubygem-sidekiq>=0:devel/rubygem-sidekiq \
+ rubygem-unicode-emoji>=0:devel/rubygem-unicode-emoji \
+ rubygem-valid_email02>=0:mail/rubygem-valid_email02 \
+ rubygem-xxhash>=0:devel/rubygem-xxhash
+
+USES= gem
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/www/rubygem-bullet_train/distinfo b/www/rubygem-bullet_train/distinfo
new file mode 100644
index 000000000000..5d1333ab9327
--- /dev/null
+++ b/www/rubygem-bullet_train/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1716142208
+SHA256 (rubygem/bullet_train-1.7.5.gem) = 61958244d579d942f48e78becefaad8d64e0b38ebabb80b1c483a9317ed6032e
+SIZE (rubygem/bullet_train-1.7.5.gem) = 323584
diff --git a/www/rubygem-bullet_train/pkg-descr b/www/rubygem-bullet_train/pkg-descr
new file mode 100644
index 000000000000..134c2f4dd5d0
--- /dev/null
+++ b/www/rubygem-bullet_train/pkg-descr
@@ -0,0 +1,3 @@
+Bullet Train is an MIT-licensed Rails-based framework that saves you months of
+development by starting you off with all the features that are the same in every
+product, so you can focus on what makes your app unique.
diff --git a/www/rubygem-cable_ready/Makefile b/www/rubygem-cable_ready/Makefile
new file mode 100644
index 000000000000..d2e96a630bbb
--- /dev/null
+++ b/www/rubygem-cable_ready/Makefile
@@ -0,0 +1,25 @@
+PORTNAME= cable_ready
+PORTVERSION= 5.0.5
+CATEGORIES= www rubygems
+MASTER_SITES= RG
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= Out-of-Band Server Triggered DOM Operations
+WWW= https://cableready.stimulusreflex.com/ \
+ https://github.com/stimulusreflex/cable_ready
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE.txt
+
+RUN_DEPENDS= rubygem-actionpack71>=5.2:www/rubygem-actionpack71 \
+ rubygem-actionview71>=5.2:devel/rubygem-actionview71 \
+ rubygem-activesupport71>=5.2:devel/rubygem-activesupport71 \
+ rubygem-observer>=0.1<1:devel/rubygem-observer \
+ rubygem-railties71>=5.2:www/rubygem-railties71 \
+ rubygem-thread-local>=1.1.0:devel/rubygem-thread-local
+
+USES= gem
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/www/rubygem-cable_ready/distinfo b/www/rubygem-cable_ready/distinfo
new file mode 100644
index 000000000000..fdb1ed02c97f
--- /dev/null
+++ b/www/rubygem-cable_ready/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1716142222
+SHA256 (rubygem/cable_ready-5.0.5.gem) = 62f811e9d6f1a397267f7a7ebd11c0be120bed5b13e6fce3124547846cfbfc68
+SIZE (rubygem/cable_ready-5.0.5.gem) = 166912
diff --git a/www/rubygem-cable_ready/pkg-descr b/www/rubygem-cable_ready/pkg-descr
new file mode 100644
index 000000000000..056e9eff3b99
--- /dev/null
+++ b/www/rubygem-cable_ready/pkg-descr
@@ -0,0 +1,4 @@
+CableReady helps you create great real-time user experiences by making it simple
+to trigger client-side DOM changes from server-side Ruby. It establishes a
+standard for interacting with the client via ActionCable web sockets. No need
+for custom JavaScript.
diff --git a/www/rubygem-cloudinary/Makefile b/www/rubygem-cloudinary/Makefile
new file mode 100644
index 000000000000..f90b00ded23c
--- /dev/null
+++ b/www/rubygem-cloudinary/Makefile
@@ -0,0 +1,22 @@
+PORTNAME= cloudinary
+PORTVERSION= 2.0.2
+CATEGORIES= www rubygems
+MASTER_SITES= RG
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= Client library for easily using the Cloudinary service
+WWW= https://cloudinary.com/ \
+ https://cloudinary.com/documentation/rails_integration \
+ https://github.com/cloudinary/cloudinary_gem
+
+LICENSE= MIT
+
+RUN_DEPENDS= rubygem-faraday>=2.0.1<3.0.0:www/rubygem-faraday \
+ rubygem-faraday-follow_redirects>=0.3.0<0.4:www/rubygem-faraday-follow_redirects \
+ rubygem-faraday-multipart>=1.0.4<2:www/rubygem-faraday-multipart
+
+USES= gem
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/www/rubygem-cloudinary/distinfo b/www/rubygem-cloudinary/distinfo
new file mode 100644
index 000000000000..4197ecbaca78
--- /dev/null
+++ b/www/rubygem-cloudinary/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1714227846
+SHA256 (rubygem/cloudinary-2.0.2.gem) = 9c146ccd9bb0b45f3c4330e6c18577c855971cac9de2fa901bb3486885231e59
+SIZE (rubygem/cloudinary-2.0.2.gem) = 148992
diff --git a/www/rubygem-cloudinary/pkg-descr b/www/rubygem-cloudinary/pkg-descr
new file mode 100644
index 000000000000..5f8494ce8719
--- /dev/null
+++ b/www/rubygem-cloudinary/pkg-descr
@@ -0,0 +1,3 @@
+The Cloudinary Ruby on Rails SDK allows you to quickly and easily integrate your
+application with Cloudinary. Effortlessly optimize, transform, upload and manage
+your cloud's assets.
diff --git a/www/rubygem-http-accept/Makefile b/www/rubygem-http-accept/Makefile
index 76a284d79d0d..55c2ff4f63b0 100644
--- a/www/rubygem-http-accept/Makefile
+++ b/www/rubygem-http-accept/Makefile
@@ -8,6 +8,7 @@ COMMENT= Parse Accept and Accept-Language HTTP headers
WWW= https://github.com/socketry/http-accept
LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/license.md
USES= gem
diff --git a/www/rubygem-httparty/Makefile b/www/rubygem-httparty/Makefile
index c4f85664dd91..ab3ba741a244 100644
--- a/www/rubygem-httparty/Makefile
+++ b/www/rubygem-httparty/Makefile
@@ -1,5 +1,5 @@
PORTNAME= httparty
-PORTVERSION= 0.21.0
+PORTVERSION= 0.22.0
CATEGORIES= www rubygems
MASTER_SITES= RG
@@ -11,7 +11,8 @@ WWW= https://www.johnnunemaker.com/httparty/ \
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/MIT-LICENSE
-RUN_DEPENDS= rubygem-mini_mime>=1.0.0:mail/rubygem-mini_mime \
+RUN_DEPENDS= rubygem-csv>=0:devel/rubygem-csv \
+ rubygem-mini_mime>=1.0.0:mail/rubygem-mini_mime \
rubygem-multi_xml>=0.5.2:textproc/rubygem-multi_xml
USES= cpe gem
diff --git a/www/rubygem-httparty/distinfo b/www/rubygem-httparty/distinfo
index c16fcfefdbd8..df6ccd2b7d36 100644
--- a/www/rubygem-httparty/distinfo
+++ b/www/rubygem-httparty/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1682354648
-SHA256 (rubygem/httparty-0.21.0.gem) = 00ef7bf9a71f30a3bff88edeb5b16a34bea883ab67c246b3f0db2d6794fe1214
-SIZE (rubygem/httparty-0.21.0.gem) = 47616
+TIMESTAMP = 1715843886
+SHA256 (rubygem/httparty-0.22.0.gem) = 78652a5c9471cf0093d3b2083c2295c9c8f12b44c65112f1846af2b71430fa6c
+SIZE (rubygem/httparty-0.22.0.gem) = 47616
diff --git a/www/rubygem-httparty021/Makefile b/www/rubygem-httparty021/Makefile
new file mode 100644
index 000000000000..17fbb7ea902b
--- /dev/null
+++ b/www/rubygem-httparty021/Makefile
@@ -0,0 +1,29 @@
+PORTNAME= httparty
+PORTVERSION= 0.21.0
+CATEGORIES= www rubygems
+MASTER_SITES= RG
+PKGNAMESUFFIX= 021
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= Ruby Library that Makes HTTP Fun Again
+WWW= https://www.johnnunemaker.com/httparty/ \
+ https://github.com/jnunemaker/httparty
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/MIT-LICENSE
+
+RUN_DEPENDS= rubygem-mini_mime>=1.0.0:mail/rubygem-mini_mime \
+ rubygem-multi_xml>=0.5.2:textproc/rubygem-multi_xml
+
+USES= cpe gem
+
+NO_ARCH= yes
+
+CPE_VENDOR= john_nunemaker
+
+PORTSCOUT= limit:^0\.21\.
+
+post-install:
+ ${RM} ${STAGEDIR}${PREFIX}/bin/httparty
+
+.include <bsd.port.mk>
diff --git a/www/rubygem-httparty021/distinfo b/www/rubygem-httparty021/distinfo
new file mode 100644
index 000000000000..c16fcfefdbd8
--- /dev/null
+++ b/www/rubygem-httparty021/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1682354648
+SHA256 (rubygem/httparty-0.21.0.gem) = 00ef7bf9a71f30a3bff88edeb5b16a34bea883ab67c246b3f0db2d6794fe1214
+SIZE (rubygem/httparty-0.21.0.gem) = 47616
diff --git a/www/rubygem-httparty021/pkg-descr b/www/rubygem-httparty021/pkg-descr
new file mode 100644
index 000000000000..7e7ee4388b40
--- /dev/null
+++ b/www/rubygem-httparty021/pkg-descr
@@ -0,0 +1,9 @@
+httparty is a Ruby library that makes HTTP fun again!
+
+Its features:
+* Easy get, post, put, delete requests
+* Basic http authentication
+* Default request query string parameters (i.e. for API keys that are needed on
+ each request)
+* Automatic parsing of JSON and XML into ruby hashes based on response
+ content-type
diff --git a/www/rubygem-multipart-post/Makefile b/www/rubygem-multipart-post/Makefile
index c7be2aaa0c18..154e10986f56 100644
--- a/www/rubygem-multipart-post/Makefile
+++ b/www/rubygem-multipart-post/Makefile
@@ -1,13 +1,15 @@
PORTNAME= multipart-post
-PORTVERSION= 2.4.0
+PORTVERSION= 2.4.1
CATEGORIES= www rubygems
MASTER_SITES= RG
MAINTAINER= sunpoet@FreeBSD.org
COMMENT= Ruby Library that Use with Net::HTTP to do multipart form posts
-WWW= https://github.com/socketry/multipart-post
+WWW= https://socketry.github.io/multipart-post/ \
+ https://github.com/socketry/multipart-post
LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/license.md
USES= gem
diff --git a/www/rubygem-multipart-post/distinfo b/www/rubygem-multipart-post/distinfo
index 6c7200559c8e..cdfd92395193 100644
--- a/www/rubygem-multipart-post/distinfo
+++ b/www/rubygem-multipart-post/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1708450634
-SHA256 (rubygem/multipart-post-2.4.0.gem) = c7c48ce6cd32cd7a3bf5fa58fed39cf58e90f75a526de24fbaa91913cab86380
-SIZE (rubygem/multipart-post-2.4.0.gem) = 15872
+TIMESTAMP = 1715843794
+SHA256 (rubygem/multipart-post-2.4.1.gem) = 9872d03a8e552020ca096adadbf5e3cb1cd1cdd6acd3c161136b8a5737cdb4a8
+SIZE (rubygem/multipart-post-2.4.1.gem) = 15872
diff --git a/www/rubygem-passenger/Makefile b/www/rubygem-passenger/Makefile
index 7e74c1cc339d..f9e4c601e98d 100644
--- a/www/rubygem-passenger/Makefile
+++ b/www/rubygem-passenger/Makefile
@@ -1,5 +1,5 @@
PORTNAME= passenger
-PORTVERSION= 6.0.20
+PORTVERSION= 6.0.22
CATEGORIES= www rubygems
MASTER_SITES= RG
diff --git a/www/rubygem-passenger/distinfo b/www/rubygem-passenger/distinfo
index 75249a16e29e..e49f92fadc4f 100644
--- a/www/rubygem-passenger/distinfo
+++ b/www/rubygem-passenger/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1708450640
-SHA256 (rubygem/passenger-6.0.20.gem) = 6383431c00001d3273b1038423af0516a355c521834973773f852613ee91a393
-SIZE (rubygem/passenger-6.0.20.gem) = 8339456
+TIMESTAMP = 1716142224
+SHA256 (rubygem/passenger-6.0.22.gem) = 904e000c942eedf4f64c794ff8468759a3f58be52d4aefd4e6700e6084757cb8
+SIZE (rubygem/passenger-6.0.22.gem) = 8178176
diff --git a/www/rubygem-possessive/Makefile b/www/rubygem-possessive/Makefile
new file mode 100644
index 000000000000..a8e4de2e2951
--- /dev/null
+++ b/www/rubygem-possessive/Makefile
@@ -0,0 +1,17 @@
+PORTNAME= possessive
+PORTVERSION= 1.0.1
+CATEGORIES= www rubygems
+MASTER_SITES= RG
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= Rails plugin that lets you get a possessive form of a string for use on sites
+WWW= https://github.com/bclubb/possessive
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+USES= gem
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/www/rubygem-possessive/distinfo b/www/rubygem-possessive/distinfo
new file mode 100644
index 000000000000..f263a4a572cd
--- /dev/null
+++ b/www/rubygem-possessive/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1714227848
+SHA256 (rubygem/possessive-1.0.1.gem) = f4ff32bbb22c40cf1fa92caf2f3f4a66969e7b0bbff2247ed9424fa23b9363a5
+SIZE (rubygem/possessive-1.0.1.gem) = 6144
diff --git a/www/rubygem-possessive/pkg-descr b/www/rubygem-possessive/pkg-descr
new file mode 100644
index 000000000000..fe88363a8530
--- /dev/null
+++ b/www/rubygem-possessive/pkg-descr
@@ -0,0 +1,2 @@
+possessive is a Rails plugin that lets you get a possessive form of a string for
+use on sites.
diff --git a/www/rubygem-protocol-hpack/Makefile b/www/rubygem-protocol-hpack/Makefile
index 8e05c618e4d9..845b3a842566 100644
--- a/www/rubygem-protocol-hpack/Makefile
+++ b/www/rubygem-protocol-hpack/Makefile
@@ -5,9 +5,11 @@ MASTER_SITES= RG
MAINTAINER= sunpoet@FreeBSD.org
COMMENT= Compresssor and decompressor for HTTP 2.0 HPACK
-WWW= https://github.com/socketry/protocol-hpack
+WWW= https://socketry.github.io/protocol-hpack/ \
+ https://github.com/socketry/protocol-hpack
LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/license.md
USES= gem
diff --git a/www/rubygem-protocol-http/Makefile b/www/rubygem-protocol-http/Makefile
index cdb00973da61..f4e889d55dd3 100644
--- a/www/rubygem-protocol-http/Makefile
+++ b/www/rubygem-protocol-http/Makefile
@@ -1,11 +1,12 @@
PORTNAME= protocol-http
-PORTVERSION= 0.26.4
+PORTVERSION= 0.26.5
CATEGORIES= www rubygems
MASTER_SITES= RG
MAINTAINER= sunpoet@FreeBSD.org
COMMENT= Provides abstractions to handle HTTP protocols
-WWW= https://github.com/socketry/protocol-http
+WWW= https://socketry.github.io/protocol-http/ \
+ https://github.com/socketry/protocol-http
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/license.md
diff --git a/www/rubygem-protocol-http/distinfo b/www/rubygem-protocol-http/distinfo
index 9bcb2c43f7a5..4809cb997eca 100644
--- a/www/rubygem-protocol-http/distinfo
+++ b/www/rubygem-protocol-http/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1713528662
-SHA256 (rubygem/protocol-http-0.26.4.gem) = b9766c9e1a571f48602103fe995ee5009045e33c2972ef618893079f914bffe1
-SIZE (rubygem/protocol-http-0.26.4.gem) = 26624
+TIMESTAMP = 1715843796
+SHA256 (rubygem/protocol-http-0.26.5.gem) = dded89c188140b9faeb0f2bb2dcf2410626e280c8bb5b8c7a75df71d35f4ca76
+SIZE (rubygem/protocol-http-0.26.5.gem) = 26624
diff --git a/www/rubygem-protocol-http1/Makefile b/www/rubygem-protocol-http1/Makefile
index ee901cdb3ad4..afe9e5c2ccf0 100644
--- a/www/rubygem-protocol-http1/Makefile
+++ b/www/rubygem-protocol-http1/Makefile
@@ -1,11 +1,12 @@
PORTNAME= protocol-http1
-PORTVERSION= 0.19.0
+PORTVERSION= 0.19.1
CATEGORIES= www rubygems
MASTER_SITES= RG
MAINTAINER= sunpoet@FreeBSD.org
COMMENT= Low level implementation of the HTTP/1 protocol
-WWW= https://github.com/socketry/protocol-http1
+WWW= https://socketry.github.io/protocol-http1/ \
+ https://github.com/socketry/protocol-http1
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/license.md
diff --git a/www/rubygem-protocol-http1/distinfo b/www/rubygem-protocol-http1/distinfo
index 4394b746df47..dfea09a4f509 100644
--- a/www/rubygem-protocol-http1/distinfo
+++ b/www/rubygem-protocol-http1/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1712427998
-SHA256 (rubygem/protocol-http1-0.19.0.gem) = 996d7a85286abc2d4c26eb77298699dbb2b8863c0cfdc0b8c641d35f5ca86a98
-SIZE (rubygem/protocol-http1-0.19.0.gem) = 16896
+TIMESTAMP = 1715843798
+SHA256 (rubygem/protocol-http1-0.19.1.gem) = 85335a56a0f3d4d13c5c8ae08bfeffb09a5cf8fd0308a6ce1f42a11c09cdf485
+SIZE (rubygem/protocol-http1-0.19.1.gem) = 16896
diff --git a/www/rubygem-protocol-http2/Makefile b/www/rubygem-protocol-http2/Makefile
index 0f8930e15d1e..189352327a91 100644
--- a/www/rubygem-protocol-http2/Makefile
+++ b/www/rubygem-protocol-http2/Makefile
@@ -1,11 +1,12 @@
PORTNAME= protocol-http2
-PORTVERSION= 0.16.0
+PORTVERSION= 0.17.0
CATEGORIES= www rubygems
MASTER_SITES= RG
MAINTAINER= sunpoet@FreeBSD.org
COMMENT= Low level implementation of the HTTP/2 protocol
-WWW= https://github.com/socketry/protocol-http2
+WWW= https://socketry.github.io/protocol-http2/ \
+ https://github.com/socketry/protocol-http2
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/license.md
diff --git a/www/rubygem-protocol-http2/distinfo b/www/rubygem-protocol-http2/distinfo
index e73de7e06c29..b68d04415d44 100644
--- a/www/rubygem-protocol-http2/distinfo
+++ b/www/rubygem-protocol-http2/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1708450648
-SHA256 (rubygem/protocol-http2-0.16.0.gem) = 613947d27ae3edeece4e42ed26d6b8b26f0afc23da7dd6c487f8a19f9f5d6232
-SIZE (rubygem/protocol-http2-0.16.0.gem) = 28160
+TIMESTAMP = 1715843800
+SHA256 (rubygem/protocol-http2-0.17.0.gem) = ee059852500fed666b7783c363283ac97dc9a30e9a9f92384688c5fd9ed47885
+SIZE (rubygem/protocol-http2-0.17.0.gem) = 28160
diff --git a/www/rubygem-protocol-rack/Makefile b/www/rubygem-protocol-rack/Makefile
index 4df492290c30..d24c22c0b560 100644
--- a/www/rubygem-protocol-rack/Makefile
+++ b/www/rubygem-protocol-rack/Makefile
@@ -1,13 +1,15 @@
PORTNAME= protocol-rack
-PORTVERSION= 0.5.0
+PORTVERSION= 0.5.1
CATEGORIES= www rubygems
MASTER_SITES= RG
MAINTAINER= sunpoet@FreeBSD.org
COMMENT= Implementation of the Rack protocol/specification
-WWW= https://github.com/socketry/protocol-rack
+WWW= https://socketry.github.io/protocol-rack/ \
+ https://github.com/socketry/protocol-rack
LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/license.md
RUN_DEPENDS= rubygem-protocol-http>=0.23<1:www/rubygem-protocol-http \
rubygem-rack>=1.0,3:www/rubygem-rack
diff --git a/www/rubygem-protocol-rack/distinfo b/www/rubygem-protocol-rack/distinfo
index 71aac5dfeafa..7e766e513ea5 100644
--- a/www/rubygem-protocol-rack/distinfo
+++ b/www/rubygem-protocol-rack/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1712330699
-SHA256 (rubygem/protocol-rack-0.5.0.gem) = 4b03372696aab6448d9061ced36b68eb1bdf0d6594a97897615577c9f721dad2
-SIZE (rubygem/protocol-rack-0.5.0.gem) = 17920
+TIMESTAMP = 1715843802
+SHA256 (rubygem/protocol-rack-0.5.1.gem) = bbd12e3869b07614b5b381739972e0feb90072fc5f250a11244fbff54a4906ad
+SIZE (rubygem/protocol-rack-0.5.1.gem) = 17920
diff --git a/www/rubygem-protocol-websocket/Makefile b/www/rubygem-protocol-websocket/Makefile
index 81b5d7f0de9a..c0c398bf47a1 100644
--- a/www/rubygem-protocol-websocket/Makefile
+++ b/www/rubygem-protocol-websocket/Makefile
@@ -1,13 +1,15 @@
PORTNAME= protocol-websocket
-PORTVERSION= 0.12.1
+PORTVERSION= 0.13.0
CATEGORIES= www rubygems
MASTER_SITES= RG
MAINTAINER= sunpoet@FreeBSD.org
COMMENT= Low-level implementation of the WebSocket protocol
-WWW= https://github.com/socketry/protocol-websocket
+WWW= https://socketry.github.io/protocol-websocket/ \
+ https://github.com/socketry/protocol-websocket
LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/license.md
RUN_DEPENDS= rubygem-protocol-http>=0.2<1:www/rubygem-protocol-http
diff --git a/www/rubygem-protocol-websocket/distinfo b/www/rubygem-protocol-websocket/distinfo
index 965d9b518cbd..154912fb2b35 100644
--- a/www/rubygem-protocol-websocket/distinfo
+++ b/www/rubygem-protocol-websocket/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1696753758
-SHA256 (rubygem/protocol-websocket-0.12.1.gem) = a2a15e2d1d3fb8834bf328b48ef8a068f6312409014f78d6ace33f0dc828d97b
-SIZE (rubygem/protocol-websocket-0.12.1.gem) = 18432
+TIMESTAMP = 1716142226
+SHA256 (rubygem/protocol-websocket-0.13.0.gem) = 70ba4d6a9079ef57753b9b6544f26bcb2523c1174cd5f9cff05ae27754d8ef77
+SIZE (rubygem/protocol-websocket-0.13.0.gem) = 18432
diff --git a/www/rubygem-rack-contrib/Makefile b/www/rubygem-rack-contrib/Makefile
index 78703cee9388..b0175a7ad2f5 100644
--- a/www/rubygem-rack-contrib/Makefile
+++ b/www/rubygem-rack-contrib/Makefile
@@ -1,5 +1,6 @@
PORTNAME= rack-contrib
PORTVERSION= 2.4.0
+PORTREVISION= 1
CATEGORIES= www rubygems
MASTER_SITES= RG
@@ -10,7 +11,7 @@ WWW= https://github.com/rack/rack-contrib
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/COPYING
-RUN_DEPENDS= rubygem-rack22>=0,3<4,3:www/rubygem-rack22
+RUN_DEPENDS= rubygem-rack>=0,3<4,3:www/rubygem-rack
USES= gem
diff --git a/www/rubygem-rack/Makefile b/www/rubygem-rack/Makefile
index 317ec913aaa7..d7fb94114d67 100644
--- a/www/rubygem-rack/Makefile
+++ b/www/rubygem-rack/Makefile
@@ -1,5 +1,5 @@
PORTNAME= rack
-PORTVERSION= 3.0.10
+PORTVERSION= 3.0.11
PORTEPOCH= 3
CATEGORIES= www rubygems
MASTER_SITES= RG
diff --git a/www/rubygem-rack/distinfo b/www/rubygem-rack/distinfo
index 738024976d22..1a39486b147a 100644
--- a/www/rubygem-rack/distinfo
+++ b/www/rubygem-rack/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1711466402
-SHA256 (rubygem/rack-3.0.10.gem) = 2fb98cf24147ad6a114a13cac8dd45531f451d2afd5cccabfb346b3aa58c7574
-SIZE (rubygem/rack-3.0.10.gem) = 109056
+TIMESTAMP = 1715652667
+SHA256 (rubygem/rack-3.0.11.gem) = a08473678160760d9085ebe14508a42add18cde4217107b4b1aa01c8f14ff98c
+SIZE (rubygem/rack-3.0.11.gem) = 109056
diff --git a/www/rubygem-rack16/Makefile b/www/rubygem-rack16/Makefile
index cf10646eacc0..3b39908b2376 100644
--- a/www/rubygem-rack16/Makefile
+++ b/www/rubygem-rack16/Makefile
@@ -24,7 +24,7 @@ SHEBANG_LANG= rackup
rackup_OLD_CMD= ../../bin/rackup
rackup_CMD= ${LOCALBASE}/bin/rackup
-# Avoid CONFLICTS_INSTALL with www/rubygem-rack
+# Avoid CONFLICTS_INSTALL with www/rubygem-rackup
post-install:
${RM} ${STAGEDIR}${PREFIX}/bin/rackup
diff --git a/www/rubygem-rack22/Makefile b/www/rubygem-rack22/Makefile
index b7669b5d4191..892d6a5578cd 100644
--- a/www/rubygem-rack22/Makefile
+++ b/www/rubygem-rack22/Makefile
@@ -1,5 +1,6 @@
PORTNAME= rack
PORTVERSION= 2.2.9
+PORTREVISION= 1
PORTEPOCH= 3
CATEGORIES= www rubygems
MASTER_SITES= RG
@@ -16,10 +17,12 @@ USES= cpe gem
NO_ARCH= yes
-PLIST_FILES= bin/rackup
-
CPE_VENDOR= rack_project
PORTSCOUT= limit:^2\.2\.
+# Avoid CONFLICTS_INSTALL with www/rubygem-rackup
+post-install:
+ ${RM} ${STAGEDIR}${PREFIX}/bin/rackup
+
.include <bsd.port.mk>
diff --git a/www/rubygem-rails70/Makefile b/www/rubygem-rails70/Makefile
index 2f1f497cc777..2deb92487606 100644
--- a/www/rubygem-rails70/Makefile
+++ b/www/rubygem-rails70/Makefile
@@ -1,5 +1,5 @@
PORTNAME= rails
-PORTVERSION= 7.0.8.1
+PORTVERSION= 7.0.8.3
CATEGORIES= www rubygems
MASTER_SITES= RG
PKGNAMESUFFIX= 70
diff --git a/www/rubygem-rails70/distinfo b/www/rubygem-rails70/distinfo
index 2cb696103bb5..77985bc2930c 100644
--- a/www/rubygem-rails70/distinfo
+++ b/www/rubygem-rails70/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1709391042
-SHA256 (rubygem/rails-7.0.8.1.gem) = 7deb37884ac5e9afeaeb6ad503c56e819f68e53746d621b2187322f874ba2ded
-SIZE (rubygem/rails-7.0.8.1.gem) = 7168
+TIMESTAMP = 1716142252
+SHA256 (rubygem/rails-7.0.8.3.gem) = cf9d41d82e1f556edf5225c324402f3159aad7e2c2e682a80f2d272aa568d8c6
+SIZE (rubygem/rails-7.0.8.3.gem) = 7168
diff --git a/www/rubygem-rails71/Makefile b/www/rubygem-rails71/Makefile
index ba9bbd5f6931..d5e8d1c65af7 100644
--- a/www/rubygem-rails71/Makefile
+++ b/www/rubygem-rails71/Makefile
@@ -1,5 +1,5 @@
PORTNAME= rails
-PORTVERSION= 7.1.3.2
+PORTVERSION= 7.1.3.3
CATEGORIES= www rubygems
MASTER_SITES= RG
PKGNAMESUFFIX= 71
diff --git a/www/rubygem-rails71/distinfo b/www/rubygem-rails71/distinfo
index 0c5548b8ab27..5c59fc430e98 100644
--- a/www/rubygem-rails71/distinfo
+++ b/www/rubygem-rails71/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1709391068
-SHA256 (rubygem/rails-7.1.3.2.gem) = 2d787a65e87b70ee65f9d1cb644aaa5bb80eea12298982f474da949772c1bfa0
-SIZE (rubygem/rails-7.1.3.2.gem) = 7168
+TIMESTAMP = 1716142278
+SHA256 (rubygem/rails-7.1.3.3.gem) = b65188cdca517905f425e984d50f080500cbaf5d17c6b56518e0a6baec9382de
+SIZE (rubygem/rails-7.1.3.3.gem) = 7168
diff --git a/www/rubygem-railties70/Makefile b/www/rubygem-railties70/Makefile
index aa02dfd46995..32af62c0bf08 100644
--- a/www/rubygem-railties70/Makefile
+++ b/www/rubygem-railties70/Makefile
@@ -1,5 +1,5 @@
PORTNAME= railties
-PORTVERSION= 7.0.8.1
+PORTVERSION= 7.0.8.3
CATEGORIES= www rubygems
MASTER_SITES= RG
PKGNAMESUFFIX= 70
diff --git a/www/rubygem-railties70/distinfo b/www/rubygem-railties70/distinfo
index 636b0c599644..38a44745dba5 100644
--- a/www/rubygem-railties70/distinfo
+++ b/www/rubygem-railties70/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1709391044
-SHA256 (rubygem/railties-7.0.8.1.gem) = c2e4e3617defafad5c1c2c5761d697873197422ec49f58a96d6728f3a729ea21
-SIZE (rubygem/railties-7.0.8.1.gem) = 161792
+TIMESTAMP = 1716142254
+SHA256 (rubygem/railties-7.0.8.3.gem) = b9cc1ad911f8e929bd63b5a3cdb7ecbff4e6b6579aa1736b0923d05c0088b36b
+SIZE (rubygem/railties-7.0.8.3.gem) = 161792
diff --git a/www/rubygem-railties71/Makefile b/www/rubygem-railties71/Makefile
index ad456401fb9a..7caa79f2c844 100644
--- a/www/rubygem-railties71/Makefile
+++ b/www/rubygem-railties71/Makefile
@@ -1,5 +1,5 @@
PORTNAME= railties
-PORTVERSION= 7.1.3.2
+PORTVERSION= 7.1.3.3
CATEGORIES= www rubygems
MASTER_SITES= RG
PKGNAMESUFFIX= 71
diff --git a/www/rubygem-railties71/distinfo b/www/rubygem-railties71/distinfo
index a3ec010c88c0..71dc60a28c4f 100644
--- a/www/rubygem-railties71/distinfo
+++ b/www/rubygem-railties71/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1709391070
-SHA256 (rubygem/railties-7.1.3.2.gem) = 59fcd55cbfb90044ea4c3e9fdea2cf5687385c138cacc4a258a46508b7d36510
-SIZE (rubygem/railties-7.1.3.2.gem) = 181248
+TIMESTAMP = 1716142280
+SHA256 (rubygem/railties-7.1.3.3.gem) = fd87f22d653fb7ea246432ac7ed8391a39973f79dcff5e3424b2e3ed2361b10b
+SIZE (rubygem/railties-7.1.3.3.gem) = 181760
diff --git a/www/rubygem-responders-rails71/Makefile b/www/rubygem-responders-rails71/Makefile
new file mode 100644
index 000000000000..b412cfee80ef
--- /dev/null
+++ b/www/rubygem-responders-rails71/Makefile
@@ -0,0 +1,21 @@
+PORTNAME= responders
+PORTVERSION= 3.1.1
+CATEGORIES= www rubygems
+MASTER_SITES= RG
+PKGNAMESUFFIX= -rails71
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= Simple Ruby DSL for making HTTP requests
+WWW= https://github.com/heartcombo/responders
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/MIT-LICENSE
+
+RUN_DEPENDS= rubygem-actionpack71>=5.2:www/rubygem-actionpack71 \
+ rubygem-railties71>=5.2:www/rubygem-railties71
+
+USES= gem
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/www/rubygem-responders-rails71/distinfo b/www/rubygem-responders-rails71/distinfo
new file mode 100644
index 000000000000..6731238316f3
--- /dev/null
+++ b/www/rubygem-responders-rails71/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1714227796
+SHA256 (rubygem/responders-3.1.1.gem) = 92f2a87e09028347368639cfb468f5fefa745cb0dc2377ef060db1cdd79a341a
+SIZE (rubygem/responders-3.1.1.gem) = 20480
diff --git a/www/rubygem-responders-rails71/pkg-descr b/www/rubygem-responders-rails71/pkg-descr
new file mode 100644
index 000000000000..22f8e4f8553b
--- /dev/null
+++ b/www/rubygem-responders-rails71/pkg-descr
@@ -0,0 +1 @@
+Responders provides a set of responders modules to dry up your Rails app.
diff --git a/www/rubygem-roda/Makefile b/www/rubygem-roda/Makefile
index 73ec147f33ea..80ee5a60fb8e 100644
--- a/www/rubygem-roda/Makefile
+++ b/www/rubygem-roda/Makefile
@@ -1,5 +1,5 @@
PORTNAME= roda
-PORTVERSION= 3.79.0
+PORTVERSION= 3.80.0
CATEGORIES= www rubygems
MASTER_SITES= RG
diff --git a/www/rubygem-roda/distinfo b/www/rubygem-roda/distinfo
index fcbc648ebd83..f46b2d5856e3 100644
--- a/www/rubygem-roda/distinfo
+++ b/www/rubygem-roda/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1713001226
-SHA256 (rubygem/roda-3.79.0.gem) = 8afac3e9c660fef1caa03a5df049823dedf3aa2c4c73ce3ffd644c03b5122718
-SIZE (rubygem/roda-3.79.0.gem) = 238080
+TIMESTAMP = 1715843888
+SHA256 (rubygem/roda-3.80.0.gem) = bf90951c2e3df41b9e0675a984dbc6ef01b274c5fe25fcef482b9606a876c8ca
+SIZE (rubygem/roda-3.80.0.gem) = 240128
diff --git a/www/rubygem-rqrcode/Makefile b/www/rubygem-rqrcode/Makefile
index ffe76de90d1d..da3cebc819fb 100644
--- a/www/rubygem-rqrcode/Makefile
+++ b/www/rubygem-rqrcode/Makefile
@@ -12,9 +12,9 @@ LICENSE_FILE= ${WRKSRC}/LICENSE.txt
RUN_DEPENDS= rubygem-chunky_png>=1.0<2:graphics/rubygem-chunky_png \
rubygem-rqrcode_core>=1.0<2:www/rubygem-rqrcode_core
-
-NO_ARCH= yes
USES= gem
+NO_ARCH= yes
+
.include <bsd.port.mk>
diff --git a/www/rubygem-ruby-openai/Makefile b/www/rubygem-ruby-openai/Makefile
index 847cef5f2b49..f6a724a9d1c3 100644
--- a/www/rubygem-ruby-openai/Makefile
+++ b/www/rubygem-ruby-openai/Makefile
@@ -1,5 +1,5 @@
PORTNAME= ruby-openai
-PORTVERSION= 6.5.0
+PORTVERSION= 7.0.1
CATEGORIES= www rubygems
MASTER_SITES= RG
diff --git a/www/rubygem-ruby-openai/distinfo b/www/rubygem-ruby-openai/distinfo
index 2f710a4b30fe..d220e59937c5 100644
--- a/www/rubygem-ruby-openai/distinfo
+++ b/www/rubygem-ruby-openai/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1712084574
-SHA256 (rubygem/ruby-openai-6.5.0.gem) = 4ab64403728ab5f2a95d448fac6b569fd3758e2d739d4b4e2bcf6c7100df7f88
-SIZE (rubygem/ruby-openai-6.5.0.gem) = 30208
+TIMESTAMP = 1715843804
+SHA256 (rubygem/ruby-openai-7.0.1.gem) = d0b439edf03b917f004a336ecad66a88894d8801ebfe44bbf10d104684aaa67b
+SIZE (rubygem/ruby-openai-7.0.1.gem) = 32256
diff --git a/www/rubygem-selenium-webdriver/Makefile b/www/rubygem-selenium-webdriver/Makefile
index c82bfc848e33..af885e23b25b 100644
--- a/www/rubygem-selenium-webdriver/Makefile
+++ b/www/rubygem-selenium-webdriver/Makefile
@@ -1,5 +1,5 @@
PORTNAME= selenium-webdriver
-PORTVERSION= 4.19.0
+PORTVERSION= 4.21.1
CATEGORIES= www rubygems
MASTER_SITES= RG
diff --git a/www/rubygem-selenium-webdriver/distinfo b/www/rubygem-selenium-webdriver/distinfo
index bcc26a29d7bb..a92800214e7f 100644
--- a/www/rubygem-selenium-webdriver/distinfo
+++ b/www/rubygem-selenium-webdriver/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1711860621
-SHA256 (rubygem/selenium-webdriver-4.19.0.gem) = 4c8bd1d6016a456154b4ba71a3bb4d532a0ae185a38acf9cec0acbd38b4e5066
-SIZE (rubygem/selenium-webdriver-4.19.0.gem) = 9561600
+TIMESTAMP = 1716142228
+SHA256 (rubygem/selenium-webdriver-4.21.1.gem) = c30b64014532fc5156c60797985f839f36adbe60ff4653e7112b008dc1c83263
+SIZE (rubygem/selenium-webdriver-4.21.1.gem) = 8511488
diff --git a/www/rubygem-showcase-rails/Makefile b/www/rubygem-showcase-rails/Makefile
new file mode 100644
index 000000000000..b05db6cac4cc
--- /dev/null
+++ b/www/rubygem-showcase-rails/Makefile
@@ -0,0 +1,19 @@
+PORTNAME= showcase-rails
+PORTVERSION= 0.4.6
+CATEGORIES= www rubygems
+MASTER_SITES= RG
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= Showcase helps you show off and document your partials, components, view helpers and Stimulus controllers
+WWW= https://github.com/bullet-train-co/showcase
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/MIT-LICENSE
+
+RUN_DEPENDS= rubygem-rails71>=6.1.0:www/rubygem-rails71
+
+USES= gem
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/www/rubygem-showcase-rails/distinfo b/www/rubygem-showcase-rails/distinfo
new file mode 100644
index 000000000000..def8da35fd1c
--- /dev/null
+++ b/www/rubygem-showcase-rails/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1714227850
+SHA256 (rubygem/showcase-rails-0.4.6.gem) = 851dfbafc260359bab8f078603638c4e3efd84e44dd1249ecf1a6c94aa7df2b3
+SIZE (rubygem/showcase-rails-0.4.6.gem) = 22016
diff --git a/www/rubygem-showcase-rails/pkg-descr b/www/rubygem-showcase-rails/pkg-descr
new file mode 100644
index 000000000000..dce460334534
--- /dev/null
+++ b/www/rubygem-showcase-rails/pkg-descr
@@ -0,0 +1,2 @@
+Showcase lets you build previews for your partials, components, view helpers,
+Stimulus controllers and more -- Rails engines included!
diff --git a/www/rustypaste-cli/Makefile b/www/rustypaste-cli/Makefile
index d0057a4858f5..683683101658 100644
--- a/www/rustypaste-cli/Makefile
+++ b/www/rustypaste-cli/Makefile
@@ -1,7 +1,6 @@
PORTNAME= rustypaste-cli
DISTVERSIONPREFIX= v
-DISTVERSION= 0.8.0
-PORTREVISION= 5
+DISTVERSION= 0.9.0
CATEGORIES= www
MAINTAINER= DtxdF@disroot.org
diff --git a/www/rustypaste-cli/Makefile.crates b/www/rustypaste-cli/Makefile.crates
index 59654afdc083..7ee711926366 100644
--- a/www/rustypaste-cli/Makefile.crates
+++ b/www/rustypaste-cli/Makefile.crates
@@ -1,120 +1,110 @@
-CARGO_CRATES= adler-1.0.2 \
- base64-0.21.2 \
- bitflags-1.3.2 \
- bitflags-2.4.0 \
- bumpalo-3.13.0 \
- cc-1.0.82 \
- cfg-if-1.0.0 \
- colored-2.0.4 \
- console-0.15.7 \
- core-foundation-0.9.3 \
- core-foundation-sys-0.8.4 \
- crc32fast-1.3.2 \
- dirs-next-2.0.0 \
- dirs-sys-next-0.1.2 \
- encode_unicode-0.3.6 \
- equivalent-1.0.1 \
- errno-0.3.2 \
- errno-dragonfly-0.1.2 \
- fastrand-2.0.0 \
- flate2-1.0.26 \
- form_urlencoded-1.2.0 \
- getopts-0.2.21 \
- getrandom-0.2.10 \
- hashbrown-0.14.0 \
- hermit-abi-0.3.2 \
- idna-0.4.0 \
- indexmap-2.0.0 \
- indicatif-0.17.6 \
- instant-0.1.12 \
- is-terminal-0.4.9 \
- itoa-1.0.9 \
- js-sys-0.3.64 \
- lazy_static-1.4.0 \
- libc-0.2.147 \
- linux-raw-sys-0.4.5 \
- log-0.4.20 \
- memchr-2.5.0 \
- mime-0.3.17 \
- mime_guess-2.0.4 \
- miniz_oxide-0.7.1 \
- multipart-0.18.0 \
- number_prefix-0.4.0 \
- once_cell-1.18.0 \
- openssl-probe-0.1.5 \
- percent-encoding-2.3.0 \
- portable-atomic-1.4.2 \
- ppv-lite86-0.2.17 \
- proc-macro2-1.0.66 \
- quote-1.0.32 \
- rand-0.8.5 \
- rand_chacha-0.3.1 \
- rand_core-0.6.4 \
- redox_syscall-0.2.16 \
- redox_syscall-0.3.5 \
- redox_users-0.4.3 \
- ring-0.16.20 \
- rustix-0.38.8 \
- rustls-0.21.6 \
- rustls-native-certs-0.6.3 \
- rustls-pemfile-1.0.3 \
- rustls-webpki-0.100.1 \
- rustls-webpki-0.101.3 \
- ryu-1.0.15 \
- schannel-0.1.22 \
- sct-0.7.0 \
- security-framework-2.9.2 \
- security-framework-sys-2.9.1 \
- serde-1.0.188 \
- serde_derive-1.0.188 \
- serde_json-1.0.104 \
- serde_spanned-0.6.3 \
- spin-0.5.2 \
- syn-2.0.28 \
- tempfile-3.7.1 \
- thiserror-1.0.48 \
- thiserror-impl-1.0.48 \
- tinyvec-1.6.0 \
- tinyvec_macros-0.1.1 \
- toml-0.7.6 \
- toml_datetime-0.6.3 \
- toml_edit-0.19.14 \
- unicase-2.6.0 \
- unicode-bidi-0.3.13 \
- unicode-ident-1.0.11 \
- unicode-normalization-0.1.22 \
- unicode-width-0.1.10 \
- untrusted-0.7.1 \
- ureq-2.7.1 \
- url-2.4.1 \
- version_check-0.9.4 \
- wasi-0.11.0+wasi-snapshot-preview1 \
- wasm-bindgen-0.2.87 \
- wasm-bindgen-backend-0.2.87 \
- wasm-bindgen-macro-0.2.87 \
- wasm-bindgen-macro-support-0.2.87 \
- wasm-bindgen-shared-0.2.87 \
- web-sys-0.3.64 \
- webpki-roots-0.23.1 \
- winapi-0.3.9 \
- winapi-i686-pc-windows-gnu-0.4.0 \
- winapi-x86_64-pc-windows-gnu-0.4.0 \
- windows-sys-0.45.0 \
- windows-sys-0.48.0 \
- windows-targets-0.42.2 \
- windows-targets-0.48.1 \
- windows_aarch64_gnullvm-0.42.2 \
- windows_aarch64_gnullvm-0.48.0 \
- windows_aarch64_msvc-0.42.2 \
- windows_aarch64_msvc-0.48.0 \
- windows_i686_gnu-0.42.2 \
- windows_i686_gnu-0.48.0 \
- windows_i686_msvc-0.42.2 \
- windows_i686_msvc-0.48.0 \
- windows_x86_64_gnu-0.42.2 \
- windows_x86_64_gnu-0.48.0 \
- windows_x86_64_gnullvm-0.42.2 \
- windows_x86_64_gnullvm-0.48.0 \
- windows_x86_64_msvc-0.42.2 \
- windows_x86_64_msvc-0.48.0 \
- winnow-0.5.10
+CARGO_CRATES= adler-1.0.2 \
+ base64-0.21.7 \
+ bitflags-1.3.2 \
+ bitflags-2.5.0 \
+ cc-1.0.90 \
+ cfg-if-1.0.0 \
+ colored-2.1.0 \
+ console-0.15.8 \
+ core-foundation-0.9.4 \
+ core-foundation-sys-0.8.6 \
+ crc32fast-1.4.0 \
+ dirs-next-2.0.0 \
+ dirs-sys-next-0.1.2 \
+ encode_unicode-0.3.6 \
+ equivalent-1.0.1 \
+ errno-0.3.8 \
+ fastrand-2.0.2 \
+ flate2-1.0.28 \
+ form_urlencoded-1.2.1 \
+ getopts-0.2.21 \
+ getrandom-0.2.12 \
+ hashbrown-0.14.3 \
+ idna-0.5.0 \
+ indexmap-2.2.6 \
+ indicatif-0.17.8 \
+ instant-0.1.12 \
+ itoa-1.0.11 \
+ lazy_static-1.4.0 \
+ libc-0.2.153 \
+ libredox-0.0.1 \
+ linux-raw-sys-0.4.13 \
+ log-0.4.21 \
+ memchr-2.7.1 \
+ mime-0.3.17 \
+ mime_guess-2.0.4 \
+ miniz_oxide-0.7.2 \
+ multipart-0.18.0 \
+ number_prefix-0.4.0 \
+ once_cell-1.19.0 \
+ openssl-probe-0.1.5 \
+ percent-encoding-2.3.1 \
+ portable-atomic-1.6.0 \
+ ppv-lite86-0.2.17 \
+ proc-macro2-1.0.79 \
+ quote-1.0.35 \
+ rand-0.8.5 \
+ rand_chacha-0.3.1 \
+ rand_core-0.6.4 \
+ redox_syscall-0.4.1 \
+ redox_users-0.4.4 \
+ ring-0.17.8 \
+ rustix-0.38.32 \
+ rustls-0.22.3 \
+ rustls-native-certs-0.7.0 \
+ rustls-pemfile-2.1.1 \
+ rustls-pki-types-1.4.1 \
+ rustls-webpki-0.102.2 \
+ ryu-1.0.17 \
+ schannel-0.1.23 \
+ security-framework-2.9.2 \
+ security-framework-sys-2.9.1 \
+ serde-1.0.197 \
+ serde_derive-1.0.197 \
+ serde_json-1.0.115 \
+ serde_spanned-0.6.5 \
+ spin-0.9.8 \
+ subtle-2.5.0 \
+ syn-2.0.55 \
+ tempfile-3.10.1 \
+ thiserror-1.0.58 \
+ thiserror-impl-1.0.58 \
+ tinyvec-1.6.0 \
+ tinyvec_macros-0.1.1 \
+ toml-0.8.12 \
+ toml_datetime-0.6.5 \
+ toml_edit-0.22.9 \
+ unicase-2.7.0 \
+ unicode-bidi-0.3.15 \
+ unicode-ident-1.0.12 \
+ unicode-normalization-0.1.23 \
+ unicode-width-0.1.11 \
+ untrusted-0.9.0 \
+ ureq-2.9.6 \
+ url-2.5.0 \
+ version_check-0.9.4 \
+ wasi-0.11.0+wasi-snapshot-preview1 \
+ webpki-roots-0.26.1 \
+ winapi-0.3.9 \
+ winapi-i686-pc-windows-gnu-0.4.0 \
+ winapi-x86_64-pc-windows-gnu-0.4.0 \
+ windows-sys-0.48.0 \
+ windows-sys-0.52.0 \
+ windows-targets-0.48.5 \
+ windows-targets-0.52.4 \
+ windows_aarch64_gnullvm-0.48.5 \
+ windows_aarch64_gnullvm-0.52.4 \
+ windows_aarch64_msvc-0.48.5 \
+ windows_aarch64_msvc-0.52.4 \
+ windows_i686_gnu-0.48.5 \
+ windows_i686_gnu-0.52.4 \
+ windows_i686_msvc-0.48.5 \
+ windows_i686_msvc-0.52.4 \
+ windows_x86_64_gnu-0.48.5 \
+ windows_x86_64_gnu-0.52.4 \
+ windows_x86_64_gnullvm-0.48.5 \
+ windows_x86_64_gnullvm-0.52.4 \
+ windows_x86_64_msvc-0.48.5 \
+ windows_x86_64_msvc-0.52.4 \
+ winnow-0.6.5 \
+ zeroize-1.7.0
diff --git a/www/rustypaste-cli/distinfo b/www/rustypaste-cli/distinfo
index 117d2a590391..d660e4b8e0f9 100644
--- a/www/rustypaste-cli/distinfo
+++ b/www/rustypaste-cli/distinfo
@@ -1,28 +1,26 @@
-TIMESTAMP = 1695757364
+TIMESTAMP = 1715284254
SHA256 (rust/crates/adler-1.0.2.crate) = f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe
SIZE (rust/crates/adler-1.0.2.crate) = 12778
-SHA256 (rust/crates/base64-0.21.2.crate) = 604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d
-SIZE (rust/crates/base64-0.21.2.crate) = 76389
+SHA256 (rust/crates/base64-0.21.7.crate) = 9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567
+SIZE (rust/crates/base64-0.21.7.crate) = 82576
SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
SIZE (rust/crates/bitflags-1.3.2.crate) = 23021
-SHA256 (rust/crates/bitflags-2.4.0.crate) = b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635
-SIZE (rust/crates/bitflags-2.4.0.crate) = 36954
-SHA256 (rust/crates/bumpalo-3.13.0.crate) = a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1
-SIZE (rust/crates/bumpalo-3.13.0.crate) = 82114
-SHA256 (rust/crates/cc-1.0.82.crate) = 305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01
-SIZE (rust/crates/cc-1.0.82.crate) = 67879
+SHA256 (rust/crates/bitflags-2.5.0.crate) = cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1
+SIZE (rust/crates/bitflags-2.5.0.crate) = 43821
+SHA256 (rust/crates/cc-1.0.90.crate) = 8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5
+SIZE (rust/crates/cc-1.0.90.crate) = 73954
SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
-SHA256 (rust/crates/colored-2.0.4.crate) = 2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6
-SIZE (rust/crates/colored-2.0.4.crate) = 23654
-SHA256 (rust/crates/console-0.15.7.crate) = c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8
-SIZE (rust/crates/console-0.15.7.crate) = 35409
-SHA256 (rust/crates/core-foundation-0.9.3.crate) = 194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146
-SIZE (rust/crates/core-foundation-0.9.3.crate) = 27059
-SHA256 (rust/crates/core-foundation-sys-0.8.4.crate) = e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa
-SIZE (rust/crates/core-foundation-sys-0.8.4.crate) = 17725
-SHA256 (rust/crates/crc32fast-1.3.2.crate) = b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d
-SIZE (rust/crates/crc32fast-1.3.2.crate) = 38661
+SHA256 (rust/crates/colored-2.1.0.crate) = cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8
+SIZE (rust/crates/colored-2.1.0.crate) = 23348
+SHA256 (rust/crates/console-0.15.8.crate) = 0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb
+SIZE (rust/crates/console-0.15.8.crate) = 36364
+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.6.crate) = 06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f
+SIZE (rust/crates/core-foundation-sys-0.8.6.crate) = 37629
+SHA256 (rust/crates/crc32fast-1.4.0.crate) = b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa
+SIZE (rust/crates/crc32fast-1.4.0.crate) = 38665
SHA256 (rust/crates/dirs-next-2.0.0.crate) = b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1
SIZE (rust/crates/dirs-next-2.0.0.crate) = 11689
SHA256 (rust/crates/dirs-sys-next-0.1.2.crate) = 4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d
@@ -31,213 +29,195 @@ SHA256 (rust/crates/encode_unicode-0.3.6.crate) = a357d28ed41a50f9c765dbfe56cbc0
SIZE (rust/crates/encode_unicode-0.3.6.crate) = 45741
SHA256 (rust/crates/equivalent-1.0.1.crate) = 5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5
SIZE (rust/crates/equivalent-1.0.1.crate) = 6615
-SHA256 (rust/crates/errno-0.3.2.crate) = 6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f
-SIZE (rust/crates/errno-0.3.2.crate) = 10424
-SHA256 (rust/crates/errno-dragonfly-0.1.2.crate) = aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf
-SIZE (rust/crates/errno-dragonfly-0.1.2.crate) = 1810
-SHA256 (rust/crates/fastrand-2.0.0.crate) = 6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764
-SIZE (rust/crates/fastrand-2.0.0.crate) = 14402
-SHA256 (rust/crates/flate2-1.0.26.crate) = 3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743
-SIZE (rust/crates/flate2-1.0.26.crate) = 70832
-SHA256 (rust/crates/form_urlencoded-1.2.0.crate) = a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652
-SIZE (rust/crates/form_urlencoded-1.2.0.crate) = 8923
+SHA256 (rust/crates/errno-0.3.8.crate) = a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245
+SIZE (rust/crates/errno-0.3.8.crate) = 10645
+SHA256 (rust/crates/fastrand-2.0.2.crate) = 658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984
+SIZE (rust/crates/fastrand-2.0.2.crate) = 14674
+SHA256 (rust/crates/flate2-1.0.28.crate) = 46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e
+SIZE (rust/crates/flate2-1.0.28.crate) = 73690
+SHA256 (rust/crates/form_urlencoded-1.2.1.crate) = e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456
+SIZE (rust/crates/form_urlencoded-1.2.1.crate) = 8969
SHA256 (rust/crates/getopts-0.2.21.crate) = 14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5
SIZE (rust/crates/getopts-0.2.21.crate) = 18457
-SHA256 (rust/crates/getrandom-0.2.10.crate) = be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427
-SIZE (rust/crates/getrandom-0.2.10.crate) = 34955
-SHA256 (rust/crates/hashbrown-0.14.0.crate) = 2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a
-SIZE (rust/crates/hashbrown-0.14.0.crate) = 116103
-SHA256 (rust/crates/hermit-abi-0.3.2.crate) = 443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b
-SIZE (rust/crates/hermit-abi-0.3.2.crate) = 13783
-SHA256 (rust/crates/idna-0.4.0.crate) = 7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c
-SIZE (rust/crates/idna-0.4.0.crate) = 271429
-SHA256 (rust/crates/indexmap-2.0.0.crate) = d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d
-SIZE (rust/crates/indexmap-2.0.0.crate) = 64038
-SHA256 (rust/crates/indicatif-0.17.6.crate) = 0b297dc40733f23a0e52728a58fa9489a5b7638a324932de16b41adc3ef80730
-SIZE (rust/crates/indicatif-0.17.6.crate) = 62817
+SHA256 (rust/crates/getrandom-0.2.12.crate) = 190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5
+SIZE (rust/crates/getrandom-0.2.12.crate) = 36163
+SHA256 (rust/crates/hashbrown-0.14.3.crate) = 290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604
+SIZE (rust/crates/hashbrown-0.14.3.crate) = 141425
+SHA256 (rust/crates/idna-0.5.0.crate) = 634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6
+SIZE (rust/crates/idna-0.5.0.crate) = 271940
+SHA256 (rust/crates/indexmap-2.2.6.crate) = 168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26
+SIZE (rust/crates/indexmap-2.2.6.crate) = 82420
+SHA256 (rust/crates/indicatif-0.17.8.crate) = 763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3
+SIZE (rust/crates/indicatif-0.17.8.crate) = 64869
SHA256 (rust/crates/instant-0.1.12.crate) = 7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c
SIZE (rust/crates/instant-0.1.12.crate) = 6128
-SHA256 (rust/crates/is-terminal-0.4.9.crate) = cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b
-SIZE (rust/crates/is-terminal-0.4.9.crate) = 8109
-SHA256 (rust/crates/itoa-1.0.9.crate) = af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38
-SIZE (rust/crates/itoa-1.0.9.crate) = 10492
-SHA256 (rust/crates/js-sys-0.3.64.crate) = c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a
-SIZE (rust/crates/js-sys-0.3.64.crate) = 80313
+SHA256 (rust/crates/itoa-1.0.11.crate) = 49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b
+SIZE (rust/crates/itoa-1.0.11.crate) = 10563
SHA256 (rust/crates/lazy_static-1.4.0.crate) = e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646
SIZE (rust/crates/lazy_static-1.4.0.crate) = 10443
-SHA256 (rust/crates/libc-0.2.147.crate) = b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3
-SIZE (rust/crates/libc-0.2.147.crate) = 686772
-SHA256 (rust/crates/linux-raw-sys-0.4.5.crate) = 57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503
-SIZE (rust/crates/linux-raw-sys-0.4.5.crate) = 1274380
-SHA256 (rust/crates/log-0.4.20.crate) = b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f
-SIZE (rust/crates/log-0.4.20.crate) = 38307
-SHA256 (rust/crates/memchr-2.5.0.crate) = 2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d
-SIZE (rust/crates/memchr-2.5.0.crate) = 65812
+SHA256 (rust/crates/libc-0.2.153.crate) = 9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd
+SIZE (rust/crates/libc-0.2.153.crate) = 740614
+SHA256 (rust/crates/libredox-0.0.1.crate) = 85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8
+SIZE (rust/crates/libredox-0.0.1.crate) = 4212
+SHA256 (rust/crates/linux-raw-sys-0.4.13.crate) = 01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c
+SIZE (rust/crates/linux-raw-sys-0.4.13.crate) = 1493855
+SHA256 (rust/crates/log-0.4.21.crate) = 90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c
+SIZE (rust/crates/log-0.4.21.crate) = 43442
+SHA256 (rust/crates/memchr-2.7.1.crate) = 523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149
+SIZE (rust/crates/memchr-2.7.1.crate) = 96307
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.4.crate) = 4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef
SIZE (rust/crates/mime_guess-2.0.4.crate) = 26399
-SHA256 (rust/crates/miniz_oxide-0.7.1.crate) = e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7
-SIZE (rust/crates/miniz_oxide-0.7.1.crate) = 55194
+SHA256 (rust/crates/miniz_oxide-0.7.2.crate) = 9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7
+SIZE (rust/crates/miniz_oxide-0.7.2.crate) = 55731
SHA256 (rust/crates/multipart-0.18.0.crate) = 00dec633863867f29cb39df64a397cdf4a6354708ddd7759f70c7fb51c5f9182
SIZE (rust/crates/multipart-0.18.0.crate) = 62797
SHA256 (rust/crates/number_prefix-0.4.0.crate) = 830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3
SIZE (rust/crates/number_prefix-0.4.0.crate) = 6922
-SHA256 (rust/crates/once_cell-1.18.0.crate) = dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d
-SIZE (rust/crates/once_cell-1.18.0.crate) = 32969
+SHA256 (rust/crates/once_cell-1.19.0.crate) = 3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92
+SIZE (rust/crates/once_cell-1.19.0.crate) = 33046
SHA256 (rust/crates/openssl-probe-0.1.5.crate) = ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf
SIZE (rust/crates/openssl-probe-0.1.5.crate) = 7227
-SHA256 (rust/crates/percent-encoding-2.3.0.crate) = 9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94
-SIZE (rust/crates/percent-encoding-2.3.0.crate) = 10196
-SHA256 (rust/crates/portable-atomic-1.4.2.crate) = f32154ba0af3a075eefa1eda8bb414ee928f62303a54ea85b8d6638ff1a6ee9e
-SIZE (rust/crates/portable-atomic-1.4.2.crate) = 124375
+SHA256 (rust/crates/percent-encoding-2.3.1.crate) = e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e
+SIZE (rust/crates/percent-encoding-2.3.1.crate) = 10235
+SHA256 (rust/crates/portable-atomic-1.6.0.crate) = 7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0
+SIZE (rust/crates/portable-atomic-1.6.0.crate) = 140689
SHA256 (rust/crates/ppv-lite86-0.2.17.crate) = 5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de
SIZE (rust/crates/ppv-lite86-0.2.17.crate) = 22242
-SHA256 (rust/crates/proc-macro2-1.0.66.crate) = 18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9
-SIZE (rust/crates/proc-macro2-1.0.66.crate) = 43575
-SHA256 (rust/crates/quote-1.0.32.crate) = 50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965
-SIZE (rust/crates/quote-1.0.32.crate) = 28037
+SHA256 (rust/crates/proc-macro2-1.0.79.crate) = e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e
+SIZE (rust/crates/proc-macro2-1.0.79.crate) = 47200
+SHA256 (rust/crates/quote-1.0.35.crate) = 291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef
+SIZE (rust/crates/quote-1.0.35.crate) = 28136
SHA256 (rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404
SIZE (rust/crates/rand-0.8.5.crate) = 87113
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.6.4.crate) = ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c
SIZE (rust/crates/rand_core-0.6.4.crate) = 22666
-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.3.5.crate) = 567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29
-SIZE (rust/crates/redox_syscall-0.3.5.crate) = 23404
-SHA256 (rust/crates/redox_users-0.4.3.crate) = b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b
-SIZE (rust/crates/redox_users-0.4.3.crate) = 15353
-SHA256 (rust/crates/ring-0.16.20.crate) = 3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc
-SIZE (rust/crates/ring-0.16.20.crate) = 5082615
-SHA256 (rust/crates/rustix-0.38.8.crate) = 19ed4fa021d81c8392ce04db050a3da9a60299050b7ae1cf482d862b54a7218f
-SIZE (rust/crates/rustix-0.38.8.crate) = 333258
-SHA256 (rust/crates/rustls-0.21.6.crate) = 1d1feddffcfcc0b33f5c6ce9a29e341e4cd59c3f78e7ee45f4a40c038b1d6cbb
-SIZE (rust/crates/rustls-0.21.6.crate) = 282907
-SHA256 (rust/crates/rustls-native-certs-0.6.3.crate) = a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00
-SIZE (rust/crates/rustls-native-certs-0.6.3.crate) = 24438
-SHA256 (rust/crates/rustls-pemfile-1.0.3.crate) = 2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2
-SIZE (rust/crates/rustls-pemfile-1.0.3.crate) = 20432
-SHA256 (rust/crates/rustls-webpki-0.100.1.crate) = d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b
-SIZE (rust/crates/rustls-webpki-0.100.1.crate) = 70719
-SHA256 (rust/crates/rustls-webpki-0.101.3.crate) = 261e9e0888cba427c3316e6322805653c9425240b6fd96cee7cb671ab70ab8d0
-SIZE (rust/crates/rustls-webpki-0.101.3.crate) = 163517
-SHA256 (rust/crates/ryu-1.0.15.crate) = 1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741
-SIZE (rust/crates/ryu-1.0.15.crate) = 46906
-SHA256 (rust/crates/schannel-0.1.22.crate) = 0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88
-SIZE (rust/crates/schannel-0.1.22.crate) = 41642
-SHA256 (rust/crates/sct-0.7.0.crate) = d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4
-SIZE (rust/crates/sct-0.7.0.crate) = 27502
+SHA256 (rust/crates/redox_syscall-0.4.1.crate) = 4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa
+SIZE (rust/crates/redox_syscall-0.4.1.crate) = 24858
+SHA256 (rust/crates/redox_users-0.4.4.crate) = a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4
+SIZE (rust/crates/redox_users-0.4.4.crate) = 15438
+SHA256 (rust/crates/ring-0.17.8.crate) = c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d
+SIZE (rust/crates/ring-0.17.8.crate) = 4188554
+SHA256 (rust/crates/rustix-0.38.32.crate) = 65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89
+SIZE (rust/crates/rustix-0.38.32.crate) = 376999
+SHA256 (rust/crates/rustls-0.22.3.crate) = 99008d7ad0bbbea527ec27bddbc0e432c5b87d8175178cee68d2eec9c4a1813c
+SIZE (rust/crates/rustls-0.22.3.crate) = 332877
+SHA256 (rust/crates/rustls-native-certs-0.7.0.crate) = 8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792
+SIZE (rust/crates/rustls-native-certs-0.7.0.crate) = 25071
+SHA256 (rust/crates/rustls-pemfile-2.1.1.crate) = f48172685e6ff52a556baa527774f61fcaa884f59daf3375c62a3f1cd2549dab
+SIZE (rust/crates/rustls-pemfile-2.1.1.crate) = 26161
+SHA256 (rust/crates/rustls-pki-types-1.4.1.crate) = ecd36cc4259e3e4514335c4a138c6b43171a8d61d8f5c9348f9fc7529416f247
+SIZE (rust/crates/rustls-pki-types-1.4.1.crate) = 29437
+SHA256 (rust/crates/rustls-webpki-0.102.2.crate) = faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610
+SIZE (rust/crates/rustls-webpki-0.102.2.crate) = 196881
+SHA256 (rust/crates/ryu-1.0.17.crate) = e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1
+SIZE (rust/crates/ryu-1.0.17.crate) = 47537
+SHA256 (rust/crates/schannel-0.1.23.crate) = fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534
+SIZE (rust/crates/schannel-0.1.23.crate) = 41667
SHA256 (rust/crates/security-framework-2.9.2.crate) = 05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de
SIZE (rust/crates/security-framework-2.9.2.crate) = 79295
SHA256 (rust/crates/security-framework-sys-2.9.1.crate) = e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a
SIZE (rust/crates/security-framework-sys-2.9.1.crate) = 18284
-SHA256 (rust/crates/serde-1.0.188.crate) = cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e
-SIZE (rust/crates/serde-1.0.188.crate) = 76230
-SHA256 (rust/crates/serde_derive-1.0.188.crate) = 4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2
-SIZE (rust/crates/serde_derive-1.0.188.crate) = 55563
-SHA256 (rust/crates/serde_json-1.0.104.crate) = 076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c
-SIZE (rust/crates/serde_json-1.0.104.crate) = 146130
-SHA256 (rust/crates/serde_spanned-0.6.3.crate) = 96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186
-SIZE (rust/crates/serde_spanned-0.6.3.crate) = 7737
-SHA256 (rust/crates/spin-0.5.2.crate) = 6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d
-SIZE (rust/crates/spin-0.5.2.crate) = 12004
-SHA256 (rust/crates/syn-2.0.28.crate) = 04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567
-SIZE (rust/crates/syn-2.0.28.crate) = 241635
-SHA256 (rust/crates/tempfile-3.7.1.crate) = dc02fddf48964c42031a0b3fe0428320ecf3a73c401040fc0096f97794310651
-SIZE (rust/crates/tempfile-3.7.1.crate) = 31817
-SHA256 (rust/crates/thiserror-1.0.48.crate) = 9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7
-SIZE (rust/crates/thiserror-1.0.48.crate) = 18862
-SHA256 (rust/crates/thiserror-impl-1.0.48.crate) = 49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35
-SIZE (rust/crates/thiserror-impl-1.0.48.crate) = 15096
+SHA256 (rust/crates/serde-1.0.197.crate) = 3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2
+SIZE (rust/crates/serde-1.0.197.crate) = 77087
+SHA256 (rust/crates/serde_derive-1.0.197.crate) = 7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b
+SIZE (rust/crates/serde_derive-1.0.197.crate) = 55771
+SHA256 (rust/crates/serde_json-1.0.115.crate) = 12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd
+SIZE (rust/crates/serde_json-1.0.115.crate) = 147100
+SHA256 (rust/crates/serde_spanned-0.6.5.crate) = eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1
+SIZE (rust/crates/serde_spanned-0.6.5.crate) = 8349
+SHA256 (rust/crates/spin-0.9.8.crate) = 6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67
+SIZE (rust/crates/spin-0.9.8.crate) = 38958
+SHA256 (rust/crates/subtle-2.5.0.crate) = 81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc
+SIZE (rust/crates/subtle-2.5.0.crate) = 13909
+SHA256 (rust/crates/syn-2.0.55.crate) = 002a1b3dbf967edfafc32655d0f377ab0bb7b994aa1d32c8cc7e9b8bf3ebb8f0
+SIZE (rust/crates/syn-2.0.55.crate) = 254901
+SHA256 (rust/crates/tempfile-3.10.1.crate) = 85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1
+SIZE (rust/crates/tempfile-3.10.1.crate) = 33653
+SHA256 (rust/crates/thiserror-1.0.58.crate) = 03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297
+SIZE (rust/crates/thiserror-1.0.58.crate) = 21025
+SHA256 (rust/crates/thiserror-impl-1.0.58.crate) = c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7
+SIZE (rust/crates/thiserror-impl-1.0.58.crate) = 15645
SHA256 (rust/crates/tinyvec-1.6.0.crate) = 87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50
SIZE (rust/crates/tinyvec-1.6.0.crate) = 45991
SHA256 (rust/crates/tinyvec_macros-0.1.1.crate) = 1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20
SIZE (rust/crates/tinyvec_macros-0.1.1.crate) = 5865
-SHA256 (rust/crates/toml-0.7.6.crate) = c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542
-SIZE (rust/crates/toml-0.7.6.crate) = 49220
-SHA256 (rust/crates/toml_datetime-0.6.3.crate) = 7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b
-SIZE (rust/crates/toml_datetime-0.6.3.crate) = 10770
-SHA256 (rust/crates/toml_edit-0.19.14.crate) = f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a
-SIZE (rust/crates/toml_edit-0.19.14.crate) = 94875
-SHA256 (rust/crates/unicase-2.6.0.crate) = 50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6
-SIZE (rust/crates/unicase-2.6.0.crate) = 23478
-SHA256 (rust/crates/unicode-bidi-0.3.13.crate) = 92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460
-SIZE (rust/crates/unicode-bidi-0.3.13.crate) = 44477
-SHA256 (rust/crates/unicode-ident-1.0.11.crate) = 301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c
-SIZE (rust/crates/unicode-ident-1.0.11.crate) = 42067
-SHA256 (rust/crates/unicode-normalization-0.1.22.crate) = 5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921
-SIZE (rust/crates/unicode-normalization-0.1.22.crate) = 122604
-SHA256 (rust/crates/unicode-width-0.1.10.crate) = c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b
-SIZE (rust/crates/unicode-width-0.1.10.crate) = 18968
-SHA256 (rust/crates/untrusted-0.7.1.crate) = a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a
-SIZE (rust/crates/untrusted-0.7.1.crate) = 7924
-SHA256 (rust/crates/ureq-2.7.1.crate) = 0b11c96ac7ee530603dcdf68ed1557050f374ce55a5a07193ebf8cbc9f8927e9
-SIZE (rust/crates/ureq-2.7.1.crate) = 111068
-SHA256 (rust/crates/url-2.4.1.crate) = 143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5
-SIZE (rust/crates/url-2.4.1.crate) = 78228
+SHA256 (rust/crates/toml-0.8.12.crate) = e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3
+SIZE (rust/crates/toml-0.8.12.crate) = 51145
+SHA256 (rust/crates/toml_datetime-0.6.5.crate) = 3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1
+SIZE (rust/crates/toml_datetime-0.6.5.crate) = 10910
+SHA256 (rust/crates/toml_edit-0.22.9.crate) = 8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4
+SIZE (rust/crates/toml_edit-0.22.9.crate) = 104173
+SHA256 (rust/crates/unicase-2.7.0.crate) = f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89
+SIZE (rust/crates/unicase-2.7.0.crate) = 23783
+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.11.crate) = e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85
+SIZE (rust/crates/unicode-width-0.1.11.crate) = 19187
+SHA256 (rust/crates/untrusted-0.9.0.crate) = 8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1
+SIZE (rust/crates/untrusted-0.9.0.crate) = 14447
+SHA256 (rust/crates/ureq-2.9.6.crate) = 11f214ce18d8b2cbe84ed3aa6486ed3f5b285cf8d8fbdbce9f3f767a724adc35
+SIZE (rust/crates/ureq-2.9.6.crate) = 113677
+SHA256 (rust/crates/url-2.5.0.crate) = 31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633
+SIZE (rust/crates/url-2.5.0.crate) = 78605
SHA256 (rust/crates/version_check-0.9.4.crate) = 49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f
SIZE (rust/crates/version_check-0.9.4.crate) = 14895
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.87.crate) = 7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342
-SIZE (rust/crates/wasm-bindgen-0.2.87.crate) = 175052
-SHA256 (rust/crates/wasm-bindgen-backend-0.2.87.crate) = 5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd
-SIZE (rust/crates/wasm-bindgen-backend-0.2.87.crate) = 26821
-SHA256 (rust/crates/wasm-bindgen-macro-0.2.87.crate) = dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d
-SIZE (rust/crates/wasm-bindgen-macro-0.2.87.crate) = 13897
-SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.87.crate) = 54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b
-SIZE (rust/crates/wasm-bindgen-macro-support-0.2.87.crate) = 20006
-SHA256 (rust/crates/wasm-bindgen-shared-0.2.87.crate) = ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1
-SIZE (rust/crates/wasm-bindgen-shared-0.2.87.crate) = 7248
-SHA256 (rust/crates/web-sys-0.3.64.crate) = 9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b
-SIZE (rust/crates/web-sys-0.3.64.crate) = 725584
-SHA256 (rust/crates/webpki-roots-0.23.1.crate) = b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338
-SIZE (rust/crates/webpki-roots-0.23.1.crate) = 245626
+SHA256 (rust/crates/webpki-roots-0.26.1.crate) = b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009
+SIZE (rust/crates/webpki-roots-0.26.1.crate) = 249748
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-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.45.0.crate) = 75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0
-SIZE (rust/crates/windows-sys-0.45.0.crate) = 2568659
SHA256 (rust/crates/windows-sys-0.48.0.crate) = 677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9
SIZE (rust/crates/windows-sys-0.48.0.crate) = 2628884
-SHA256 (rust/crates/windows-targets-0.42.2.crate) = 8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071
-SIZE (rust/crates/windows-targets-0.42.2.crate) = 5492
-SHA256 (rust/crates/windows-targets-0.48.1.crate) = 05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f
-SIZE (rust/crates/windows-targets-0.48.1.crate) = 6902
-SHA256 (rust/crates/windows_aarch64_gnullvm-0.42.2.crate) = 597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8
-SIZE (rust/crates/windows_aarch64_gnullvm-0.42.2.crate) = 364071
-SHA256 (rust/crates/windows_aarch64_gnullvm-0.48.0.crate) = 91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc
-SIZE (rust/crates/windows_aarch64_gnullvm-0.48.0.crate) = 366543
-SHA256 (rust/crates/windows_aarch64_msvc-0.42.2.crate) = e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43
-SIZE (rust/crates/windows_aarch64_msvc-0.42.2.crate) = 666981
-SHA256 (rust/crates/windows_aarch64_msvc-0.48.0.crate) = b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3
-SIZE (rust/crates/windows_aarch64_msvc-0.48.0.crate) = 671479
-SHA256 (rust/crates/windows_i686_gnu-0.42.2.crate) = c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f
-SIZE (rust/crates/windows_i686_gnu-0.42.2.crate) = 736236
-SHA256 (rust/crates/windows_i686_gnu-0.48.0.crate) = 622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241
-SIZE (rust/crates/windows_i686_gnu-0.48.0.crate) = 741490
-SHA256 (rust/crates/windows_i686_msvc-0.42.2.crate) = 44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060
-SIZE (rust/crates/windows_i686_msvc-0.42.2.crate) = 724951
-SHA256 (rust/crates/windows_i686_msvc-0.48.0.crate) = 4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00
-SIZE (rust/crates/windows_i686_msvc-0.48.0.crate) = 730056
-SHA256 (rust/crates/windows_x86_64_gnu-0.42.2.crate) = 8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36
-SIZE (rust/crates/windows_x86_64_gnu-0.42.2.crate) = 699373
-SHA256 (rust/crates/windows_x86_64_gnu-0.48.0.crate) = ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1
-SIZE (rust/crates/windows_x86_64_gnu-0.48.0.crate) = 703595
-SHA256 (rust/crates/windows_x86_64_gnullvm-0.42.2.crate) = 26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3
-SIZE (rust/crates/windows_x86_64_gnullvm-0.42.2.crate) = 364068
-SHA256 (rust/crates/windows_x86_64_gnullvm-0.48.0.crate) = 7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953
-SIZE (rust/crates/windows_x86_64_gnullvm-0.48.0.crate) = 366536
-SHA256 (rust/crates/windows_x86_64_msvc-0.42.2.crate) = 9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0
-SIZE (rust/crates/windows_x86_64_msvc-0.42.2.crate) = 666936
-SHA256 (rust/crates/windows_x86_64_msvc-0.48.0.crate) = 1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a
-SIZE (rust/crates/windows_x86_64_msvc-0.48.0.crate) = 671422
-SHA256 (rust/crates/winnow-0.5.10.crate) = 5504cc7644f4b593cbc05c4a55bf9bd4e94b867c3c0bd440934174d50482427d
-SIZE (rust/crates/winnow-0.5.10.crate) = 144514
-SHA256 (orhun-rustypaste-cli-v0.8.0_GH0.tar.gz) = 51f72cedfa315848cbfad2da98cf87febc5450a087996f5665311f71a83e6cbb
-SIZE (orhun-rustypaste-cli-v0.8.0_GH0.tar.gz) = 377038
+SHA256 (rust/crates/windows-sys-0.52.0.crate) = 282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d
+SIZE (rust/crates/windows-sys-0.52.0.crate) = 2576877
+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.4.crate) = 7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b
+SIZE (rust/crates/windows-targets-0.52.4.crate) = 6310
+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.4.crate) = bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9
+SIZE (rust/crates/windows_aarch64_gnullvm-0.52.4.crate) = 433373
+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.4.crate) = da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675
+SIZE (rust/crates/windows_aarch64_msvc-0.52.4.crate) = 828055
+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.4.crate) = b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3
+SIZE (rust/crates/windows_i686_gnu-0.52.4.crate) = 875736
+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.4.crate) = 1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02
+SIZE (rust/crates/windows_i686_msvc-0.52.4.crate) = 895530
+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.4.crate) = 5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03
+SIZE (rust/crates/windows_x86_64_gnu-0.52.4.crate) = 831627
+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.4.crate) = 77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177
+SIZE (rust/crates/windows_x86_64_gnullvm-0.52.4.crate) = 433358
+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.4.crate) = 32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8
+SIZE (rust/crates/windows_x86_64_msvc-0.52.4.crate) = 828019
+SHA256 (rust/crates/winnow-0.6.5.crate) = dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8
+SIZE (rust/crates/winnow-0.6.5.crate) = 159316
+SHA256 (rust/crates/zeroize-1.7.0.crate) = 525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d
+SIZE (rust/crates/zeroize-1.7.0.crate) = 19039
+SHA256 (orhun-rustypaste-cli-v0.9.0_GH0.tar.gz) = b28fdc59d271ced56f0d0db7093838621a9130fa6322f8e236af319f7acd1bdc
+SIZE (orhun-rustypaste-cli-v0.9.0_GH0.tar.gz) = 377405
diff --git a/www/rustypaste/Makefile b/www/rustypaste/Makefile
index 96a7cdbe6f8f..5e0f2c25b22a 100644
--- a/www/rustypaste/Makefile
+++ b/www/rustypaste/Makefile
@@ -1,7 +1,6 @@
PORTNAME= rustypaste
DISTVERSIONPREFIX= v
-DISTVERSION= 0.14.4
-PORTREVISION= 2
+DISTVERSION= 0.15.0
CATEGORIES= www
MAINTAINER= DtxdF@disroot.org
diff --git a/www/rustypaste/Makefile.crates b/www/rustypaste/Makefile.crates
index e74fecef67a2..2a68ef106099 100644
--- a/www/rustypaste/Makefile.crates
+++ b/www/rustypaste/Makefile.crates
@@ -1,365 +1,346 @@
-CARGO_CRATES= actix-codec-0.5.1 \
- actix-files-0.6.2 \
- actix-http-3.4.0 \
- actix-macros-0.2.4 \
- actix-multipart-0.6.1 \
- actix-multipart-derive-0.6.1 \
- actix-router-0.5.1 \
- actix-rt-2.9.0 \
- actix-server-2.3.0 \
- actix-service-2.0.2 \
- actix-tls-3.1.1 \
- actix-utils-3.0.1 \
- actix-web-4.4.0 \
- actix-web-codegen-4.2.2 \
- actix-web-grants-4.0.3 \
- addr2line-0.21.0 \
- adler-1.0.2 \
- ahash-0.7.7 \
- ahash-0.8.6 \
- aho-corasick-1.1.2 \
- alloc-no-stdlib-2.0.4 \
- alloc-stdlib-0.2.2 \
- android-tzdata-0.1.1 \
- android_system_properties-0.1.5 \
- anyhow-1.0.75 \
- arrayvec-0.7.4 \
- askama_escape-0.10.3 \
- async-stream-0.3.5 \
- async-stream-impl-0.3.5 \
- async-trait-0.1.74 \
- autocfg-1.1.0 \
- awc-3.2.0 \
- axum-0.6.20 \
- axum-core-0.3.4 \
- backtrace-0.3.69 \
- base64-0.21.5 \
- bitflags-1.3.2 \
- bitflags-2.4.1 \
- bitvec-1.0.1 \
- block-buffer-0.10.4 \
- borsh-1.2.1 \
- borsh-derive-1.2.1 \
- brotli-3.4.0 \
- brotli-decompressor-2.5.1 \
- bumpalo-3.14.0 \
- byte-unit-5.1.2 \
- bytecheck-0.6.11 \
- bytecheck_derive-0.6.11 \
- bytes-1.5.0 \
- bytestring-1.3.1 \
- cc-1.0.83 \
- cfg-if-1.0.0 \
- cfg_aliases-0.1.1 \
- chrono-0.4.31 \
- colored-2.0.4 \
- comfy-table-6.2.0 \
- config-0.13.4 \
- convert_case-0.4.0 \
- cookie-0.16.2 \
- core-foundation-sys-0.8.6 \
- cpufeatures-0.2.11 \
- crc32fast-1.3.2 \
- crossbeam-channel-0.5.8 \
- crossbeam-utils-0.8.16 \
- crossterm-0.26.1 \
- crossterm-0.27.0 \
- crossterm_winapi-0.9.1 \
- crypto-common-0.1.6 \
- darling-0.20.3 \
- darling_core-0.20.3 \
- darling_macro-0.20.3 \
- deranged-0.3.10 \
- derive_more-0.99.17 \
- digest-0.10.7 \
- doc-comment-0.3.3 \
- dotenvy-0.15.7 \
- either-1.9.0 \
- encoding_rs-0.8.33 \
- equivalent-1.0.1 \
- errno-0.3.8 \
- fastrand-2.0.1 \
- file-id-0.1.0 \
- filetime-0.2.22 \
- finl_unicode-1.2.0 \
- flate2-1.0.28 \
- fnv-1.0.7 \
- foreign-types-0.3.2 \
- foreign-types-shared-0.1.1 \
- form_urlencoded-1.2.1 \
- fsevent-sys-4.1.0 \
- funty-2.0.0 \
- futures-channel-0.3.29 \
- futures-core-0.3.29 \
- futures-executor-0.3.29 \
- futures-macro-0.3.29 \
- futures-sink-0.3.29 \
- futures-task-0.3.29 \
- futures-util-0.3.29 \
- generic-array-0.14.7 \
- getrandom-0.2.11 \
- gimli-0.28.1 \
- glob-0.3.1 \
- h2-0.3.22 \
- hashbrown-0.12.3 \
- hashbrown-0.14.3 \
- headers-0.3.9 \
- headers-core-0.2.0 \
- heck-0.4.1 \
- hermit-abi-0.3.3 \
- hotwatch-0.5.0 \
- http-0.2.11 \
- http-body-0.4.5 \
- http-range-0.1.5 \
- http-range-header-0.3.1 \
- httparse-1.8.0 \
- httpdate-1.0.3 \
- humantime-2.1.0 \
- humantime-serde-1.1.1 \
- hyper-0.14.27 \
- hyper-timeout-0.4.1 \
- iana-time-zone-0.1.58 \
- iana-time-zone-haiku-0.1.2 \
- ident_case-1.0.1 \
- idna-0.5.0 \
- impl-more-0.1.6 \
- indexmap-1.9.3 \
- indexmap-2.1.0 \
- infer-0.15.0 \
- inotify-0.9.6 \
- inotify-sys-0.1.5 \
- is-terminal-0.4.9 \
- itertools-0.10.5 \
- itertools-0.11.0 \
- itoa-1.0.9 \
- jobserver-0.1.27 \
- js-sys-0.3.66 \
- jsonwebtoken-9.2.0 \
- kqueue-1.0.8 \
- kqueue-sys-1.0.4 \
- language-tags-0.3.2 \
- lazy-regex-3.1.0 \
- lazy-regex-proc_macros-3.1.0 \
- lazy_static-1.4.0 \
- libc-0.2.150 \
- linked-hash-map-0.5.6 \
- linux-raw-sys-0.4.12 \
- local-channel-0.1.5 \
- local-waker-0.1.4 \
- lock_api-0.4.11 \
- log-0.4.20 \
- matchers-0.1.0 \
- matchit-0.7.3 \
- memchr-2.6.4 \
- mime-0.3.17 \
- mime_guess-2.0.4 \
- minimal-lexical-0.2.1 \
- miniz_oxide-0.7.1 \
- mio-0.8.9 \
- nom-7.1.3 \
- notify-6.1.1 \
- notify-debouncer-full-0.1.0 \
- nu-ansi-term-0.46.0 \
- num-bigint-0.4.4 \
- num-integer-0.1.45 \
- num-traits-0.2.17 \
- num_cpus-1.16.0 \
- object-0.32.1 \
- once_cell-1.18.0 \
- openssl-0.10.61 \
- openssl-macros-0.1.1 \
- openssl-sys-0.9.97 \
- opentelemetry-0.21.0 \
- opentelemetry-appender-tracing-0.2.0 \
- opentelemetry-http-0.10.0 \
- opentelemetry-otlp-0.14.0 \
- opentelemetry-proto-0.4.0 \
- opentelemetry-semantic-conventions-0.13.0 \
- opentelemetry_sdk-0.21.1 \
- ordered-float-4.2.0 \
- overload-0.1.1 \
- parking_lot-0.12.1 \
- parking_lot_core-0.9.9 \
- parse-size-1.0.0 \
- paste-1.0.14 \
- pathdiff-0.2.1 \
- pem-3.0.2 \
- percent-encoding-2.3.1 \
- petname-1.1.3 \
- pin-project-1.1.3 \
- pin-project-internal-1.1.3 \
- pin-project-lite-0.2.13 \
- pin-utils-0.1.0 \
- pkg-config-0.3.27 \
- powerfmt-0.2.0 \
- ppv-lite86-0.2.17 \
- proc-macro-crate-2.0.1 \
- proc-macro-error-1.0.4 \
- proc-macro-error-attr-1.0.4 \
- proc-macro2-1.0.70 \
- prost-0.11.9 \
- prost-0.12.3 \
- prost-derive-0.11.9 \
- prost-derive-0.12.3 \
- prost-types-0.12.3 \
- protect-endpoints-proc-macro-0.1.1 \
- ptr_meta-0.1.4 \
- ptr_meta_derive-0.1.4 \
- quote-1.0.33 \
- radium-0.7.0 \
- rand-0.8.5 \
- rand_chacha-0.3.1 \
- rand_core-0.6.4 \
- redox_syscall-0.3.5 \
- redox_syscall-0.4.1 \
- regex-1.10.2 \
- regex-automata-0.1.10 \
- regex-automata-0.4.3 \
- regex-syntax-0.6.29 \
- regex-syntax-0.8.2 \
- rend-0.4.1 \
- ring-0.17.7 \
- rkyv-0.7.43 \
- rkyv_derive-0.7.43 \
- rust_decimal-1.33.1 \
- rustc-demangle-0.1.23 \
- rustc-hash-1.1.0 \
- rustc_version-0.4.0 \
- rustix-0.38.26 \
- rustls-0.21.9 \
- rustls-webpki-0.101.7 \
- rustrict-0.7.12 \
- rustversion-1.0.14 \
- ryu-1.0.15 \
- same-file-1.0.6 \
- scopeguard-1.2.0 \
- sct-0.7.1 \
- seahash-4.1.0 \
- semver-1.0.20 \
- serde-1.0.193 \
- serde_derive-1.0.193 \
- serde_json-1.0.108 \
- serde_path_to_error-0.1.14 \
- serde_plain-1.0.2 \
- serde_regex-1.1.0 \
- serde_urlencoded-0.7.1 \
- sha1-0.10.6 \
- sharded-slab-0.1.7 \
- shuttle-actix-web-0.35.1 \
- shuttle-codegen-0.35.1 \
- shuttle-common-0.35.1 \
- shuttle-proto-0.35.1 \
- shuttle-runtime-0.35.1 \
- shuttle-service-0.35.1 \
- signal-hook-0.3.17 \
- signal-hook-mio-0.2.3 \
- signal-hook-registry-1.4.1 \
- simdutf8-0.1.4 \
- simple_asn1-0.6.2 \
- slab-0.4.9 \
- smallvec-1.11.2 \
- socket2-0.4.10 \
- socket2-0.5.5 \
- spin-0.9.8 \
- strfmt-0.2.4 \
- strsim-0.10.0 \
- strum-0.24.1 \
- strum-0.25.0 \
- strum_macros-0.24.3 \
- strum_macros-0.25.3 \
- syn-1.0.109 \
- syn-2.0.39 \
- syn_derive-0.1.8 \
- sync_wrapper-0.1.2 \
- tap-1.0.1 \
- tempfile-3.8.1 \
- thiserror-1.0.50 \
- thiserror-impl-1.0.50 \
- thread_local-1.1.7 \
- time-0.3.30 \
- time-core-0.1.2 \
- time-macros-0.2.15 \
- tinyvec-1.6.0 \
- tinyvec_macros-0.1.1 \
- tokio-1.35.1 \
- tokio-io-timeout-1.2.0 \
- tokio-macros-2.2.0 \
- tokio-openssl-0.6.3 \
- tokio-rustls-0.24.1 \
- tokio-stream-0.1.14 \
- tokio-util-0.7.10 \
- toml-0.5.11 \
- toml_datetime-0.6.3 \
- toml_edit-0.20.2 \
- tonic-0.9.2 \
- tonic-0.10.2 \
- tower-0.4.13 \
- tower-http-0.4.4 \
- tower-layer-0.3.2 \
- tower-service-0.3.2 \
- tracing-0.1.40 \
- tracing-attributes-0.1.27 \
- tracing-core-0.1.32 \
- tracing-log-0.2.0 \
- tracing-opentelemetry-0.22.0 \
- tracing-serde-0.1.3 \
- tracing-subscriber-0.3.18 \
- try-lock-0.2.4 \
- ttl_cache-0.5.1 \
- typenum-1.17.0 \
- unicase-2.7.0 \
- unicode-bidi-0.3.13 \
- unicode-ident-1.0.12 \
- unicode-normalization-0.1.22 \
- unicode-width-0.1.11 \
- untrusted-0.9.0 \
- url-2.5.0 \
- urlencoding-2.1.3 \
- utf8-width-0.1.7 \
- uts2ts-0.4.1 \
- uuid-1.6.1 \
- valuable-0.1.0 \
- vcpkg-0.2.15 \
- version_check-0.9.4 \
- walkdir-2.4.0 \
- want-0.3.1 \
- wasi-0.11.0+wasi-snapshot-preview1 \
- wasm-bindgen-0.2.89 \
- wasm-bindgen-backend-0.2.89 \
- wasm-bindgen-macro-0.2.89 \
- wasm-bindgen-macro-support-0.2.89 \
- wasm-bindgen-shared-0.2.89 \
- web-time-0.2.3 \
- webpki-roots-0.25.3 \
- winapi-0.3.9 \
- winapi-i686-pc-windows-gnu-0.4.0 \
- winapi-util-0.1.6 \
- winapi-x86_64-pc-windows-gnu-0.4.0 \
- windows-core-0.51.1 \
- windows-sys-0.48.0 \
- windows-sys-0.52.0 \
- windows-targets-0.48.5 \
- windows-targets-0.52.0 \
- windows_aarch64_gnullvm-0.48.5 \
- windows_aarch64_gnullvm-0.52.0 \
- windows_aarch64_msvc-0.48.5 \
- windows_aarch64_msvc-0.52.0 \
- windows_i686_gnu-0.48.5 \
- windows_i686_gnu-0.52.0 \
- windows_i686_msvc-0.48.5 \
- windows_i686_msvc-0.52.0 \
- windows_x86_64_gnu-0.48.5 \
- windows_x86_64_gnu-0.52.0 \
- windows_x86_64_gnullvm-0.48.5 \
- windows_x86_64_gnullvm-0.52.0 \
- windows_x86_64_msvc-0.48.5 \
- windows_x86_64_msvc-0.52.0 \
- winnow-0.5.28 \
- wyz-0.5.1 \
- yaml-rust-0.4.5 \
- zerocopy-0.7.28 \
- zerocopy-derive-0.7.28 \
- zeroize-1.7.0 \
- zstd-0.12.4 \
- zstd-safe-6.0.6 \
- zstd-sys-2.0.9+zstd.1.5.5
+CARGO_CRATES= actix-codec-0.5.2 \
+ actix-files-0.6.5 \
+ actix-http-3.6.0 \
+ actix-macros-0.2.4 \
+ actix-multipart-0.6.1 \
+ actix-multipart-derive-0.6.1 \
+ actix-router-0.5.2 \
+ actix-rt-2.9.0 \
+ actix-server-2.3.0 \
+ actix-service-2.0.2 \
+ actix-tls-3.3.0 \
+ actix-utils-3.0.1 \
+ actix-web-4.5.1 \
+ actix-web-codegen-4.2.2 \
+ actix-web-grants-4.0.3 \
+ addr2line-0.21.0 \
+ adler-1.0.2 \
+ ahash-0.7.8 \
+ ahash-0.8.11 \
+ aho-corasick-1.1.3 \
+ alloc-no-stdlib-2.0.4 \
+ alloc-stdlib-0.2.2 \
+ android-tzdata-0.1.1 \
+ android_system_properties-0.1.5 \
+ anyhow-1.0.81 \
+ arrayvec-0.7.4 \
+ async-stream-0.3.5 \
+ async-stream-impl-0.3.5 \
+ async-trait-0.1.79 \
+ autocfg-1.2.0 \
+ awc-3.4.0 \
+ axum-0.6.20 \
+ axum-core-0.3.4 \
+ backtrace-0.3.71 \
+ base64-0.21.7 \
+ bitflags-1.3.2 \
+ bitflags-2.5.0 \
+ bitvec-1.0.1 \
+ block-buffer-0.10.4 \
+ borsh-1.4.0 \
+ borsh-derive-1.4.0 \
+ brotli-3.5.0 \
+ brotli-decompressor-2.5.1 \
+ bumpalo-3.15.4 \
+ byte-unit-5.1.4 \
+ bytecheck-0.6.12 \
+ bytecheck_derive-0.6.12 \
+ bytes-1.6.0 \
+ bytestring-1.3.1 \
+ cc-1.0.90 \
+ cfg-if-1.0.0 \
+ cfg_aliases-0.1.1 \
+ chrono-0.4.37 \
+ colored-2.1.0 \
+ comfy-table-6.2.0 \
+ config-0.14.0 \
+ convert_case-0.4.0 \
+ cookie-0.16.2 \
+ core-foundation-sys-0.8.6 \
+ cpufeatures-0.2.12 \
+ crc32fast-1.4.0 \
+ crossbeam-channel-0.5.12 \
+ crossbeam-utils-0.8.19 \
+ crossterm-0.26.1 \
+ crossterm-0.27.0 \
+ crossterm_winapi-0.9.1 \
+ crypto-common-0.1.6 \
+ darling-0.20.8 \
+ darling_core-0.20.8 \
+ darling_macro-0.20.8 \
+ deranged-0.3.11 \
+ derive_more-0.99.17 \
+ digest-0.10.7 \
+ dotenvy-0.15.7 \
+ either-1.10.0 \
+ encoding_rs-0.8.33 \
+ equivalent-1.0.1 \
+ errno-0.3.8 \
+ fastrand-2.0.2 \
+ file-id-0.1.0 \
+ filetime-0.2.23 \
+ flate2-1.0.28 \
+ fnv-1.0.7 \
+ foreign-types-0.3.2 \
+ foreign-types-shared-0.1.1 \
+ form_urlencoded-1.2.1 \
+ fsevent-sys-4.1.0 \
+ funty-2.0.0 \
+ futures-channel-0.3.30 \
+ futures-core-0.3.30 \
+ futures-executor-0.3.30 \
+ futures-macro-0.3.30 \
+ futures-sink-0.3.30 \
+ futures-task-0.3.30 \
+ futures-util-0.3.30 \
+ generic-array-0.14.7 \
+ getrandom-0.2.12 \
+ gimli-0.28.1 \
+ glob-0.3.1 \
+ h2-0.3.25 \
+ hashbrown-0.12.3 \
+ hashbrown-0.14.3 \
+ heck-0.4.1 \
+ hermit-abi-0.3.9 \
+ hotwatch-0.5.0 \
+ http-0.2.12 \
+ http-1.1.0 \
+ http-body-0.4.6 \
+ http-range-0.1.5 \
+ httparse-1.8.0 \
+ httpdate-1.0.3 \
+ humantime-2.1.0 \
+ humantime-serde-1.1.1 \
+ hyper-0.14.28 \
+ hyper-timeout-0.4.1 \
+ iana-time-zone-0.1.60 \
+ iana-time-zone-haiku-0.1.2 \
+ ident_case-1.0.1 \
+ idna-0.5.0 \
+ impl-more-0.1.6 \
+ indexmap-1.9.3 \
+ indexmap-2.2.6 \
+ infer-0.15.0 \
+ inotify-0.9.6 \
+ inotify-sys-0.1.5 \
+ itertools-0.10.5 \
+ itertools-0.11.0 \
+ itoa-1.0.11 \
+ jobserver-0.1.28 \
+ js-sys-0.3.69 \
+ kqueue-1.0.8 \
+ kqueue-sys-1.0.4 \
+ language-tags-0.3.2 \
+ lazy-regex-3.1.0 \
+ lazy-regex-proc_macros-3.1.0 \
+ lazy_static-1.4.0 \
+ libc-0.2.153 \
+ linked-hash-map-0.5.6 \
+ linux-raw-sys-0.4.13 \
+ local-channel-0.1.5 \
+ local-waker-0.1.4 \
+ lock_api-0.4.11 \
+ log-0.4.21 \
+ matchers-0.1.0 \
+ matchit-0.7.3 \
+ memchr-2.7.1 \
+ mime-0.3.17 \
+ mime_guess-2.0.4 \
+ minimal-lexical-0.2.1 \
+ miniz_oxide-0.7.2 \
+ mio-0.8.11 \
+ nom-7.1.3 \
+ notify-6.1.1 \
+ notify-debouncer-full-0.1.0 \
+ nu-ansi-term-0.46.0 \
+ num-conv-0.1.0 \
+ num-traits-0.2.18 \
+ num_cpus-1.16.0 \
+ object-0.32.2 \
+ once_cell-1.19.0 \
+ openssl-0.10.64 \
+ openssl-macros-0.1.1 \
+ openssl-sys-0.9.101 \
+ opentelemetry-0.21.0 \
+ opentelemetry-http-0.10.0 \
+ opentelemetry_sdk-0.21.2 \
+ ordered-float-4.2.0 \
+ overload-0.1.1 \
+ parking_lot-0.12.1 \
+ parking_lot_core-0.9.9 \
+ parse-size-1.0.0 \
+ paste-1.0.14 \
+ path-clean-1.0.1 \
+ pathdiff-0.2.1 \
+ percent-encoding-2.3.1 \
+ petname-1.1.3 \
+ pin-project-1.1.5 \
+ pin-project-internal-1.1.5 \
+ pin-project-lite-0.2.13 \
+ pin-utils-0.1.0 \
+ pkg-config-0.3.30 \
+ powerfmt-0.2.0 \
+ ppv-lite86-0.2.17 \
+ proc-macro-crate-3.1.0 \
+ proc-macro-error-1.0.4 \
+ proc-macro-error-attr-1.0.4 \
+ proc-macro2-1.0.79 \
+ prost-0.12.3 \
+ prost-derive-0.12.3 \
+ prost-types-0.12.3 \
+ protect-endpoints-proc-macro-0.1.1 \
+ ptr_meta-0.1.4 \
+ ptr_meta_derive-0.1.4 \
+ quote-1.0.35 \
+ radium-0.7.0 \
+ rand-0.8.5 \
+ rand_chacha-0.3.1 \
+ rand_core-0.6.4 \
+ redox_syscall-0.4.1 \
+ regex-1.10.4 \
+ regex-automata-0.1.10 \
+ regex-automata-0.4.6 \
+ regex-syntax-0.6.29 \
+ regex-syntax-0.8.3 \
+ rend-0.4.2 \
+ ring-0.17.8 \
+ rkyv-0.7.44 \
+ rkyv_derive-0.7.44 \
+ rust_decimal-1.35.0 \
+ rustc-demangle-0.1.23 \
+ rustc_version-0.4.0 \
+ rustix-0.38.32 \
+ rustls-0.21.10 \
+ rustls-webpki-0.101.7 \
+ rustversion-1.0.14 \
+ ryu-1.0.17 \
+ same-file-1.0.6 \
+ scopeguard-1.2.0 \
+ sct-0.7.1 \
+ seahash-4.1.0 \
+ semver-1.0.22 \
+ serde-1.0.197 \
+ serde_derive-1.0.197 \
+ serde_json-1.0.115 \
+ serde_plain-1.0.2 \
+ serde_regex-1.1.0 \
+ serde_spanned-0.6.5 \
+ serde_urlencoded-0.7.1 \
+ sha1-0.10.6 \
+ sharded-slab-0.1.7 \
+ shuttle-actix-web-0.42.0 \
+ shuttle-codegen-0.42.0 \
+ shuttle-common-0.42.0 \
+ shuttle-proto-0.42.0 \
+ shuttle-runtime-0.42.0 \
+ shuttle-service-0.42.0 \
+ signal-hook-0.3.17 \
+ signal-hook-mio-0.2.3 \
+ signal-hook-registry-1.4.1 \
+ simdutf8-0.1.4 \
+ slab-0.4.9 \
+ smallvec-1.13.2 \
+ socket2-0.5.6 \
+ spin-0.9.8 \
+ strfmt-0.2.4 \
+ strsim-0.10.0 \
+ strum-0.24.1 \
+ strum-0.26.2 \
+ strum_macros-0.24.3 \
+ strum_macros-0.26.2 \
+ syn-1.0.109 \
+ syn-2.0.55 \
+ syn_derive-0.1.8 \
+ sync_wrapper-0.1.2 \
+ tap-1.0.1 \
+ tempfile-3.10.1 \
+ thiserror-1.0.58 \
+ thiserror-impl-1.0.58 \
+ thread_local-1.1.8 \
+ time-0.3.34 \
+ time-core-0.1.2 \
+ time-macros-0.2.17 \
+ tinyvec-1.6.0 \
+ tinyvec_macros-0.1.1 \
+ tokio-1.36.0 \
+ tokio-io-timeout-1.2.0 \
+ tokio-macros-2.2.0 \
+ tokio-openssl-0.6.4 \
+ tokio-rustls-0.24.1 \
+ tokio-stream-0.1.15 \
+ tokio-util-0.7.10 \
+ toml-0.8.12 \
+ toml_datetime-0.6.5 \
+ toml_edit-0.21.1 \
+ toml_edit-0.22.9 \
+ tonic-0.10.2 \
+ tower-0.4.13 \
+ tower-layer-0.3.2 \
+ tower-service-0.3.2 \
+ tracing-0.1.40 \
+ tracing-attributes-0.1.27 \
+ tracing-core-0.1.32 \
+ tracing-log-0.2.0 \
+ tracing-opentelemetry-0.22.0 \
+ tracing-serde-0.1.3 \
+ tracing-subscriber-0.3.18 \
+ try-lock-0.2.5 \
+ typenum-1.17.0 \
+ unicase-2.7.0 \
+ unicode-bidi-0.3.15 \
+ unicode-ident-1.0.12 \
+ unicode-normalization-0.1.23 \
+ unicode-width-0.1.11 \
+ untrusted-0.9.0 \
+ url-2.5.0 \
+ urlencoding-2.1.3 \
+ utf8-width-0.1.7 \
+ uts2ts-0.4.1 \
+ uuid-1.8.0 \
+ v_htmlescape-0.15.8 \
+ valuable-0.1.0 \
+ vcpkg-0.2.15 \
+ version_check-0.9.4 \
+ walkdir-2.5.0 \
+ want-0.3.1 \
+ wasi-0.11.0+wasi-snapshot-preview1 \
+ wasm-bindgen-0.2.92 \
+ wasm-bindgen-backend-0.2.92 \
+ wasm-bindgen-macro-0.2.92 \
+ wasm-bindgen-macro-support-0.2.92 \
+ wasm-bindgen-shared-0.2.92 \
+ web-time-0.2.4 \
+ webpki-roots-0.25.4 \
+ winapi-0.3.9 \
+ winapi-i686-pc-windows-gnu-0.4.0 \
+ winapi-util-0.1.6 \
+ winapi-x86_64-pc-windows-gnu-0.4.0 \
+ windows-core-0.52.0 \
+ windows-sys-0.48.0 \
+ windows-sys-0.52.0 \
+ windows-targets-0.48.5 \
+ windows-targets-0.52.4 \
+ windows_aarch64_gnullvm-0.48.5 \
+ windows_aarch64_gnullvm-0.52.4 \
+ windows_aarch64_msvc-0.48.5 \
+ windows_aarch64_msvc-0.52.4 \
+ windows_i686_gnu-0.48.5 \
+ windows_i686_gnu-0.52.4 \
+ windows_i686_msvc-0.48.5 \
+ windows_i686_msvc-0.52.4 \
+ windows_x86_64_gnu-0.48.5 \
+ windows_x86_64_gnu-0.52.4 \
+ windows_x86_64_gnullvm-0.48.5 \
+ windows_x86_64_gnullvm-0.52.4 \
+ windows_x86_64_msvc-0.48.5 \
+ windows_x86_64_msvc-0.52.4 \
+ winnow-0.5.40 \
+ winnow-0.6.5 \
+ wyz-0.5.1 \
+ yaml-rust-0.4.5 \
+ zerocopy-0.7.32 \
+ zerocopy-derive-0.7.32 \
+ zeroize-1.7.0 \
+ zstd-0.13.1 \
+ zstd-safe-7.1.0 \
+ zstd-sys-2.0.10+zstd.1.5.6
diff --git a/www/rustypaste/distinfo b/www/rustypaste/distinfo
index 940b00f8093a..7c5aa78054f7 100644
--- a/www/rustypaste/distinfo
+++ b/www/rustypaste/distinfo
@@ -1,30 +1,30 @@
-TIMESTAMP = 1705261854
-SHA256 (rust/crates/actix-codec-0.5.1.crate) = 617a8268e3537fe1d8c9ead925fca49ef6400927ee7bc26750e90ecee14ce4b8
-SIZE (rust/crates/actix-codec-0.5.1.crate) = 14337
-SHA256 (rust/crates/actix-files-0.6.2.crate) = d832782fac6ca7369a70c9ee9a20554623c5e51c76e190ad151780ebea1cf689
-SIZE (rust/crates/actix-files-0.6.2.crate) = 30031
-SHA256 (rust/crates/actix-http-3.4.0.crate) = a92ef85799cba03f76e4f7c10f533e66d87c9a7e7055f3391f09000ad8351bc9
-SIZE (rust/crates/actix-http-3.4.0.crate) = 151156
+TIMESTAMP = 1715227957
+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.5.crate) = bf0bdd6ff79de7c9a021f5d9ea79ce23e108d8bfc9b49b5b4a2cf6fad5a35212
+SIZE (rust/crates/actix-files-0.6.5.crate) = 39268
+SHA256 (rust/crates/actix-http-3.6.0.crate) = d223b13fd481fc0d1f83bb12659ae774d9e3601814c68a0bc539731698cca743
+SIZE (rust/crates/actix-http-3.6.0.crate) = 152432
SHA256 (rust/crates/actix-macros-0.2.4.crate) = e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb
SIZE (rust/crates/actix-macros-0.2.4.crate) = 8380
SHA256 (rust/crates/actix-multipart-0.6.1.crate) = 3b960e2aea75f49c8f069108063d12a48d329fc8b60b786dfc7552a9d5918d2d
SIZE (rust/crates/actix-multipart-0.6.1.crate) = 24535
SHA256 (rust/crates/actix-multipart-derive-0.6.1.crate) = 0a0a77f836d869f700e5b47ac7c3c8b9c8bc82e4aec861954c6198abee3ebd4d
SIZE (rust/crates/actix-multipart-derive-0.6.1.crate) = 9348
-SHA256 (rust/crates/actix-router-0.5.1.crate) = d66ff4d247d2b160861fa2866457e85706833527840e4133f8f49aa423a38799
-SIZE (rust/crates/actix-router-0.5.1.crate) = 31905
+SHA256 (rust/crates/actix-router-0.5.2.crate) = d22475596539443685426b6bdadb926ad0ecaefdfc5fb05e5e3441f15463c511
+SIZE (rust/crates/actix-router-0.5.2.crate) = 32386
SHA256 (rust/crates/actix-rt-2.9.0.crate) = 28f32d40287d3f402ae0028a9d54bef51af15c8769492826a69d28f81893151d
SIZE (rust/crates/actix-rt-2.9.0.crate) = 22096
SHA256 (rust/crates/actix-server-2.3.0.crate) = 3eb13e7eef0423ea6eab0e59f6c72e7cb46d33691ad56a726b3cd07ddec2c2d4
SIZE (rust/crates/actix-server-2.3.0.crate) = 38806
SHA256 (rust/crates/actix-service-2.0.2.crate) = 3b894941f818cfdc7ccc4b9e60fa7e53b5042a2e8567270f9147d5591893373a
SIZE (rust/crates/actix-service-2.0.2.crate) = 25293
-SHA256 (rust/crates/actix-tls-3.1.1.crate) = 72616e7fbec0aa99c6f3164677fa48ff5a60036d0799c98cab894a44f3e0efc3
-SIZE (rust/crates/actix-tls-3.1.1.crate) = 35389
+SHA256 (rust/crates/actix-tls-3.3.0.crate) = d4cce60a2f2b477bc72e5cde0af1812a6e82d8fd85b5570a5dcf2a5bf2c5be5f
+SIZE (rust/crates/actix-tls-3.3.0.crate) = 38498
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.4.0.crate) = 0e4a5b5e29603ca8c94a77c65cf874718ceb60292c5a5c3e5f4ace041af462b9
-SIZE (rust/crates/actix-web-4.4.0.crate) = 228719
+SHA256 (rust/crates/actix-web-4.5.1.crate) = 43a6556ddebb638c2358714d853257ed226ece6023ef9364f23f0c70737ea984
+SIZE (rust/crates/actix-web-4.5.1.crate) = 231024
SHA256 (rust/crates/actix-web-codegen-4.2.2.crate) = eb1f50ebbb30eca122b188319a4398b3f7bb4a8cdf50ecfb73bfc6a3c3ce54f5
SIZE (rust/crates/actix-web-codegen-4.2.2.crate) = 17159
SHA256 (rust/crates/actix-web-grants-4.0.3.crate) = cf5941a5bdf4cc022ca7721dae70d9818d7b13f93040b0543cb901410c8d3172
@@ -33,12 +33,12 @@ SHA256 (rust/crates/addr2line-0.21.0.crate) = 8a30b2e23b9e17a9f90641c7ab1549cd9b
SIZE (rust/crates/addr2line-0.21.0.crate) = 40807
SHA256 (rust/crates/adler-1.0.2.crate) = f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe
SIZE (rust/crates/adler-1.0.2.crate) = 12778
-SHA256 (rust/crates/ahash-0.7.7.crate) = 5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd
-SIZE (rust/crates/ahash-0.7.7.crate) = 38508
-SHA256 (rust/crates/ahash-0.8.6.crate) = 91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a
-SIZE (rust/crates/ahash-0.8.6.crate) = 42780
-SHA256 (rust/crates/aho-corasick-1.1.2.crate) = b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0
-SIZE (rust/crates/aho-corasick-1.1.2.crate) = 183136
+SHA256 (rust/crates/ahash-0.7.8.crate) = 891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9
+SIZE (rust/crates/ahash-0.7.8.crate) = 38550
+SHA256 (rust/crates/ahash-0.8.11.crate) = e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011
+SIZE (rust/crates/ahash-0.8.11.crate) = 43607
+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
@@ -47,86 +47,84 @@ SHA256 (rust/crates/android-tzdata-0.1.1.crate) = e999941b234f3131b00bc13c22d06e
SIZE (rust/crates/android-tzdata-0.1.1.crate) = 7674
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/anyhow-1.0.75.crate) = a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6
-SIZE (rust/crates/anyhow-1.0.75.crate) = 43901
+SHA256 (rust/crates/anyhow-1.0.81.crate) = 0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247
+SIZE (rust/crates/anyhow-1.0.81.crate) = 45142
SHA256 (rust/crates/arrayvec-0.7.4.crate) = 96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711
SIZE (rust/crates/arrayvec-0.7.4.crate) = 29856
-SHA256 (rust/crates/askama_escape-0.10.3.crate) = 619743e34b5ba4e9703bba34deac3427c72507c7159f5fd030aea8cac0cfe341
-SIZE (rust/crates/askama_escape-0.10.3.crate) = 8875
SHA256 (rust/crates/async-stream-0.3.5.crate) = cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51
SIZE (rust/crates/async-stream-0.3.5.crate) = 11916
SHA256 (rust/crates/async-stream-impl-0.3.5.crate) = 16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193
SIZE (rust/crates/async-stream-impl-0.3.5.crate) = 4173
-SHA256 (rust/crates/async-trait-0.1.74.crate) = a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9
-SIZE (rust/crates/async-trait-0.1.74.crate) = 28997
-SHA256 (rust/crates/autocfg-1.1.0.crate) = d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa
-SIZE (rust/crates/autocfg-1.1.0.crate) = 13272
-SHA256 (rust/crates/awc-3.2.0.crate) = 7fa3c705a9c7917ac0f41c0757a0a747b43bbc29b0b364b081bd7c5fc67fb223
-SIZE (rust/crates/awc-3.2.0.crate) = 72680
+SHA256 (rust/crates/async-trait-0.1.79.crate) = a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681
+SIZE (rust/crates/async-trait-0.1.79.crate) = 29558
+SHA256 (rust/crates/autocfg-1.2.0.crate) = f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80
+SIZE (rust/crates/autocfg-1.2.0.crate) = 14808
+SHA256 (rust/crates/awc-3.4.0.crate) = 68c09cc97310b926f01621faee652f3d1b0962545a3cec6c9ac07def9ea36c2c
+SIZE (rust/crates/awc-3.4.0.crate) = 75016
SHA256 (rust/crates/axum-0.6.20.crate) = 3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf
SIZE (rust/crates/axum-0.6.20.crate) = 146227
SHA256 (rust/crates/axum-core-0.3.4.crate) = 759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c
SIZE (rust/crates/axum-core-0.3.4.crate) = 21088
-SHA256 (rust/crates/backtrace-0.3.69.crate) = 2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837
-SIZE (rust/crates/backtrace-0.3.69.crate) = 77299
-SHA256 (rust/crates/base64-0.21.5.crate) = 35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9
-SIZE (rust/crates/base64-0.21.5.crate) = 77134
+SHA256 (rust/crates/backtrace-0.3.71.crate) = 26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d
+SIZE (rust/crates/backtrace-0.3.71.crate) = 86553
+SHA256 (rust/crates/base64-0.21.7.crate) = 9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567
+SIZE (rust/crates/base64-0.21.7.crate) = 82576
SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
SIZE (rust/crates/bitflags-1.3.2.crate) = 23021
-SHA256 (rust/crates/bitflags-2.4.1.crate) = 327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07
-SIZE (rust/crates/bitflags-2.4.1.crate) = 37043
+SHA256 (rust/crates/bitflags-2.5.0.crate) = cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1
+SIZE (rust/crates/bitflags-2.5.0.crate) = 43821
SHA256 (rust/crates/bitvec-1.0.1.crate) = 1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c
SIZE (rust/crates/bitvec-1.0.1.crate) = 224375
SHA256 (rust/crates/block-buffer-0.10.4.crate) = 3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71
SIZE (rust/crates/block-buffer-0.10.4.crate) = 10538
-SHA256 (rust/crates/borsh-1.2.1.crate) = 9897ef0f1bd2362169de6d7e436ea2237dc1085d7d1e4db75f4be34d86f309d1
-SIZE (rust/crates/borsh-1.2.1.crate) = 58221
-SHA256 (rust/crates/borsh-derive-1.2.1.crate) = 478b41ff04256c5c8330f3dfdaaae2a5cc976a8e75088bafa4625b0d0208de8c
-SIZE (rust/crates/borsh-derive-1.2.1.crate) = 29097
-SHA256 (rust/crates/brotli-3.4.0.crate) = 516074a47ef4bce09577a3b379392300159ce5b1ba2e501ff1c819950066100f
-SIZE (rust/crates/brotli-3.4.0.crate) = 1362057
+SHA256 (rust/crates/borsh-1.4.0.crate) = 0901fc8eb0aca4c83be0106d6f2db17d86a08dfc2c25f0e84464bf381158add6
+SIZE (rust/crates/borsh-1.4.0.crate) = 60239
+SHA256 (rust/crates/borsh-derive-1.4.0.crate) = 51670c3aa053938b0ee3bd67c3817e471e626151131b934038e83c5bf8de48f5
+SIZE (rust/crates/borsh-derive-1.4.0.crate) = 29187
+SHA256 (rust/crates/brotli-3.5.0.crate) = d640d25bc63c50fb1f0b545ffd80207d2e10a4c965530809b40ba3386825c391
+SIZE (rust/crates/brotli-3.5.0.crate) = 1390231
SHA256 (rust/crates/brotli-decompressor-2.5.1.crate) = 4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f
SIZE (rust/crates/brotli-decompressor-2.5.1.crate) = 193087
-SHA256 (rust/crates/bumpalo-3.14.0.crate) = 7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec
-SIZE (rust/crates/bumpalo-3.14.0.crate) = 82400
-SHA256 (rust/crates/byte-unit-5.1.2.crate) = d405b41420a161b4e1dd5a52e3349f41b4dae9a39be02aff1d67fe53256430ac
-SIZE (rust/crates/byte-unit-5.1.2.crate) = 26342
-SHA256 (rust/crates/bytecheck-0.6.11.crate) = 8b6372023ac861f6e6dc89c8344a8f398fb42aaba2b5dbc649ca0c0e9dbcb627
-SIZE (rust/crates/bytecheck-0.6.11.crate) = 8300
-SHA256 (rust/crates/bytecheck_derive-0.6.11.crate) = a7ec4c6f261935ad534c0c22dbef2201b45918860eb1c574b972bd213a76af61
-SIZE (rust/crates/bytecheck_derive-0.6.11.crate) = 5476
-SHA256 (rust/crates/bytes-1.5.0.crate) = a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223
-SIZE (rust/crates/bytes-1.5.0.crate) = 58909
+SHA256 (rust/crates/bumpalo-3.15.4.crate) = 7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa
+SIZE (rust/crates/bumpalo-3.15.4.crate) = 85028
+SHA256 (rust/crates/byte-unit-5.1.4.crate) = 33ac19bdf0b2665407c39d82dbc937e951e7e2001609f0fb32edd0af45a2d63e
+SIZE (rust/crates/byte-unit-5.1.4.crate) = 26354
+SHA256 (rust/crates/bytecheck-0.6.12.crate) = 23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2
+SIZE (rust/crates/bytecheck-0.6.12.crate) = 8202
+SHA256 (rust/crates/bytecheck_derive-0.6.12.crate) = 3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659
+SIZE (rust/crates/bytecheck_derive-0.6.12.crate) = 5415
+SHA256 (rust/crates/bytes-1.6.0.crate) = 514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9
+SIZE (rust/crates/bytes-1.6.0.crate) = 60605
SHA256 (rust/crates/bytestring-1.3.1.crate) = 74d80203ea6b29df88012294f62733de21cfeab47f17b41af3a38bc30a03ee72
SIZE (rust/crates/bytestring-1.3.1.crate) = 9142
-SHA256 (rust/crates/cc-1.0.83.crate) = f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0
-SIZE (rust/crates/cc-1.0.83.crate) = 68343
+SHA256 (rust/crates/cc-1.0.90.crate) = 8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5
+SIZE (rust/crates/cc-1.0.90.crate) = 73954
SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
SHA256 (rust/crates/cfg_aliases-0.1.1.crate) = fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e
SIZE (rust/crates/cfg_aliases-0.1.1.crate) = 6009
-SHA256 (rust/crates/chrono-0.4.31.crate) = 7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38
-SIZE (rust/crates/chrono-0.4.31.crate) = 214513
-SHA256 (rust/crates/colored-2.0.4.crate) = 2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6
-SIZE (rust/crates/colored-2.0.4.crate) = 23654
+SHA256 (rust/crates/chrono-0.4.37.crate) = 8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e
+SIZE (rust/crates/chrono-0.4.37.crate) = 234441
+SHA256 (rust/crates/colored-2.1.0.crate) = cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8
+SIZE (rust/crates/colored-2.1.0.crate) = 23348
SHA256 (rust/crates/comfy-table-6.2.0.crate) = 7e959d788268e3bf9d35ace83e81b124190378e4c91c9067524675e33394b8ba
SIZE (rust/crates/comfy-table-6.2.0.crate) = 67803
-SHA256 (rust/crates/config-0.13.4.crate) = 23738e11972c7643e4ec947840fc463b6a571afcd3e735bdfce7d03c7a784aca
-SIZE (rust/crates/config-0.13.4.crate) = 80328
+SHA256 (rust/crates/config-0.14.0.crate) = 7328b20597b53c2454f0b1919720c25c7339051c02b72b7e05409e00b14132be
+SIZE (rust/crates/config-0.14.0.crate) = 79442
SHA256 (rust/crates/convert_case-0.4.0.crate) = 6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e
SIZE (rust/crates/convert_case-0.4.0.crate) = 8098
SHA256 (rust/crates/cookie-0.16.2.crate) = e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb
SIZE (rust/crates/cookie-0.16.2.crate) = 34632
SHA256 (rust/crates/core-foundation-sys-0.8.6.crate) = 06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f
SIZE (rust/crates/core-foundation-sys-0.8.6.crate) = 37629
-SHA256 (rust/crates/cpufeatures-0.2.11.crate) = ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0
-SIZE (rust/crates/cpufeatures-0.2.11.crate) = 12727
-SHA256 (rust/crates/crc32fast-1.3.2.crate) = b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d
-SIZE (rust/crates/crc32fast-1.3.2.crate) = 38661
-SHA256 (rust/crates/crossbeam-channel-0.5.8.crate) = a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200
-SIZE (rust/crates/crossbeam-channel-0.5.8.crate) = 90455
-SHA256 (rust/crates/crossbeam-utils-0.8.16.crate) = 5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294
-SIZE (rust/crates/crossbeam-utils-0.8.16.crate) = 42508
+SHA256 (rust/crates/cpufeatures-0.2.12.crate) = 53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504
+SIZE (rust/crates/cpufeatures-0.2.12.crate) = 12837
+SHA256 (rust/crates/crc32fast-1.4.0.crate) = b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa
+SIZE (rust/crates/crc32fast-1.4.0.crate) = 38665
+SHA256 (rust/crates/crossbeam-channel-0.5.12.crate) = ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95
+SIZE (rust/crates/crossbeam-channel-0.5.12.crate) = 90515
+SHA256 (rust/crates/crossbeam-utils-0.8.19.crate) = 248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345
+SIZE (rust/crates/crossbeam-utils-0.8.19.crate) = 42328
SHA256 (rust/crates/crossterm-0.26.1.crate) = a84cda67535339806297f1b331d6dd6320470d2a0fe65381e79ee9e156dd3d13
SIZE (rust/crates/crossterm-0.26.1.crate) = 122317
SHA256 (rust/crates/crossterm-0.27.0.crate) = f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df
@@ -135,38 +133,34 @@ SHA256 (rust/crates/crossterm_winapi-0.9.1.crate) = acdd7c62a3665c7f6830a51635d9
SIZE (rust/crates/crossterm_winapi-0.9.1.crate) = 16027
SHA256 (rust/crates/crypto-common-0.1.6.crate) = 1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3
SIZE (rust/crates/crypto-common-0.1.6.crate) = 8760
-SHA256 (rust/crates/darling-0.20.3.crate) = 0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e
-SIZE (rust/crates/darling-0.20.3.crate) = 26066
-SHA256 (rust/crates/darling_core-0.20.3.crate) = 177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621
-SIZE (rust/crates/darling_core-0.20.3.crate) = 60281
-SHA256 (rust/crates/darling_macro-0.20.3.crate) = 836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5
-SIZE (rust/crates/darling_macro-0.20.3.crate) = 1859
-SHA256 (rust/crates/deranged-0.3.10.crate) = 8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc
-SIZE (rust/crates/deranged-0.3.10.crate) = 17803
+SHA256 (rust/crates/darling-0.20.8.crate) = 54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391
+SIZE (rust/crates/darling-0.20.8.crate) = 31234
+SHA256 (rust/crates/darling_core-0.20.8.crate) = 9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f
+SIZE (rust/crates/darling_core-0.20.8.crate) = 64442
+SHA256 (rust/crates/darling_macro-0.20.8.crate) = a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f
+SIZE (rust/crates/darling_macro-0.20.8.crate) = 1856
+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.17.crate) = 4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321
SIZE (rust/crates/derive_more-0.99.17.crate) = 55771
SHA256 (rust/crates/digest-0.10.7.crate) = 9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292
SIZE (rust/crates/digest-0.10.7.crate) = 19557
-SHA256 (rust/crates/doc-comment-0.3.3.crate) = fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10
-SIZE (rust/crates/doc-comment-0.3.3.crate) = 4123
SHA256 (rust/crates/dotenvy-0.15.7.crate) = 1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b
SIZE (rust/crates/dotenvy-0.15.7.crate) = 20293
-SHA256 (rust/crates/either-1.9.0.crate) = a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07
-SIZE (rust/crates/either-1.9.0.crate) = 16660
+SHA256 (rust/crates/either-1.10.0.crate) = 11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a
+SIZE (rust/crates/either-1.10.0.crate) = 18334
SHA256 (rust/crates/encoding_rs-0.8.33.crate) = 7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1
SIZE (rust/crates/encoding_rs-0.8.33.crate) = 1370071
SHA256 (rust/crates/equivalent-1.0.1.crate) = 5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5
SIZE (rust/crates/equivalent-1.0.1.crate) = 6615
SHA256 (rust/crates/errno-0.3.8.crate) = a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245
SIZE (rust/crates/errno-0.3.8.crate) = 10645
-SHA256 (rust/crates/fastrand-2.0.1.crate) = 25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5
-SIZE (rust/crates/fastrand-2.0.1.crate) = 14664
+SHA256 (rust/crates/fastrand-2.0.2.crate) = 658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984
+SIZE (rust/crates/fastrand-2.0.2.crate) = 14674
SHA256 (rust/crates/file-id-0.1.0.crate) = e13be71e6ca82e91bc0cb862bebaac0b2d1924a5a1d970c822b2f98b63fda8c3
SIZE (rust/crates/file-id-0.1.0.crate) = 2094
-SHA256 (rust/crates/filetime-0.2.22.crate) = d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0
-SIZE (rust/crates/filetime-0.2.22.crate) = 15029
-SHA256 (rust/crates/finl_unicode-1.2.0.crate) = 8fcfdc7a0362c9f4444381a9e697c79d435fe65b52a37466fc2c1184cee9edc6
-SIZE (rust/crates/finl_unicode-1.2.0.crate) = 687752
+SHA256 (rust/crates/filetime-0.2.23.crate) = 1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd
+SIZE (rust/crates/filetime-0.2.23.crate) = 14942
SHA256 (rust/crates/flate2-1.0.28.crate) = 46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e
SIZE (rust/crates/flate2-1.0.28.crate) = 73690
SHA256 (rust/crates/fnv-1.0.7.crate) = 3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1
@@ -181,52 +175,48 @@ SHA256 (rust/crates/fsevent-sys-4.1.0.crate) = 76ee7a02da4d231650c7cea31349b889b
SIZE (rust/crates/fsevent-sys-4.1.0.crate) = 4620
SHA256 (rust/crates/funty-2.0.0.crate) = e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c
SIZE (rust/crates/funty-2.0.0.crate) = 13160
-SHA256 (rust/crates/futures-channel-0.3.29.crate) = ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb
-SIZE (rust/crates/futures-channel-0.3.29.crate) = 32432
-SHA256 (rust/crates/futures-core-0.3.29.crate) = eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c
-SIZE (rust/crates/futures-core-0.3.29.crate) = 14808
-SHA256 (rust/crates/futures-executor-0.3.29.crate) = 0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc
-SIZE (rust/crates/futures-executor-0.3.29.crate) = 17745
-SHA256 (rust/crates/futures-macro-0.3.29.crate) = 53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb
-SIZE (rust/crates/futures-macro-0.3.29.crate) = 11278
-SHA256 (rust/crates/futures-sink-0.3.29.crate) = e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817
-SIZE (rust/crates/futures-sink-0.3.29.crate) = 7853
-SHA256 (rust/crates/futures-task-0.3.29.crate) = efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2
-SIZE (rust/crates/futures-task-0.3.29.crate) = 11853
-SHA256 (rust/crates/futures-util-0.3.29.crate) = a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104
-SIZE (rust/crates/futures-util-0.3.29.crate) = 160207
+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-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/generic-array-0.14.7.crate) = 85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a
SIZE (rust/crates/generic-array-0.14.7.crate) = 15950
-SHA256 (rust/crates/getrandom-0.2.11.crate) = fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f
-SIZE (rust/crates/getrandom-0.2.11.crate) = 35391
+SHA256 (rust/crates/getrandom-0.2.12.crate) = 190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5
+SIZE (rust/crates/getrandom-0.2.12.crate) = 36163
SHA256 (rust/crates/gimli-0.28.1.crate) = 4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253
SIZE (rust/crates/gimli-0.28.1.crate) = 270497
SHA256 (rust/crates/glob-0.3.1.crate) = d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b
SIZE (rust/crates/glob-0.3.1.crate) = 18880
-SHA256 (rust/crates/h2-0.3.22.crate) = 4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178
-SIZE (rust/crates/h2-0.3.22.crate) = 166413
+SHA256 (rust/crates/h2-0.3.25.crate) = 4fbd2820c5e49886948654ab546d0688ff24530286bdcf8fca3cefb16d4618eb
+SIZE (rust/crates/h2-0.3.25.crate) = 167894
SHA256 (rust/crates/hashbrown-0.12.3.crate) = 8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888
SIZE (rust/crates/hashbrown-0.12.3.crate) = 102968
SHA256 (rust/crates/hashbrown-0.14.3.crate) = 290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604
SIZE (rust/crates/hashbrown-0.14.3.crate) = 141425
-SHA256 (rust/crates/headers-0.3.9.crate) = 06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270
-SIZE (rust/crates/headers-0.3.9.crate) = 68290
-SHA256 (rust/crates/headers-core-0.2.0.crate) = e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429
-SIZE (rust/crates/headers-core-0.2.0.crate) = 2380
SHA256 (rust/crates/heck-0.4.1.crate) = 95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8
SIZE (rust/crates/heck-0.4.1.crate) = 11567
-SHA256 (rust/crates/hermit-abi-0.3.3.crate) = d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7
-SIZE (rust/crates/hermit-abi-0.3.3.crate) = 14253
+SHA256 (rust/crates/hermit-abi-0.3.9.crate) = d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024
+SIZE (rust/crates/hermit-abi-0.3.9.crate) = 16165
SHA256 (rust/crates/hotwatch-0.5.0.crate) = 9140219159163c92eb58c37955a0cc57c5814c3c44521955aae376064c668756
SIZE (rust/crates/hotwatch-0.5.0.crate) = 16507
-SHA256 (rust/crates/http-0.2.11.crate) = 8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb
-SIZE (rust/crates/http-0.2.11.crate) = 100478
-SHA256 (rust/crates/http-body-0.4.5.crate) = d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1
-SIZE (rust/crates/http-body-0.4.5.crate) = 9242
+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-body-0.4.6.crate) = 7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2
+SIZE (rust/crates/http-body-0.4.6.crate) = 10773
SHA256 (rust/crates/http-range-0.1.5.crate) = 21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573
SIZE (rust/crates/http-range-0.1.5.crate) = 4871
-SHA256 (rust/crates/http-range-header-0.3.1.crate) = add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f
-SIZE (rust/crates/http-range-header-0.3.1.crate) = 7712
SHA256 (rust/crates/httparse-1.8.0.crate) = d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904
SIZE (rust/crates/httparse-1.8.0.crate) = 29954
SHA256 (rust/crates/httpdate-1.0.3.crate) = df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9
@@ -235,12 +225,12 @@ SHA256 (rust/crates/humantime-2.1.0.crate) = 9a3a5bfb195931eeb336b2a7b4d761daec8
SIZE (rust/crates/humantime-2.1.0.crate) = 16749
SHA256 (rust/crates/humantime-serde-1.1.1.crate) = 57a3db5ea5923d99402c94e9feb261dc5ee9b4efa158b0315f788cf549cc200c
SIZE (rust/crates/humantime-serde-1.1.1.crate) = 7886
-SHA256 (rust/crates/hyper-0.14.27.crate) = ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468
-SIZE (rust/crates/hyper-0.14.27.crate) = 195700
+SHA256 (rust/crates/hyper-0.14.28.crate) = bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80
+SIZE (rust/crates/hyper-0.14.28.crate) = 197204
SHA256 (rust/crates/hyper-timeout-0.4.1.crate) = bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1
SIZE (rust/crates/hyper-timeout-0.4.1.crate) = 13805
-SHA256 (rust/crates/iana-time-zone-0.1.58.crate) = 8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20
-SIZE (rust/crates/iana-time-zone-0.1.58.crate) = 27020
+SHA256 (rust/crates/iana-time-zone-0.1.60.crate) = e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141
+SIZE (rust/crates/iana-time-zone-0.1.60.crate) = 27074
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/ident_case-1.0.1.crate) = b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39
@@ -251,28 +241,24 @@ SHA256 (rust/crates/impl-more-0.1.6.crate) = 206ca75c9c03ba3d4ace2460e57b189f39f
SIZE (rust/crates/impl-more-0.1.6.crate) = 13967
SHA256 (rust/crates/indexmap-1.9.3.crate) = bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99
SIZE (rust/crates/indexmap-1.9.3.crate) = 54653
-SHA256 (rust/crates/indexmap-2.1.0.crate) = d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f
-SIZE (rust/crates/indexmap-2.1.0.crate) = 68224
+SHA256 (rust/crates/indexmap-2.2.6.crate) = 168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26
+SIZE (rust/crates/indexmap-2.2.6.crate) = 82420
SHA256 (rust/crates/infer-0.15.0.crate) = cb33622da908807a06f9513c19b3c1ad50fab3e4137d82a78107d502075aa199
SIZE (rust/crates/infer-0.15.0.crate) = 18734
SHA256 (rust/crates/inotify-0.9.6.crate) = f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff
SIZE (rust/crates/inotify-0.9.6.crate) = 22971
SHA256 (rust/crates/inotify-sys-0.1.5.crate) = e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb
SIZE (rust/crates/inotify-sys-0.1.5.crate) = 6965
-SHA256 (rust/crates/is-terminal-0.4.9.crate) = cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b
-SIZE (rust/crates/is-terminal-0.4.9.crate) = 8109
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.9.crate) = af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38
-SIZE (rust/crates/itoa-1.0.9.crate) = 10492
-SHA256 (rust/crates/jobserver-0.1.27.crate) = 8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d
-SIZE (rust/crates/jobserver-0.1.27.crate) = 24774
-SHA256 (rust/crates/js-sys-0.3.66.crate) = cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca
-SIZE (rust/crates/js-sys-0.3.66.crate) = 80765
-SHA256 (rust/crates/jsonwebtoken-9.2.0.crate) = 5c7ea04a7c5c055c175f189b6dc6ba036fd62306b58c66c9f6389036c503a3f4
-SIZE (rust/crates/jsonwebtoken-9.2.0.crate) = 48775
+SHA256 (rust/crates/itoa-1.0.11.crate) = 49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b
+SIZE (rust/crates/itoa-1.0.11.crate) = 10563
+SHA256 (rust/crates/jobserver-0.1.28.crate) = ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6
+SIZE (rust/crates/jobserver-0.1.28.crate) = 25543
+SHA256 (rust/crates/js-sys-0.3.69.crate) = 29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d
+SIZE (rust/crates/js-sys-0.3.69.crate) = 81083
SHA256 (rust/crates/kqueue-1.0.8.crate) = 7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c
SIZE (rust/crates/kqueue-1.0.8.crate) = 12642
SHA256 (rust/crates/kqueue-sys-1.0.4.crate) = ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b
@@ -285,36 +271,36 @@ SHA256 (rust/crates/lazy-regex-proc_macros-3.1.0.crate) = 44bcd58e6c97a7fcbaffcd
SIZE (rust/crates/lazy-regex-proc_macros-3.1.0.crate) = 4490
SHA256 (rust/crates/lazy_static-1.4.0.crate) = e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646
SIZE (rust/crates/lazy_static-1.4.0.crate) = 10443
-SHA256 (rust/crates/libc-0.2.150.crate) = 89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c
-SIZE (rust/crates/libc-0.2.150.crate) = 719359
+SHA256 (rust/crates/libc-0.2.153.crate) = 9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd
+SIZE (rust/crates/libc-0.2.153.crate) = 740614
SHA256 (rust/crates/linked-hash-map-0.5.6.crate) = 0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f
SIZE (rust/crates/linked-hash-map-0.5.6.crate) = 15049
-SHA256 (rust/crates/linux-raw-sys-0.4.12.crate) = c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456
-SIZE (rust/crates/linux-raw-sys-0.4.12.crate) = 1465800
+SHA256 (rust/crates/linux-raw-sys-0.4.13.crate) = 01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c
+SIZE (rust/crates/linux-raw-sys-0.4.13.crate) = 1493855
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.11.crate) = 3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45
SIZE (rust/crates/lock_api-0.4.11.crate) = 27487
-SHA256 (rust/crates/log-0.4.20.crate) = b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f
-SIZE (rust/crates/log-0.4.20.crate) = 38307
+SHA256 (rust/crates/log-0.4.21.crate) = 90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c
+SIZE (rust/crates/log-0.4.21.crate) = 43442
SHA256 (rust/crates/matchers-0.1.0.crate) = 8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558
SIZE (rust/crates/matchers-0.1.0.crate) = 6948
SHA256 (rust/crates/matchit-0.7.3.crate) = 0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94
SIZE (rust/crates/matchit-0.7.3.crate) = 30372
-SHA256 (rust/crates/memchr-2.6.4.crate) = f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167
-SIZE (rust/crates/memchr-2.6.4.crate) = 94439
+SHA256 (rust/crates/memchr-2.7.1.crate) = 523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149
+SIZE (rust/crates/memchr-2.7.1.crate) = 96307
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.4.crate) = 4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef
SIZE (rust/crates/mime_guess-2.0.4.crate) = 26399
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.7.1.crate) = e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7
-SIZE (rust/crates/miniz_oxide-0.7.1.crate) = 55194
-SHA256 (rust/crates/mio-0.8.9.crate) = 3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0
-SIZE (rust/crates/mio-0.8.9.crate) = 102227
+SHA256 (rust/crates/miniz_oxide-0.7.2.crate) = 9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7
+SIZE (rust/crates/miniz_oxide-0.7.2.crate) = 55731
+SHA256 (rust/crates/mio-0.8.11.crate) = a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c
+SIZE (rust/crates/mio-0.8.11.crate) = 102983
SHA256 (rust/crates/nom-7.1.3.crate) = d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a
SIZE (rust/crates/nom-7.1.3.crate) = 117570
SHA256 (rust/crates/notify-6.1.1.crate) = 6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d
@@ -323,38 +309,28 @@ SHA256 (rust/crates/notify-debouncer-full-0.1.0.crate) = f4812c1eb49be776fb8df49
SIZE (rust/crates/notify-debouncer-full-0.1.0.crate) = 13595
SHA256 (rust/crates/nu-ansi-term-0.46.0.crate) = 77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84
SIZE (rust/crates/nu-ansi-term-0.46.0.crate) = 24311
-SHA256 (rust/crates/num-bigint-0.4.4.crate) = 608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0
-SIZE (rust/crates/num-bigint-0.4.4.crate) = 99369
-SHA256 (rust/crates/num-integer-0.1.45.crate) = 225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9
-SIZE (rust/crates/num-integer-0.1.45.crate) = 22529
-SHA256 (rust/crates/num-traits-0.2.17.crate) = 39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c
-SIZE (rust/crates/num-traits-0.2.17.crate) = 50190
+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.18.crate) = da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a
+SIZE (rust/crates/num-traits-0.2.18.crate) = 51930
SHA256 (rust/crates/num_cpus-1.16.0.crate) = 4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43
SIZE (rust/crates/num_cpus-1.16.0.crate) = 15713
-SHA256 (rust/crates/object-0.32.1.crate) = 9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0
-SIZE (rust/crates/object-0.32.1.crate) = 275463
-SHA256 (rust/crates/once_cell-1.18.0.crate) = dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d
-SIZE (rust/crates/once_cell-1.18.0.crate) = 32969
-SHA256 (rust/crates/openssl-0.10.61.crate) = 6b8419dc8cc6d866deb801274bba2e6f8f6108c1bb7fcc10ee5ab864931dbb45
-SIZE (rust/crates/openssl-0.10.61.crate) = 268171
+SHA256 (rust/crates/object-0.32.2.crate) = a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441
+SIZE (rust/crates/object-0.32.2.crate) = 286994
+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.64.crate) = 95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f
+SIZE (rust/crates/openssl-0.10.64.crate) = 272306
SHA256 (rust/crates/openssl-macros-0.1.1.crate) = a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c
SIZE (rust/crates/openssl-macros-0.1.1.crate) = 5601
-SHA256 (rust/crates/openssl-sys-0.9.97.crate) = c3eaad34cdd97d81de97964fc7f29e2d104f483840d906ef56daa1912338460b
-SIZE (rust/crates/openssl-sys-0.9.97.crate) = 67910
+SHA256 (rust/crates/openssl-sys-0.9.101.crate) = dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff
+SIZE (rust/crates/openssl-sys-0.9.101.crate) = 68568
SHA256 (rust/crates/opentelemetry-0.21.0.crate) = 1e32339a5dc40459130b3bd269e9892439f55b33e772d2a9d402a789baaf4e8a
SIZE (rust/crates/opentelemetry-0.21.0.crate) = 70114
-SHA256 (rust/crates/opentelemetry-appender-tracing-0.2.0.crate) = 12c4bd073648dae8ac45cfc81588d74b3dc5f334119ac08567ddcbfe16f2d809
-SIZE (rust/crates/opentelemetry-appender-tracing-0.2.0.crate) = 11491
SHA256 (rust/crates/opentelemetry-http-0.10.0.crate) = 7f51189ce8be654f9b5f7e70e49967ed894e84a06fc35c6c042e64ac1fc5399e
SIZE (rust/crates/opentelemetry-http-0.10.0.crate) = 8792
-SHA256 (rust/crates/opentelemetry-otlp-0.14.0.crate) = f24cda83b20ed2433c68241f918d0f6fdec8b1d43b7a9590ab4420c5095ca930
-SIZE (rust/crates/opentelemetry-otlp-0.14.0.crate) = 30982
-SHA256 (rust/crates/opentelemetry-proto-0.4.0.crate) = a2e155ce5cc812ea3d1dffbd1539aed653de4bf4882d60e6e04dcf0901d674e1
-SIZE (rust/crates/opentelemetry-proto-0.4.0.crate) = 159421
-SHA256 (rust/crates/opentelemetry-semantic-conventions-0.13.0.crate) = f5774f1ef1f982ef2a447f6ee04ec383981a3ab99c8e77a1a7b30182e65bbc84
-SIZE (rust/crates/opentelemetry-semantic-conventions-0.13.0.crate) = 32259
-SHA256 (rust/crates/opentelemetry_sdk-0.21.1.crate) = 968ba3f2ca03e90e5187f5e4f46c791ef7f2c163ae87789c8ce5f5ca3b7b7de5
-SIZE (rust/crates/opentelemetry_sdk-0.21.1.crate) = 118942
+SHA256 (rust/crates/opentelemetry_sdk-0.21.2.crate) = 2f16aec8a98a457a52664d69e0091bac3a0abd18ead9b641cb00202ba4e0efe4
+SIZE (rust/crates/opentelemetry_sdk-0.21.2.crate) = 119761
SHA256 (rust/crates/ordered-float-4.2.0.crate) = a76df7075c7d4d01fdcb46c912dd17fba5b60c78ea480b475f2b6ab6f666584e
SIZE (rust/crates/ordered-float-4.2.0.crate) = 20510
SHA256 (rust/crates/overload-0.1.1.crate) = b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39
@@ -367,42 +343,38 @@ SHA256 (rust/crates/parse-size-1.0.0.crate) = 944553dd59c802559559161f9816429058
SIZE (rust/crates/parse-size-1.0.0.crate) = 6588
SHA256 (rust/crates/paste-1.0.14.crate) = de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c
SIZE (rust/crates/paste-1.0.14.crate) = 18157
+SHA256 (rust/crates/path-clean-1.0.1.crate) = 17359afc20d7ab31fdb42bb844c8b3bb1dabd7dcf7e68428492da7f16966fcef
+SIZE (rust/crates/path-clean-1.0.1.crate) = 4514
SHA256 (rust/crates/pathdiff-0.2.1.crate) = 8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd
SIZE (rust/crates/pathdiff-0.2.1.crate) = 7142
-SHA256 (rust/crates/pem-3.0.2.crate) = 3163d2912b7c3b52d651a055f2c7eec9ba5cd22d26ef75b8dd3a59980b185923
-SIZE (rust/crates/pem-3.0.2.crate) = 12900
SHA256 (rust/crates/percent-encoding-2.3.1.crate) = e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e
SIZE (rust/crates/percent-encoding-2.3.1.crate) = 10235
SHA256 (rust/crates/petname-1.1.3.crate) = fce4164d60963550beb856b011fdf32b03b0e8bc0c3fce023c7b0ccecddf7950
SIZE (rust/crates/petname-1.1.3.crate) = 223168
-SHA256 (rust/crates/pin-project-1.1.3.crate) = fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422
-SIZE (rust/crates/pin-project-1.1.3.crate) = 57740
-SHA256 (rust/crates/pin-project-internal-1.1.3.crate) = 4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405
-SIZE (rust/crates/pin-project-internal-1.1.3.crate) = 27824
+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.13.crate) = 8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58
SIZE (rust/crates/pin-project-lite-0.2.13.crate) = 29141
SHA256 (rust/crates/pin-utils-0.1.0.crate) = 8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184
SIZE (rust/crates/pin-utils-0.1.0.crate) = 7580
-SHA256 (rust/crates/pkg-config-0.3.27.crate) = 26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964
-SIZE (rust/crates/pkg-config-0.3.27.crate) = 18838
+SHA256 (rust/crates/pkg-config-0.3.30.crate) = d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec
+SIZE (rust/crates/pkg-config-0.3.30.crate) = 20613
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.17.crate) = 5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de
SIZE (rust/crates/ppv-lite86-0.2.17.crate) = 22242
-SHA256 (rust/crates/proc-macro-crate-2.0.1.crate) = 97dc5fea232fc28d2f597b37c4876b348a40e33f3b02cc975c8d006d78d94b1a
-SIZE (rust/crates/proc-macro-crate-2.0.1.crate) = 10989
+SHA256 (rust/crates/proc-macro-crate-3.1.0.crate) = 6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284
+SIZE (rust/crates/proc-macro-crate-3.1.0.crate) = 11084
SHA256 (rust/crates/proc-macro-error-1.0.4.crate) = da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c
SIZE (rust/crates/proc-macro-error-1.0.4.crate) = 25293
SHA256 (rust/crates/proc-macro-error-attr-1.0.4.crate) = a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869
SIZE (rust/crates/proc-macro-error-attr-1.0.4.crate) = 7971
-SHA256 (rust/crates/proc-macro2-1.0.70.crate) = 39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b
-SIZE (rust/crates/proc-macro2-1.0.70.crate) = 44343
-SHA256 (rust/crates/prost-0.11.9.crate) = 0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd
-SIZE (rust/crates/prost-0.11.9.crate) = 28958
+SHA256 (rust/crates/proc-macro2-1.0.79.crate) = e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e
+SIZE (rust/crates/proc-macro2-1.0.79.crate) = 47200
SHA256 (rust/crates/prost-0.12.3.crate) = 146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a
SIZE (rust/crates/prost-0.12.3.crate) = 29461
-SHA256 (rust/crates/prost-derive-0.11.9.crate) = e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4
-SIZE (rust/crates/prost-derive-0.11.9.crate) = 19513
SHA256 (rust/crates/prost-derive-0.12.3.crate) = efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e
SIZE (rust/crates/prost-derive-0.12.3.crate) = 19603
SHA256 (rust/crates/prost-types-0.12.3.crate) = 193898f59edcf43c26227dcd4c8427f00d99d61e95dcde58dabd49fa291d470e
@@ -413,8 +385,8 @@ SHA256 (rust/crates/ptr_meta-0.1.4.crate) = 0738ccf7ea06b608c10564b31debd4f5bc5e
SIZE (rust/crates/ptr_meta-0.1.4.crate) = 5754
SHA256 (rust/crates/ptr_meta_derive-0.1.4.crate) = 16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac
SIZE (rust/crates/ptr_meta_derive-0.1.4.crate) = 2302
-SHA256 (rust/crates/quote-1.0.33.crate) = 5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae
-SIZE (rust/crates/quote-1.0.33.crate) = 28090
+SHA256 (rust/crates/quote-1.0.35.crate) = 291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef
+SIZE (rust/crates/quote-1.0.35.crate) = 28136
SHA256 (rust/crates/radium-0.7.0.crate) = dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09
SIZE (rust/crates/radium-0.7.0.crate) = 10906
SHA256 (rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404
@@ -423,48 +395,42 @@ SHA256 (rust/crates/rand_chacha-0.3.1.crate) = e6c10a63a0fa32252be49d21e7709d4d4
SIZE (rust/crates/rand_chacha-0.3.1.crate) = 15251
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.3.5.crate) = 567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29
-SIZE (rust/crates/redox_syscall-0.3.5.crate) = 23404
SHA256 (rust/crates/redox_syscall-0.4.1.crate) = 4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa
SIZE (rust/crates/redox_syscall-0.4.1.crate) = 24858
-SHA256 (rust/crates/regex-1.10.2.crate) = 380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343
-SIZE (rust/crates/regex-1.10.2.crate) = 252839
+SHA256 (rust/crates/regex-1.10.4.crate) = c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c
+SIZE (rust/crates/regex-1.10.4.crate) = 253191
SHA256 (rust/crates/regex-automata-0.1.10.crate) = 6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132
SIZE (rust/crates/regex-automata-0.1.10.crate) = 114533
-SHA256 (rust/crates/regex-automata-0.4.3.crate) = 5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f
-SIZE (rust/crates/regex-automata-0.4.3.crate) = 617011
+SHA256 (rust/crates/regex-automata-0.4.6.crate) = 86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea
+SIZE (rust/crates/regex-automata-0.4.6.crate) = 617565
SHA256 (rust/crates/regex-syntax-0.6.29.crate) = f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1
SIZE (rust/crates/regex-syntax-0.6.29.crate) = 299752
-SHA256 (rust/crates/regex-syntax-0.8.2.crate) = c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f
-SIZE (rust/crates/regex-syntax-0.8.2.crate) = 347228
-SHA256 (rust/crates/rend-0.4.1.crate) = a2571463863a6bd50c32f94402933f03457a3fbaf697a707c5be741e459f08fd
-SIZE (rust/crates/rend-0.4.1.crate) = 9305
-SHA256 (rust/crates/ring-0.17.7.crate) = 688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74
-SIZE (rust/crates/ring-0.17.7.crate) = 4146482
-SHA256 (rust/crates/rkyv-0.7.43.crate) = 527a97cdfef66f65998b5f3b637c26f5a5ec09cc52a3f9932313ac645f4190f5
-SIZE (rust/crates/rkyv-0.7.43.crate) = 115657
-SHA256 (rust/crates/rkyv_derive-0.7.43.crate) = b5c462a1328c8e67e4d6dbad1eb0355dd43e8ab432c6e227a43657f16ade5033
-SIZE (rust/crates/rkyv_derive-0.7.43.crate) = 18914
-SHA256 (rust/crates/rust_decimal-1.33.1.crate) = 06676aec5ccb8fc1da723cc8c0f9a46549f21ebb8753d3915c6c41db1e7f1dc4
-SIZE (rust/crates/rust_decimal-1.33.1.crate) = 125610
+SHA256 (rust/crates/regex-syntax-0.8.3.crate) = adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56
+SIZE (rust/crates/regex-syntax-0.8.3.crate) = 347497
+SHA256 (rust/crates/rend-0.4.2.crate) = 71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c
+SIZE (rust/crates/rend-0.4.2.crate) = 9324
+SHA256 (rust/crates/ring-0.17.8.crate) = c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d
+SIZE (rust/crates/ring-0.17.8.crate) = 4188554
+SHA256 (rust/crates/rkyv-0.7.44.crate) = 5cba464629b3394fc4dbc6f940ff8f5b4ff5c7aef40f29166fd4ad12acbc99c0
+SIZE (rust/crates/rkyv-0.7.44.crate) = 115686
+SHA256 (rust/crates/rkyv_derive-0.7.44.crate) = a7dddfff8de25e6f62b9d64e6e432bf1c6736c57d20323e15ee10435fbda7c65
+SIZE (rust/crates/rkyv_derive-0.7.44.crate) = 18912
+SHA256 (rust/crates/rust_decimal-1.35.0.crate) = 1790d1c4c0ca81211399e0e0af16333276f375209e71a37b67698a373db5b47a
+SIZE (rust/crates/rust_decimal-1.35.0.crate) = 128340
SHA256 (rust/crates/rustc-demangle-0.1.23.crate) = d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76
SIZE (rust/crates/rustc-demangle-0.1.23.crate) = 28970
-SHA256 (rust/crates/rustc-hash-1.1.0.crate) = 08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2
-SIZE (rust/crates/rustc-hash-1.1.0.crate) = 9331
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.38.26.crate) = 9470c4bf8246c8daf25f9598dca807fb6510347b1e1cfa55749113850c79d88a
-SIZE (rust/crates/rustix-0.38.26.crate) = 364525
-SHA256 (rust/crates/rustls-0.21.9.crate) = 629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9
-SIZE (rust/crates/rustls-0.21.9.crate) = 283537
+SHA256 (rust/crates/rustix-0.38.32.crate) = 65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89
+SIZE (rust/crates/rustix-0.38.32.crate) = 376999
+SHA256 (rust/crates/rustls-0.21.10.crate) = f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba
+SIZE (rust/crates/rustls-0.21.10.crate) = 284920
SHA256 (rust/crates/rustls-webpki-0.101.7.crate) = 8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765
SIZE (rust/crates/rustls-webpki-0.101.7.crate) = 168808
-SHA256 (rust/crates/rustrict-0.7.12.crate) = cfe3300a40b60e76a856237ad1fe2210da1f40686705a2211688bb5742109a63
-SIZE (rust/crates/rustrict-0.7.12.crate) = 551933
SHA256 (rust/crates/rustversion-1.0.14.crate) = 7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4
SIZE (rust/crates/rustversion-1.0.14.crate) = 17261
-SHA256 (rust/crates/ryu-1.0.15.crate) = 1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741
-SIZE (rust/crates/ryu-1.0.15.crate) = 46906
+SHA256 (rust/crates/ryu-1.0.17.crate) = e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1
+SIZE (rust/crates/ryu-1.0.17.crate) = 47537
SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502
SIZE (rust/crates/same-file-1.0.6.crate) = 10183
SHA256 (rust/crates/scopeguard-1.2.0.crate) = 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49
@@ -473,38 +439,38 @@ SHA256 (rust/crates/sct-0.7.1.crate) = da046153aa2352493d6cb7da4b6e5c0c057d8a1d0
SIZE (rust/crates/sct-0.7.1.crate) = 27501
SHA256 (rust/crates/seahash-4.1.0.crate) = 1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b
SIZE (rust/crates/seahash-4.1.0.crate) = 31976
-SHA256 (rust/crates/semver-1.0.20.crate) = 836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090
-SIZE (rust/crates/semver-1.0.20.crate) = 30451
-SHA256 (rust/crates/serde-1.0.193.crate) = 25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89
-SIZE (rust/crates/serde-1.0.193.crate) = 76863
-SHA256 (rust/crates/serde_derive-1.0.193.crate) = 43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3
-SIZE (rust/crates/serde_derive-1.0.193.crate) = 55692
-SHA256 (rust/crates/serde_json-1.0.108.crate) = 3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b
-SIZE (rust/crates/serde_json-1.0.108.crate) = 146476
-SHA256 (rust/crates/serde_path_to_error-0.1.14.crate) = 4beec8bce849d58d06238cb50db2e1c417cfeafa4c63f692b15c82b7c80f8335
-SIZE (rust/crates/serde_path_to_error-0.1.14.crate) = 16553
+SHA256 (rust/crates/semver-1.0.22.crate) = 92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca
+SIZE (rust/crates/semver-1.0.22.crate) = 30446
+SHA256 (rust/crates/serde-1.0.197.crate) = 3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2
+SIZE (rust/crates/serde-1.0.197.crate) = 77087
+SHA256 (rust/crates/serde_derive-1.0.197.crate) = 7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b
+SIZE (rust/crates/serde_derive-1.0.197.crate) = 55771
+SHA256 (rust/crates/serde_json-1.0.115.crate) = 12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd
+SIZE (rust/crates/serde_json-1.0.115.crate) = 147100
SHA256 (rust/crates/serde_plain-1.0.2.crate) = 9ce1fc6db65a611022b23a0dec6975d63fb80a302cb3388835ff02c097258d50
SIZE (rust/crates/serde_plain-1.0.2.crate) = 11183
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.5.crate) = eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1
+SIZE (rust/crates/serde_spanned-0.6.5.crate) = 8349
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/sharded-slab-0.1.7.crate) = f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6
SIZE (rust/crates/sharded-slab-0.1.7.crate) = 58227
-SHA256 (rust/crates/shuttle-actix-web-0.35.1.crate) = 7ca8b5015eaea3b3bc38078936dc21dbc46a352e736319c80e4422a77c31dcc4
-SIZE (rust/crates/shuttle-actix-web-0.35.1.crate) = 1648
-SHA256 (rust/crates/shuttle-codegen-0.35.1.crate) = 1b99c06b8adfb88b971c2bc2662252a6ec85f4e041c7b0add64499fbdfd71b18
-SIZE (rust/crates/shuttle-codegen-0.35.1.crate) = 11507
-SHA256 (rust/crates/shuttle-common-0.35.1.crate) = 7e1ba1b036ce303eba6982c7a9d43021d121ccba84db43c3c264f8bf22b6bdb7
-SIZE (rust/crates/shuttle-common-0.35.1.crate) = 35656
-SHA256 (rust/crates/shuttle-proto-0.35.1.crate) = f86275eabcc469d6749d4dc2e091f6e120f04fde813cf7002e5dc60158ce571b
-SIZE (rust/crates/shuttle-proto-0.35.1.crate) = 13205
-SHA256 (rust/crates/shuttle-runtime-0.35.1.crate) = e057c62f2f77368591117411e8de4458f6df33d0c157875c96025c2435e0811f
-SIZE (rust/crates/shuttle-runtime-0.35.1.crate) = 40071
-SHA256 (rust/crates/shuttle-service-0.35.1.crate) = 46d7b998a1137b4aa55190549b1ab71c5c834531776358599925ed23c27e4b86
-SIZE (rust/crates/shuttle-service-0.35.1.crate) = 7458
+SHA256 (rust/crates/shuttle-actix-web-0.42.0.crate) = a6cc5c406b066c8c6d68d0165abf38c6484acd6121e7d238440fa46d846b777d
+SIZE (rust/crates/shuttle-actix-web-0.42.0.crate) = 1647
+SHA256 (rust/crates/shuttle-codegen-0.42.0.crate) = bbaaa74ae77edfc5590c87af97bfc15d0aff2db9ff4a5fd891be0a7dd0de8089
+SIZE (rust/crates/shuttle-codegen-0.42.0.crate) = 7727
+SHA256 (rust/crates/shuttle-common-0.42.0.crate) = 910ae1502f083563f06fee5d5ceb2a8b45f92c67ef7834806880484f15d79bb5
+SIZE (rust/crates/shuttle-common-0.42.0.crate) = 40556
+SHA256 (rust/crates/shuttle-proto-0.42.0.crate) = ad7aa381187faaa32562c1e3631047b1edd070c055be50a5f32d13a538110fd7
+SIZE (rust/crates/shuttle-proto-0.42.0.crate) = 15379
+SHA256 (rust/crates/shuttle-runtime-0.42.0.crate) = 322f013c5058e37bf19a9ad8af35a2ac139605b0cbd941c0d0a009d032e23b73
+SIZE (rust/crates/shuttle-runtime-0.42.0.crate) = 8848
+SHA256 (rust/crates/shuttle-service-0.42.0.crate) = 9118dcf5aea64a38a06875a744b6c7daf8aa41e56eb2ecea2a21fb8c42ff7db5
+SIZE (rust/crates/shuttle-service-0.42.0.crate) = 6654
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-mio-0.2.3.crate) = 29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af
@@ -513,16 +479,12 @@ SHA256 (rust/crates/signal-hook-registry-1.4.1.crate) = d8229b473baa5980ac72ef43
SIZE (rust/crates/signal-hook-registry-1.4.1.crate) = 17987
SHA256 (rust/crates/simdutf8-0.1.4.crate) = f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a
SIZE (rust/crates/simdutf8-0.1.4.crate) = 28621
-SHA256 (rust/crates/simple_asn1-0.6.2.crate) = adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085
-SIZE (rust/crates/simple_asn1-0.6.2.crate) = 15992
SHA256 (rust/crates/slab-0.4.9.crate) = 8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67
SIZE (rust/crates/slab-0.4.9.crate) = 17108
-SHA256 (rust/crates/smallvec-1.11.2.crate) = 4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970
-SIZE (rust/crates/smallvec-1.11.2.crate) = 34801
-SHA256 (rust/crates/socket2-0.4.10.crate) = 9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d
-SIZE (rust/crates/socket2-0.4.10.crate) = 45697
-SHA256 (rust/crates/socket2-0.5.5.crate) = 7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9
-SIZE (rust/crates/socket2-0.5.5.crate) = 54863
+SHA256 (rust/crates/smallvec-1.13.2.crate) = 3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67
+SIZE (rust/crates/smallvec-1.13.2.crate) = 35216
+SHA256 (rust/crates/socket2-0.5.6.crate) = 05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871
+SIZE (rust/crates/socket2-0.5.6.crate) = 55270
SHA256 (rust/crates/spin-0.9.8.crate) = 6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67
SIZE (rust/crates/spin-0.9.8.crate) = 38958
SHA256 (rust/crates/strfmt-0.2.4.crate) = 7a8348af2d9fc3258c8733b8d9d8db2e56f54b2363a4b5b81585c7875ed65e65
@@ -531,68 +493,66 @@ SHA256 (rust/crates/strsim-0.10.0.crate) = 73473c0e59e6d5812c5dfe2a064a6444949f0
SIZE (rust/crates/strsim-0.10.0.crate) = 11355
SHA256 (rust/crates/strum-0.24.1.crate) = 063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f
SIZE (rust/crates/strum-0.24.1.crate) = 5636
-SHA256 (rust/crates/strum-0.25.0.crate) = 290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125
-SIZE (rust/crates/strum-0.25.0.crate) = 5539
+SHA256 (rust/crates/strum-0.26.2.crate) = 5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29
+SIZE (rust/crates/strum-0.26.2.crate) = 7189
SHA256 (rust/crates/strum_macros-0.24.3.crate) = 1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59
SIZE (rust/crates/strum_macros-0.24.3.crate) = 20696
-SHA256 (rust/crates/strum_macros-0.25.3.crate) = 23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0
-SIZE (rust/crates/strum_macros-0.25.3.crate) = 22570
+SHA256 (rust/crates/strum_macros-0.26.2.crate) = c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946
+SIZE (rust/crates/strum_macros-0.26.2.crate) = 27056
SHA256 (rust/crates/syn-1.0.109.crate) = 72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237
SIZE (rust/crates/syn-1.0.109.crate) = 237611
-SHA256 (rust/crates/syn-2.0.39.crate) = 23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a
-SIZE (rust/crates/syn-2.0.39.crate) = 244129
+SHA256 (rust/crates/syn-2.0.55.crate) = 002a1b3dbf967edfafc32655d0f377ab0bb7b994aa1d32c8cc7e9b8bf3ebb8f0
+SIZE (rust/crates/syn-2.0.55.crate) = 254901
SHA256 (rust/crates/syn_derive-0.1.8.crate) = 1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b
SIZE (rust/crates/syn_derive-0.1.8.crate) = 5173
SHA256 (rust/crates/sync_wrapper-0.1.2.crate) = 2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160
SIZE (rust/crates/sync_wrapper-0.1.2.crate) = 6933
SHA256 (rust/crates/tap-1.0.1.crate) = 55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369
SIZE (rust/crates/tap-1.0.1.crate) = 11316
-SHA256 (rust/crates/tempfile-3.8.1.crate) = 7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5
-SIZE (rust/crates/tempfile-3.8.1.crate) = 32164
-SHA256 (rust/crates/thiserror-1.0.50.crate) = f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2
-SIZE (rust/crates/thiserror-1.0.50.crate) = 19414
-SHA256 (rust/crates/thiserror-impl-1.0.50.crate) = 266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8
-SIZE (rust/crates/thiserror-impl-1.0.50.crate) = 15357
-SHA256 (rust/crates/thread_local-1.1.7.crate) = 3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152
-SIZE (rust/crates/thread_local-1.1.7.crate) = 13585
-SHA256 (rust/crates/time-0.3.30.crate) = c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5
-SIZE (rust/crates/time-0.3.30.crate) = 120289
+SHA256 (rust/crates/tempfile-3.10.1.crate) = 85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1
+SIZE (rust/crates/tempfile-3.10.1.crate) = 33653
+SHA256 (rust/crates/thiserror-1.0.58.crate) = 03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297
+SIZE (rust/crates/thiserror-1.0.58.crate) = 21025
+SHA256 (rust/crates/thiserror-impl-1.0.58.crate) = c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7
+SIZE (rust/crates/thiserror-impl-1.0.58.crate) = 15645
+SHA256 (rust/crates/thread_local-1.1.8.crate) = 8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c
+SIZE (rust/crates/thread_local-1.1.8.crate) = 13962
+SHA256 (rust/crates/time-0.3.34.crate) = c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749
+SIZE (rust/crates/time-0.3.34.crate) = 118430
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.15.crate) = 4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20
-SIZE (rust/crates/time-macros-0.2.15.crate) = 23568
+SHA256 (rust/crates/time-macros-0.2.17.crate) = 7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774
+SIZE (rust/crates/time-macros-0.2.17.crate) = 24443
SHA256 (rust/crates/tinyvec-1.6.0.crate) = 87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50
SIZE (rust/crates/tinyvec-1.6.0.crate) = 45991
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.35.1.crate) = c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104
-SIZE (rust/crates/tokio-1.35.1.crate) = 744407
+SHA256 (rust/crates/tokio-1.36.0.crate) = 61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931
+SIZE (rust/crates/tokio-1.36.0.crate) = 757286
SHA256 (rust/crates/tokio-io-timeout-1.2.0.crate) = 30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf
SIZE (rust/crates/tokio-io-timeout-1.2.0.crate) = 8993
SHA256 (rust/crates/tokio-macros-2.2.0.crate) = 5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b
SIZE (rust/crates/tokio-macros-2.2.0.crate) = 11520
-SHA256 (rust/crates/tokio-openssl-0.6.3.crate) = c08f9ffb7809f1b20c1b398d92acf4cc719874b3b2b2d9ea2f09b4a80350878a
-SIZE (rust/crates/tokio-openssl-0.6.3.crate) = 11970
+SHA256 (rust/crates/tokio-openssl-0.6.4.crate) = 6ffab79df67727f6acf57f1ff743091873c24c579b1e2ce4d8f53e47ded4d63d
+SIZE (rust/crates/tokio-openssl-0.6.4.crate) = 11911
SHA256 (rust/crates/tokio-rustls-0.24.1.crate) = c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081
SIZE (rust/crates/tokio-rustls-0.24.1.crate) = 33049
-SHA256 (rust/crates/tokio-stream-0.1.14.crate) = 397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842
-SIZE (rust/crates/tokio-stream-0.1.14.crate) = 35881
+SHA256 (rust/crates/tokio-stream-0.1.15.crate) = 267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af
+SIZE (rust/crates/tokio-stream-0.1.15.crate) = 36284
SHA256 (rust/crates/tokio-util-0.7.10.crate) = 5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15
SIZE (rust/crates/tokio-util-0.7.10.crate) = 110508
-SHA256 (rust/crates/toml-0.5.11.crate) = f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234
-SIZE (rust/crates/toml-0.5.11.crate) = 54910
-SHA256 (rust/crates/toml_datetime-0.6.3.crate) = 7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b
-SIZE (rust/crates/toml_datetime-0.6.3.crate) = 10770
-SHA256 (rust/crates/toml_edit-0.20.2.crate) = 396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338
-SIZE (rust/crates/toml_edit-0.20.2.crate) = 96487
-SHA256 (rust/crates/tonic-0.9.2.crate) = 3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a
-SIZE (rust/crates/tonic-0.9.2.crate) = 92598
+SHA256 (rust/crates/toml-0.8.12.crate) = e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3
+SIZE (rust/crates/toml-0.8.12.crate) = 51145
+SHA256 (rust/crates/toml_datetime-0.6.5.crate) = 3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1
+SIZE (rust/crates/toml_datetime-0.6.5.crate) = 10910
+SHA256 (rust/crates/toml_edit-0.21.1.crate) = 6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1
+SIZE (rust/crates/toml_edit-0.21.1.crate) = 101661
+SHA256 (rust/crates/toml_edit-0.22.9.crate) = 8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4
+SIZE (rust/crates/toml_edit-0.22.9.crate) = 104173
SHA256 (rust/crates/tonic-0.10.2.crate) = d560933a0de61cf715926b9cac824d4c883c2c43142f787595e48280c40a1d0e
SIZE (rust/crates/tonic-0.10.2.crate) = 95739
SHA256 (rust/crates/tower-0.4.13.crate) = b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c
SIZE (rust/crates/tower-0.4.13.crate) = 106906
-SHA256 (rust/crates/tower-http-0.4.4.crate) = 61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140
-SIZE (rust/crates/tower-http-0.4.4.crate) = 115612
SHA256 (rust/crates/tower-layer-0.3.2.crate) = c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0
SIZE (rust/crates/tower-layer-0.3.2.crate) = 6023
SHA256 (rust/crates/tower-service-0.3.2.crate) = b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52
@@ -611,20 +571,18 @@ SHA256 (rust/crates/tracing-serde-0.1.3.crate) = bc6b213177105856957181934e4920d
SIZE (rust/crates/tracing-serde-0.1.3.crate) = 7329
SHA256 (rust/crates/tracing-subscriber-0.3.18.crate) = ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b
SIZE (rust/crates/tracing-subscriber-0.3.18.crate) = 196312
-SHA256 (rust/crates/try-lock-0.2.4.crate) = 3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed
-SIZE (rust/crates/try-lock-0.2.4.crate) = 4467
-SHA256 (rust/crates/ttl_cache-0.5.1.crate) = 4189890526f0168710b6ee65ceaedf1460c48a14318ceec933cb26baa492096a
-SIZE (rust/crates/ttl_cache-0.5.1.crate) = 9923
+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/unicase-2.7.0.crate) = f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89
SIZE (rust/crates/unicase-2.7.0.crate) = 23783
-SHA256 (rust/crates/unicode-bidi-0.3.13.crate) = 92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460
-SIZE (rust/crates/unicode-bidi-0.3.13.crate) = 44477
+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.22.crate) = 5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921
-SIZE (rust/crates/unicode-normalization-0.1.22.crate) = 122604
+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.11.crate) = e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85
SIZE (rust/crates/unicode-width-0.1.11.crate) = 19187
SHA256 (rust/crates/untrusted-0.9.0.crate) = 8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1
@@ -637,34 +595,36 @@ SHA256 (rust/crates/utf8-width-0.1.7.crate) = 86bd8d4e895da8537e5315b8254664e6b7
SIZE (rust/crates/utf8-width-0.1.7.crate) = 2977
SHA256 (rust/crates/uts2ts-0.4.1.crate) = 259b17235452d88d066e35685df3fd9fd3875936eee5451d0533b604201f06a8
SIZE (rust/crates/uts2ts-0.4.1.crate) = 5921
-SHA256 (rust/crates/uuid-1.6.1.crate) = 5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560
-SIZE (rust/crates/uuid-1.6.1.crate) = 55554
+SHA256 (rust/crates/uuid-1.8.0.crate) = a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0
+SIZE (rust/crates/uuid-1.8.0.crate) = 44043
+SHA256 (rust/crates/v_htmlescape-0.15.8.crate) = 4e8257fbc510f0a46eb602c10215901938b5c2a7d5e70fc11483b1d3c9b5b18c
+SIZE (rust/crates/v_htmlescape-0.15.8.crate) = 10878
SHA256 (rust/crates/valuable-0.1.0.crate) = 830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d
SIZE (rust/crates/valuable-0.1.0.crate) = 27718
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.4.crate) = 49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f
SIZE (rust/crates/version_check-0.9.4.crate) = 14895
-SHA256 (rust/crates/walkdir-2.4.0.crate) = d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee
-SIZE (rust/crates/walkdir-2.4.0.crate) = 23550
+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.89.crate) = 0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e
-SIZE (rust/crates/wasm-bindgen-0.2.89.crate) = 181935
-SHA256 (rust/crates/wasm-bindgen-backend-0.2.89.crate) = 1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826
-SIZE (rust/crates/wasm-bindgen-backend-0.2.89.crate) = 28205
-SHA256 (rust/crates/wasm-bindgen-macro-0.2.89.crate) = 0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2
-SIZE (rust/crates/wasm-bindgen-macro-0.2.89.crate) = 13906
-SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.89.crate) = f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283
-SIZE (rust/crates/wasm-bindgen-macro-support-0.2.89.crate) = 20008
-SHA256 (rust/crates/wasm-bindgen-shared-0.2.89.crate) = 7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f
-SIZE (rust/crates/wasm-bindgen-shared-0.2.89.crate) = 7265
-SHA256 (rust/crates/web-time-0.2.3.crate) = 57099a701fb3a8043f993e8228dc24229c7b942e2b009a1b962e54489ba1d3bf
-SIZE (rust/crates/web-time-0.2.3.crate) = 14052
-SHA256 (rust/crates/webpki-roots-0.25.3.crate) = 1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10
-SIZE (rust/crates/webpki-roots-0.25.3.crate) = 251565
+SHA256 (rust/crates/wasm-bindgen-0.2.92.crate) = 4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8
+SIZE (rust/crates/wasm-bindgen-0.2.92.crate) = 184119
+SHA256 (rust/crates/wasm-bindgen-backend-0.2.92.crate) = 614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da
+SIZE (rust/crates/wasm-bindgen-backend-0.2.92.crate) = 28348
+SHA256 (rust/crates/wasm-bindgen-macro-0.2.92.crate) = a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726
+SIZE (rust/crates/wasm-bindgen-macro-0.2.92.crate) = 13835
+SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.92.crate) = e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7
+SIZE (rust/crates/wasm-bindgen-macro-support-0.2.92.crate) = 20092
+SHA256 (rust/crates/wasm-bindgen-shared-0.2.92.crate) = af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96
+SIZE (rust/crates/wasm-bindgen-shared-0.2.92.crate) = 7263
+SHA256 (rust/crates/web-time-0.2.4.crate) = aa30049b1c872b72c89866d458eae9f20380ab280ffd1b1e18df2d3e2d98cfe0
+SIZE (rust/crates/web-time-0.2.4.crate) = 15743
+SHA256 (rust/crates/webpki-roots-0.25.4.crate) = 5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1
+SIZE (rust/crates/webpki-roots-0.25.4.crate) = 253559
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
@@ -673,61 +633,63 @@ SHA256 (rust/crates/winapi-util-0.1.6.crate) = f29e6f9198ba0d26b4c9f07dbe6f9ed63
SIZE (rust/crates/winapi-util-0.1.6.crate) = 12234
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-core-0.51.1.crate) = f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64
-SIZE (rust/crates/windows-core-0.51.1.crate) = 42364
+SHA256 (rust/crates/windows-core-0.52.0.crate) = 33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9
+SIZE (rust/crates/windows-core-0.52.0.crate) = 42154
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-targets-0.48.5.crate) = 9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c
SIZE (rust/crates/windows-targets-0.48.5.crate) = 6904
-SHA256 (rust/crates/windows-targets-0.52.0.crate) = 8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd
-SIZE (rust/crates/windows-targets-0.52.0.crate) = 6229
+SHA256 (rust/crates/windows-targets-0.52.4.crate) = 7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b
+SIZE (rust/crates/windows-targets-0.52.4.crate) = 6310
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.0.crate) = cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea
-SIZE (rust/crates/windows_aarch64_gnullvm-0.52.0.crate) = 430182
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.52.4.crate) = bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9
+SIZE (rust/crates/windows_aarch64_gnullvm-0.52.4.crate) = 433373
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.0.crate) = bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef
-SIZE (rust/crates/windows_aarch64_msvc-0.52.0.crate) = 821663
+SHA256 (rust/crates/windows_aarch64_msvc-0.52.4.crate) = da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675
+SIZE (rust/crates/windows_aarch64_msvc-0.52.4.crate) = 828055
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.0.crate) = a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313
-SIZE (rust/crates/windows_i686_gnu-0.52.0.crate) = 870285
+SHA256 (rust/crates/windows_i686_gnu-0.52.4.crate) = b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3
+SIZE (rust/crates/windows_i686_gnu-0.52.4.crate) = 875736
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.0.crate) = ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a
-SIZE (rust/crates/windows_i686_msvc-0.52.0.crate) = 888693
+SHA256 (rust/crates/windows_i686_msvc-0.52.4.crate) = 1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02
+SIZE (rust/crates/windows_i686_msvc-0.52.4.crate) = 895530
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.0.crate) = 3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd
-SIZE (rust/crates/windows_x86_64_gnu-0.52.0.crate) = 826213
+SHA256 (rust/crates/windows_x86_64_gnu-0.52.4.crate) = 5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03
+SIZE (rust/crates/windows_x86_64_gnu-0.52.4.crate) = 831627
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.0.crate) = 1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e
-SIZE (rust/crates/windows_x86_64_gnullvm-0.52.0.crate) = 430165
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.4.crate) = 77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177
+SIZE (rust/crates/windows_x86_64_gnullvm-0.52.4.crate) = 433358
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.0.crate) = dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04
-SIZE (rust/crates/windows_x86_64_msvc-0.52.0.crate) = 821600
-SHA256 (rust/crates/winnow-0.5.28.crate) = 6c830786f7720c2fd27a1a0e27a709dbd3c4d009b56d098fc742d4f4eab91fe2
-SIZE (rust/crates/winnow-0.5.28.crate) = 150758
+SHA256 (rust/crates/windows_x86_64_msvc-0.52.4.crate) = 32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8
+SIZE (rust/crates/windows_x86_64_msvc-0.52.4.crate) = 828019
+SHA256 (rust/crates/winnow-0.5.40.crate) = f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876
+SIZE (rust/crates/winnow-0.5.40.crate) = 159316
+SHA256 (rust/crates/winnow-0.6.5.crate) = dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8
+SIZE (rust/crates/winnow-0.6.5.crate) = 159316
SHA256 (rust/crates/wyz-0.5.1.crate) = 05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed
SIZE (rust/crates/wyz-0.5.1.crate) = 18790
SHA256 (rust/crates/yaml-rust-0.4.5.crate) = 56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85
SIZE (rust/crates/yaml-rust-0.4.5.crate) = 47783
-SHA256 (rust/crates/zerocopy-0.7.28.crate) = 7d6f15f7ade05d2a4935e34a457b936c23dc70a05cc1d97133dc99e7a3fe0f0e
-SIZE (rust/crates/zerocopy-0.7.28.crate) = 147263
-SHA256 (rust/crates/zerocopy-derive-0.7.28.crate) = dbbad221e3f78500350ecbd7dfa4e63ef945c05f4c61cb7f4d3f84cd0bba649b
-SIZE (rust/crates/zerocopy-derive-0.7.28.crate) = 533073
+SHA256 (rust/crates/zerocopy-0.7.32.crate) = 74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be
+SIZE (rust/crates/zerocopy-0.7.32.crate) = 151096
+SHA256 (rust/crates/zerocopy-derive-0.7.32.crate) = 9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6
+SIZE (rust/crates/zerocopy-derive-0.7.32.crate) = 37623
SHA256 (rust/crates/zeroize-1.7.0.crate) = 525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d
SIZE (rust/crates/zeroize-1.7.0.crate) = 19039
-SHA256 (rust/crates/zstd-0.12.4.crate) = 1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c
-SIZE (rust/crates/zstd-0.12.4.crate) = 30434
-SHA256 (rust/crates/zstd-safe-6.0.6.crate) = ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581
-SIZE (rust/crates/zstd-safe-6.0.6.crate) = 20828
-SHA256 (rust/crates/zstd-sys-2.0.9+zstd.1.5.5.crate) = 9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656
-SIZE (rust/crates/zstd-sys-2.0.9+zstd.1.5.5.crate) = 728791
-SHA256 (orhun-rustypaste-v0.14.4_GH0.tar.gz) = 2d5e7aac9c3badd3ee059a9cc4d3e77b2fee18922f144d70f70059f9b4a6bdf1
-SIZE (orhun-rustypaste-v0.14.4_GH0.tar.gz) = 294963
+SHA256 (rust/crates/zstd-0.13.1.crate) = 2d789b1514203a1120ad2429eae43a7bd32b90976a7bb8a05f7ec02fa88cc23a
+SIZE (rust/crates/zstd-0.13.1.crate) = 29805
+SHA256 (rust/crates/zstd-safe-7.1.0.crate) = 1cd99b45c6bc03a018c8b8a86025678c87e55526064e38f9df301989dce7ec0a
+SIZE (rust/crates/zstd-safe-7.1.0.crate) = 20792
+SHA256 (rust/crates/zstd-sys-2.0.10+zstd.1.5.6.crate) = c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa
+SIZE (rust/crates/zstd-sys-2.0.10+zstd.1.5.6.crate) = 749088
+SHA256 (orhun-rustypaste-v0.15.0_GH0.tar.gz) = d2f23fa70f389dc0e57606799e780ba7bcfc648514e72de55154ccf5571fc6cf
+SIZE (orhun-rustypaste-v0.15.0_GH0.tar.gz) = 296122
diff --git a/www/s/Makefile b/www/s/Makefile
index 7d8c32976afd..d128f362a942 100644
--- a/www/s/Makefile
+++ b/www/s/Makefile
@@ -1,7 +1,7 @@
PORTNAME= s
DISTVERSIONPREFIX= v
-DISTVERSION= 0.6.9
-PORTREVISION= 4
+DISTVERSION= 0.7.0
+PORTREVISION= 1
CATEGORIES= www
MAINTAINER= yuri@FreeBSD.org
diff --git a/www/s/distinfo b/www/s/distinfo
index cf7f7339685a..dee596879099 100644
--- a/www/s/distinfo
+++ b/www/s/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1699084478
-SHA256 (go/www_s/s-v0.6.9/v0.6.9.mod) = 668a07cff48882a0d76d2ca2a0c29ff16b81cf676055c9e7547ff8175e863b94
-SIZE (go/www_s/s-v0.6.9/v0.6.9.mod) = 1450
-SHA256 (go/www_s/s-v0.6.9/v0.6.9.zip) = 0ac6cd0ab8dce5788be34ca826554768ca7c12ea32783d7fbb385f821bc8ca7f
-SIZE (go/www_s/s-v0.6.9/v0.6.9.zip) = 113644
+TIMESTAMP = 1714871664
+SHA256 (go/www_s/s-v0.7.0/v0.7.0.mod) = 696b8ab7dd60265c5d77b200eb0a6db2b2c0aba6d3b90c798326bb36ac1c4eec
+SIZE (go/www_s/s-v0.7.0/v0.7.0.mod) = 1450
+SHA256 (go/www_s/s-v0.7.0/v0.7.0.zip) = 06fefc4973add6ccaaf753a5c5183fe6e70f25e37e6ee54c12b3cffa602aa084
+SIZE (go/www_s/s-v0.7.0/v0.7.0.zip) = 115106
diff --git a/www/screego/Makefile b/www/screego/Makefile
index 003836d2a981..3b0b4520b19e 100644
--- a/www/screego/Makefile
+++ b/www/screego/Makefile
@@ -1,7 +1,7 @@
PORTNAME= screego
DISTVERSIONPREFIX= v
DISTVERSION= 1.2.0
-PORTREVISION= 18
+PORTREVISION= 19
CATEGORIES= www
MASTER_SITES= https://registry.yarnpkg.com/:yarn
DISTFILES= @babel/code-frame/-/code-frame-7.8.3.tgz:yarn \
@@ -1471,7 +1471,7 @@ DISTFILES= @babel/code-frame/-/code-frame-7.8.3.tgz:yarn \
yargs/-/yargs-13.3.2.tgz:yarn
EXTRACT_ONLY= ${DISTFILES:N*\:yarn*:C/:.*$//}
-MAINTAINER= 0mp@FreeBSD.org
+MAINTAINER= ports@FreeBSD.org
COMMENT= Screen sharing server based on WebRTC
WWW= https://github.com/screego/server
diff --git a/www/seahub/Makefile b/www/seahub/Makefile
index e3c773f4fa63..0f5e7022d5a6 100644
--- a/www/seahub/Makefile
+++ b/www/seahub/Makefile
@@ -2,7 +2,7 @@ PORTNAME= seahub
DISTVERSIONPREFIX= v
DISTVERSION= ${SEAHUB_VER}
DISTVERSIONSUFFIX= -server
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= www
MAINTAINER= ultima@FreeBSD.org
@@ -12,11 +12,11 @@ WWW= https://github.com/haiwen/seahub
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
-BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=0:www/py-django32@${PY_FLAVOR}
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=0:www/py-django42@${PY_FLAVOR}
RUN_DEPENDS= bash:shells/bash \
${LOCALBASE}/www/haiwen/seafile-server/seafile/bin/seaf-server:net-mgmt/seafile-server \
- ${PYTHON_PKGNAMEPREFIX}django32>=0:www/py-django32@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}django42>=0:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-statici18n>=2.3:www/py-django-statici18n@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-webpack-loader>=1.7:www/py-django-webpack-loader@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-picklefield>=3.1:www/py-django-picklefield@${PY_FLAVOR} \
diff --git a/www/shiori/Makefile b/www/shiori/Makefile
index 9b11fac7e77f..f53395c522b7 100644
--- a/www/shiori/Makefile
+++ b/www/shiori/Makefile
@@ -1,6 +1,6 @@
PORTNAME= shiori
DISTVERSIONPREFIX= v
-DISTVERSION= 1.6.2
+DISTVERSION= 1.6.3
PORTREVISION= 1
CATEGORIES= www
diff --git a/www/shiori/distinfo b/www/shiori/distinfo
index f459708715b5..64c0e93b84d7 100644
--- a/www/shiori/distinfo
+++ b/www/shiori/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1712582950
-SHA256 (go/www_shiori/shiori-v1.6.2/v1.6.2.mod) = 302a9ff607a0ff370f7ce97ac5ad7419ba41f09d9b078a6939bf1b607571e159
-SIZE (go/www_shiori/shiori-v1.6.2/v1.6.2.mod) = 4594
-SHA256 (go/www_shiori/shiori-v1.6.2/v1.6.2.zip) = 8145ed087389c1ebe47fcc554501c328a579911ad0b6b3ff1c83620a770b3abc
-SIZE (go/www_shiori/shiori-v1.6.2/v1.6.2.zip) = 7017406
+TIMESTAMP = 1714741446
+SHA256 (go/www_shiori/shiori-v1.6.3/v1.6.3.mod) = 0c663b09297fc4ebab8d7b65d57b59e74876d58c80c8e6d5b15b5f306531ce40
+SIZE (go/www_shiori/shiori-v1.6.3/v1.6.3.mod) = 5003
+SHA256 (go/www_shiori/shiori-v1.6.3/v1.6.3.zip) = e4dbe68fa5a628e6bd8539503dd088474c709d049aa31453b6c9d1ee1c0aad55
+SIZE (go/www_shiori/shiori-v1.6.3/v1.6.3.zip) = 7022398
diff --git a/www/so/Makefile b/www/so/Makefile
index 460f224c106d..e583963bc00f 100644
--- a/www/so/Makefile
+++ b/www/so/Makefile
@@ -1,7 +1,7 @@
PORTNAME= so
DISTVERSIONPREFIX= v
DISTVERSION= 0.4.6
-PORTREVISION= 18
+PORTREVISION= 19
CATEGORIES= www
MAINTAINER= sec.research.2005@gmail.com
diff --git a/www/sogo/Makefile b/www/sogo/Makefile
index 2951ddb30318..59886b0aeea9 100644
--- a/www/sogo/Makefile
+++ b/www/sogo/Makefile
@@ -1,5 +1,6 @@
PORTNAME= sogo
PORTVERSION= 5.10.0
+PORTREVISION= 1
CATEGORIES= www gnustep
MASTER_SITES= https://packages.sogo.nu/sources/
DISTNAME= SOGo-${PORTVERSION}
diff --git a/www/sqlpage/Makefile b/www/sqlpage/Makefile
index 5e575ae64eee..8b043180f891 100644
--- a/www/sqlpage/Makefile
+++ b/www/sqlpage/Makefile
@@ -2,7 +2,8 @@
PORTNAME= sqlpage
DISTVERSIONPREFIX= v
-DISTVERSION= 0.20.4
+DISTVERSION= 0.20.5
+PORTREVISION= 1
CATEGORIES= www databases
MASTER_SITES= https://cdn.jsdelivr.net/npm/:npm
DISTFILES= ${NPM_DISTFILES}
diff --git a/www/sqlpage/Makefile.crates b/www/sqlpage/Makefile.crates
index ca8af01f8236..aa8dcc64a568 100644
--- a/www/sqlpage/Makefile.crates
+++ b/www/sqlpage/Makefile.crates
@@ -22,12 +22,12 @@ CARGO_CRATES= actix-codec-0.5.2 \
allocator-api2-0.2.18 \
android-tzdata-0.1.1 \
android_system_properties-0.1.5 \
- anstream-0.6.13 \
- anstyle-1.0.6 \
- anstyle-parse-0.2.3 \
- anstyle-query-1.0.2 \
- anstyle-wincon-3.0.2 \
- anyhow-1.0.82 \
+ anstream-0.6.14 \
+ anstyle-1.0.7 \
+ anstyle-parse-0.2.4 \
+ anstyle-query-1.0.3 \
+ anstyle-wincon-3.0.3 \
+ anyhow-1.0.83 \
argon2-0.5.3 \
asn1-rs-0.5.2 \
asn1-rs-derive-0.4.0 \
@@ -37,37 +37,37 @@ CARGO_CRATES= actix-codec-0.5.2 \
async-io-2.3.2 \
async-lock-3.3.0 \
async-net-2.0.0 \
- async-recursion-1.1.0 \
+ async-recursion-1.1.1 \
async-stream-0.3.5 \
async-stream-impl-0.3.5 \
- async-task-4.7.0 \
+ async-task-4.7.1 \
async-trait-0.1.80 \
async-web-client-0.5.1 \
atoi-2.0.0 \
atomic-waker-1.1.2 \
- autocfg-1.2.0 \
+ autocfg-1.3.0 \
awc-3.4.0 \
backtrace-0.3.71 \
base64-0.13.1 \
base64-0.21.7 \
- base64-0.22.0 \
+ base64-0.22.1 \
base64ct-1.6.0 \
bitflags-1.3.2 \
bitflags-2.5.0 \
blake2-0.10.6 \
block-buffer-0.10.4 \
- blocking-1.5.1 \
+ blocking-1.6.0 \
brotli-3.5.0 \
brotli-decompressor-2.5.1 \
bumpalo-3.16.0 \
byteorder-1.5.0 \
bytes-1.6.0 \
bytestring-1.3.1 \
- cc-1.0.95 \
+ cc-1.0.97 \
cfg-if-1.0.0 \
chrono-0.4.38 \
- colorchoice-1.0.0 \
- concurrent-queue-2.4.0 \
+ colorchoice-1.0.1 \
+ concurrent-queue-2.5.0 \
config-0.14.0 \
const-oid-0.9.6 \
const-random-0.1.18 \
@@ -91,7 +91,7 @@ CARGO_CRATES= actix-codec-0.5.2 \
darling_core-0.20.8 \
darling_macro-0.20.8 \
dary_heap-0.3.6 \
- data-encoding-2.5.0 \
+ data-encoding-2.6.0 \
der-0.7.9 \
der-parser-8.2.0 \
deranged-0.3.11 \
@@ -107,15 +107,15 @@ CARGO_CRATES= actix-codec-0.5.2 \
env_filter-0.1.0 \
env_logger-0.11.3 \
equivalent-1.0.1 \
- errno-0.3.8 \
+ errno-0.3.9 \
event-listener-3.1.0 \
event-listener-4.0.3 \
event-listener-5.3.0 \
event-listener-strategy-0.4.0 \
- event-listener-strategy-0.5.1 \
- fastrand-2.0.2 \
+ event-listener-strategy-0.5.2 \
+ fastrand-2.1.0 \
finl_unicode-1.2.0 \
- flate2-1.0.28 \
+ flate2-1.0.30 \
flume-0.11.0 \
fnv-1.0.7 \
form_urlencoded-1.2.1 \
@@ -132,16 +132,16 @@ CARGO_CRATES= actix-codec-0.5.2 \
futures-task-0.3.30 \
futures-util-0.3.30 \
generic-array-0.14.7 \
- getrandom-0.2.14 \
+ getrandom-0.2.15 \
gimli-0.28.1 \
gloo-net-0.2.6 \
gloo-utils-0.1.7 \
h2-0.3.26 \
handlebars-5.1.2 \
hashbrown-0.13.2 \
- hashbrown-0.14.3 \
- hashlink-0.8.4 \
- heck-0.4.1 \
+ hashbrown-0.14.5 \
+ hashlink-0.9.0 \
+ heck-0.5.0 \
hermit-abi-0.3.9 \
hex-0.4.3 \
hkdf-0.12.4 \
@@ -161,6 +161,7 @@ CARGO_CRATES= actix-codec-0.5.2 \
include_dir-0.7.3 \
include_dir_macros-0.7.3 \
indexmap-2.2.6 \
+ is_terminal_polyfill-1.70.0 \
itertools-0.12.1 \
itoa-1.0.11 \
jobserver-0.1.31 \
@@ -171,9 +172,9 @@ CARGO_CRATES= actix-codec-0.5.2 \
lambda_runtime_api_client-0.7.0 \
language-tags-0.3.2 \
lazy_static-1.4.0 \
- libc-0.2.153 \
- libflate-2.0.0 \
- libflate_lz77-2.0.0 \
+ libc-0.2.154 \
+ libflate-2.1.0 \
+ libflate_lz77-2.1.0 \
libm-0.2.8 \
libredox-0.1.3 \
libsqlite3-sys-0.28.0 \
@@ -181,9 +182,9 @@ CARGO_CRATES= actix-codec-0.5.2 \
linux-raw-sys-0.4.13 \
local-channel-0.1.5 \
local-waker-0.1.4 \
- lock_api-0.4.11 \
+ lock_api-0.4.12 \
log-0.4.21 \
- markdown-1.0.0-alpha.16 \
+ markdown-1.0.0-alpha.17 \
md-5-0.10.6 \
memchr-2.7.2 \
mime-0.3.17 \
@@ -192,12 +193,12 @@ CARGO_CRATES= actix-codec-0.5.2 \
miniz_oxide-0.7.2 \
mio-0.8.11 \
nom-7.1.3 \
- num-bigint-0.4.4 \
+ num-bigint-0.4.5 \
num-bigint-dig-0.8.4 \
num-conv-0.1.0 \
num-integer-0.1.46 \
- num-iter-0.1.44 \
- num-traits-0.2.18 \
+ num-iter-0.1.45 \
+ num-traits-0.2.19 \
num_cpus-1.16.0 \
object-0.32.2 \
oid-registry-0.6.1 \
@@ -205,19 +206,19 @@ CARGO_CRATES= actix-codec-0.5.2 \
option-ext-0.2.0 \
ordered-multimap-0.6.0 \
parking-2.2.0 \
- parking_lot-0.12.1 \
- parking_lot_core-0.9.9 \
+ parking_lot-0.12.2 \
+ parking_lot_core-0.9.10 \
parse-size-1.0.0 \
password-hash-0.5.0 \
- paste-1.0.14 \
+ paste-1.0.15 \
pathdiff-0.2.1 \
pem-3.0.4 \
pem-rfc7468-0.7.0 \
percent-encoding-2.3.1 \
- pest-2.7.9 \
- pest_derive-2.7.9 \
- pest_generator-2.7.9 \
- pest_meta-2.7.9 \
+ pest-2.7.10 \
+ pest_derive-2.7.10 \
+ pest_generator-2.7.10 \
+ pest_meta-2.7.10 \
pin-project-1.1.5 \
pin-project-internal-1.1.5 \
pin-project-lite-0.2.14 \
@@ -229,13 +230,14 @@ CARGO_CRATES= actix-codec-0.5.2 \
polling-3.7.0 \
powerfmt-0.2.0 \
ppv-lite86-0.2.17 \
- proc-macro2-1.0.81 \
+ proc-macro2-1.0.82 \
quote-1.0.36 \
rand-0.8.5 \
rand_chacha-0.3.1 \
rand_core-0.6.4 \
rcgen-0.12.1 \
redox_syscall-0.4.1 \
+ redox_syscall-0.5.1 \
redox_users-0.4.5 \
regex-1.10.4 \
regex-automata-0.4.6 \
@@ -245,21 +247,21 @@ CARGO_CRATES= actix-codec-0.5.2 \
ron-0.8.1 \
rsa-0.9.6 \
rust-ini-0.19.0 \
- rustc-demangle-0.1.23 \
+ rustc-demangle-0.1.24 \
rustc_version-0.4.0 \
rusticata-macros-4.1.0 \
rustix-0.38.34 \
rustls-0.22.4 \
rustls-acme-0.9.2 \
rustls-pemfile-2.1.2 \
- rustls-pki-types-1.4.1 \
+ rustls-pki-types-1.7.0 \
rustls-webpki-0.102.3 \
- ryu-1.0.17 \
+ ryu-1.0.18 \
scopeguard-1.2.0 \
- semver-1.0.22 \
- serde-1.0.198 \
- serde_derive-1.0.198 \
- serde_json-1.0.116 \
+ semver-1.0.23 \
+ serde-1.0.201 \
+ serde_derive-1.0.201 \
+ serde_json-1.0.117 \
serde_plain-1.0.2 \
serde_spanned-0.6.5 \
serde_urlencoded-0.7.1 \
@@ -269,26 +271,26 @@ CARGO_CRATES= actix-codec-0.5.2 \
signature-2.2.0 \
slab-0.4.9 \
smallvec-1.13.2 \
- socket2-0.5.6 \
+ socket2-0.5.7 \
spin-0.5.2 \
spin-0.9.8 \
spki-0.7.3 \
sqlformat-0.2.3 \
- sqlparser-0.45.0 \
+ sqlparser-0.46.0 \
sqlparser_derive-0.2.2 \
- sqlx-core-oldapi-0.6.20 \
- sqlx-macros-oldapi-0.6.20 \
- sqlx-oldapi-0.6.20 \
- sqlx-rt-oldapi-0.6.20 \
+ sqlx-core-oldapi-0.6.22 \
+ sqlx-macros-oldapi-0.6.22 \
+ sqlx-oldapi-0.6.22 \
+ sqlx-rt-oldapi-0.6.22 \
stringprep-0.1.4 \
strsim-0.10.0 \
subtle-2.5.0 \
syn-1.0.109 \
- syn-2.0.60 \
+ syn-2.0.61 \
synstructure-0.12.6 \
tempfile-3.10.1 \
- thiserror-1.0.59 \
- thiserror-impl-1.0.59 \
+ thiserror-1.0.60 \
+ thiserror-impl-1.0.60 \
time-0.3.36 \
time-core-0.1.2 \
time-macros-0.2.18 \
@@ -299,7 +301,7 @@ CARGO_CRATES= actix-codec-0.5.2 \
tokio-macros-2.2.0 \
tokio-rustls-0.25.0 \
tokio-stream-0.1.15 \
- tokio-util-0.7.10 \
+ tokio-util-0.7.11 \
toml-0.8.12 \
toml_datetime-0.6.5 \
toml_edit-0.22.12 \
@@ -358,12 +360,12 @@ CARGO_CRATES= actix-codec-0.5.2 \
windows_x86_64_gnullvm-0.52.5 \
windows_x86_64_msvc-0.48.5 \
windows_x86_64_msvc-0.52.5 \
- winnow-0.6.6 \
+ winnow-0.6.8 \
x509-parser-0.15.1 \
yaml-rust-0.4.5 \
yasna-0.5.2 \
- zerocopy-0.7.32 \
- zerocopy-derive-0.7.32 \
+ zerocopy-0.7.34 \
+ zerocopy-derive-0.7.34 \
zeroize-1.7.0 \
zstd-0.13.1 \
zstd-safe-7.1.0 \
diff --git a/www/sqlpage/distinfo b/www/sqlpage/distinfo
index 900d25688a15..573dab1aad8f 100644
--- a/www/sqlpage/distinfo
+++ b/www/sqlpage/distinfo
@@ -1,4 +1,4 @@
-TIMESTAMP = 1713861564
+TIMESTAMP = 1715336106
SHA256 (apexcharts@3.47.0/dist/apexcharts.min.js) = 4ad143755f8347dc88b5b0970064cae8451cbbad77377bccd22e6782b619973e
SIZE (apexcharts@3.47.0/dist/apexcharts.min.js) = 525068
SHA256 (@tabler/core@1.0.0-beta20/dist/css/tabler.min.css) = 952de72b130c6622884491bb5205289ce1d8baf1e05b979c9048ef1cc6316fd4
@@ -61,18 +61,18 @@ SHA256 (rust/crates/android-tzdata-0.1.1.crate) = e999941b234f3131b00bc13c22d06e
SIZE (rust/crates/android-tzdata-0.1.1.crate) = 7674
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.13.crate) = d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb
-SIZE (rust/crates/anstream-0.6.13.crate) = 30928
-SHA256 (rust/crates/anstyle-1.0.6.crate) = 8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc
-SIZE (rust/crates/anstyle-1.0.6.crate) = 14604
-SHA256 (rust/crates/anstyle-parse-0.2.3.crate) = c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c
-SIZE (rust/crates/anstyle-parse-0.2.3.crate) = 24699
-SHA256 (rust/crates/anstyle-query-1.0.2.crate) = e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648
-SIZE (rust/crates/anstyle-query-1.0.2.crate) = 8739
-SHA256 (rust/crates/anstyle-wincon-3.0.2.crate) = 1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7
-SIZE (rust/crates/anstyle-wincon-3.0.2.crate) = 11272
-SHA256 (rust/crates/anyhow-1.0.82.crate) = f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519
-SIZE (rust/crates/anyhow-1.0.82.crate) = 45361
+SHA256 (rust/crates/anstream-0.6.14.crate) = 418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b
+SIZE (rust/crates/anstream-0.6.14.crate) = 29160
+SHA256 (rust/crates/anstyle-1.0.7.crate) = 038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b
+SIZE (rust/crates/anstyle-1.0.7.crate) = 15709
+SHA256 (rust/crates/anstyle-parse-0.2.4.crate) = c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4
+SIZE (rust/crates/anstyle-parse-0.2.4.crate) = 23069
+SHA256 (rust/crates/anstyle-query-1.0.3.crate) = a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5
+SIZE (rust/crates/anstyle-query-1.0.3.crate) = 9742
+SHA256 (rust/crates/anstyle-wincon-3.0.3.crate) = 61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19
+SIZE (rust/crates/anstyle-wincon-3.0.3.crate) = 12179
+SHA256 (rust/crates/anyhow-1.0.83.crate) = 25bdb32cbbdce2b519a9cd7df3a678443100e265d5e25ca763b7572a5104f5f3
+SIZE (rust/crates/anyhow-1.0.83.crate) = 45650
SHA256 (rust/crates/argon2-0.5.3.crate) = 3c3610892ee6e0cbce8ae2700349fcf8f98adb0dbfbee85aec3c9179d29cc072
SIZE (rust/crates/argon2-0.5.3.crate) = 28795
SHA256 (rust/crates/asn1-rs-0.5.2.crate) = 7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0
@@ -91,14 +91,14 @@ SHA256 (rust/crates/async-lock-3.3.0.crate) = d034b430882f8381900d3fe6f0aaa3ad94
SIZE (rust/crates/async-lock-3.3.0.crate) = 33286
SHA256 (rust/crates/async-net-2.0.0.crate) = b948000fad4873c1c9339d60f2623323a0cfd3816e5181033c6a5cb68b2accf7
SIZE (rust/crates/async-net-2.0.0.crate) = 17787
-SHA256 (rust/crates/async-recursion-1.1.0.crate) = 30c5ef0ede93efbf733c1a727f3b6b5a1060bbedd5600183e66f6e4be4af0ec5
-SIZE (rust/crates/async-recursion-1.1.0.crate) = 14982
+SHA256 (rust/crates/async-recursion-1.1.1.crate) = 3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11
+SIZE (rust/crates/async-recursion-1.1.1.crate) = 14874
SHA256 (rust/crates/async-stream-0.3.5.crate) = cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51
SIZE (rust/crates/async-stream-0.3.5.crate) = 11916
SHA256 (rust/crates/async-stream-impl-0.3.5.crate) = 16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193
SIZE (rust/crates/async-stream-impl-0.3.5.crate) = 4173
-SHA256 (rust/crates/async-task-4.7.0.crate) = fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799
-SIZE (rust/crates/async-task-4.7.0.crate) = 38906
+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.80.crate) = c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca
SIZE (rust/crates/async-trait-0.1.80.crate) = 28775
SHA256 (rust/crates/async-web-client-0.5.1.crate) = a820ef79f63962244fc33d3f17dafb41f1c6bb9754de97c3c09c57c1b8a360ce
@@ -107,8 +107,8 @@ SHA256 (rust/crates/atoi-2.0.0.crate) = f28d99ec8bfea296261ca1af174f24225171fea9
SIZE (rust/crates/atoi-2.0.0.crate) = 7785
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.2.0.crate) = f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80
-SIZE (rust/crates/autocfg-1.2.0.crate) = 14808
+SHA256 (rust/crates/autocfg-1.3.0.crate) = 0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0
+SIZE (rust/crates/autocfg-1.3.0.crate) = 16524
SHA256 (rust/crates/awc-3.4.0.crate) = 68c09cc97310b926f01621faee652f3d1b0962545a3cec6c9ac07def9ea36c2c
SIZE (rust/crates/awc-3.4.0.crate) = 75016
SHA256 (rust/crates/backtrace-0.3.71.crate) = 26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d
@@ -117,8 +117,8 @@ SHA256 (rust/crates/base64-0.13.1.crate) = 9e1b586273c5702936fe7b7d6896644d8be71
SIZE (rust/crates/base64-0.13.1.crate) = 61002
SHA256 (rust/crates/base64-0.21.7.crate) = 9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567
SIZE (rust/crates/base64-0.21.7.crate) = 82576
-SHA256 (rust/crates/base64-0.22.0.crate) = 9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51
-SIZE (rust/crates/base64-0.22.0.crate) = 81568
+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/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
@@ -129,8 +129,8 @@ SHA256 (rust/crates/blake2-0.10.6.crate) = 46502ad458c9a52b69d4d4d32775c788b7a1b
SIZE (rust/crates/blake2-0.10.6.crate) = 47234
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.5.1.crate) = 6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118
-SIZE (rust/crates/blocking-1.5.1.crate) = 17277
+SHA256 (rust/crates/blocking-1.6.0.crate) = 495f7104e962b7356f0aeb34247aca1fe7d2e783b346582db7f2904cb5717e88
+SIZE (rust/crates/blocking-1.6.0.crate) = 17696
SHA256 (rust/crates/brotli-3.5.0.crate) = d640d25bc63c50fb1f0b545ffd80207d2e10a4c965530809b40ba3386825c391
SIZE (rust/crates/brotli-3.5.0.crate) = 1390231
SHA256 (rust/crates/brotli-decompressor-2.5.1.crate) = 4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f
@@ -143,16 +143,16 @@ SHA256 (rust/crates/bytes-1.6.0.crate) = 514de17de45fdb8dc022b1a7975556c53c86f9f
SIZE (rust/crates/bytes-1.6.0.crate) = 60605
SHA256 (rust/crates/bytestring-1.3.1.crate) = 74d80203ea6b29df88012294f62733de21cfeab47f17b41af3a38bc30a03ee72
SIZE (rust/crates/bytestring-1.3.1.crate) = 9142
-SHA256 (rust/crates/cc-1.0.95.crate) = d32a725bc159af97c3e629873bb9f88fb8cf8a4867175f76dc987815ea07c83b
-SIZE (rust/crates/cc-1.0.95.crate) = 76485
+SHA256 (rust/crates/cc-1.0.97.crate) = 099a5357d84c4c61eb35fc8eafa9a79a902c2f76911e5747ced4e032edd8d9b4
+SIZE (rust/crates/cc-1.0.97.crate) = 76951
SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
SHA256 (rust/crates/chrono-0.4.38.crate) = a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401
SIZE (rust/crates/chrono-0.4.38.crate) = 220559
-SHA256 (rust/crates/colorchoice-1.0.0.crate) = acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7
-SIZE (rust/crates/colorchoice-1.0.0.crate) = 6857
-SHA256 (rust/crates/concurrent-queue-2.4.0.crate) = d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363
-SIZE (rust/crates/concurrent-queue-2.4.0.crate) = 20244
+SHA256 (rust/crates/colorchoice-1.0.1.crate) = 0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422
+SIZE (rust/crates/colorchoice-1.0.1.crate) = 7895
+SHA256 (rust/crates/concurrent-queue-2.5.0.crate) = 4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973
+SIZE (rust/crates/concurrent-queue-2.5.0.crate) = 22654
SHA256 (rust/crates/config-0.14.0.crate) = 7328b20597b53c2454f0b1919720c25c7339051c02b72b7e05409e00b14132be
SIZE (rust/crates/config-0.14.0.crate) = 79442
SHA256 (rust/crates/const-oid-0.9.6.crate) = c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8
@@ -199,8 +199,8 @@ SHA256 (rust/crates/darling_macro-0.20.8.crate) = a668eda54683121533a393014d8692
SIZE (rust/crates/darling_macro-0.20.8.crate) = 1856
SHA256 (rust/crates/dary_heap-0.3.6.crate) = 7762d17f1241643615821a8455a0b2c3e803784b058693d990b11f2dce25a0ca
SIZE (rust/crates/dary_heap-0.3.6.crate) = 23683
-SHA256 (rust/crates/data-encoding-2.5.0.crate) = 7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5
-SIZE (rust/crates/data-encoding-2.5.0.crate) = 20632
+SHA256 (rust/crates/data-encoding-2.6.0.crate) = e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2
+SIZE (rust/crates/data-encoding-2.6.0.crate) = 20769
SHA256 (rust/crates/der-0.7.9.crate) = f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0
SIZE (rust/crates/der-0.7.9.crate) = 85173
SHA256 (rust/crates/der-parser-8.2.0.crate) = dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e
@@ -231,8 +231,8 @@ SHA256 (rust/crates/env_logger-0.11.3.crate) = 38b35839ba51819680ba087cd351788c9
SIZE (rust/crates/env_logger-0.11.3.crate) = 29704
SHA256 (rust/crates/equivalent-1.0.1.crate) = 5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5
SIZE (rust/crates/equivalent-1.0.1.crate) = 6615
-SHA256 (rust/crates/errno-0.3.8.crate) = a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245
-SIZE (rust/crates/errno-0.3.8.crate) = 10645
+SHA256 (rust/crates/errno-0.3.9.crate) = 534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba
+SIZE (rust/crates/errno-0.3.9.crate) = 10690
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-4.0.3.crate) = 67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e
@@ -241,14 +241,14 @@ SHA256 (rust/crates/event-listener-5.3.0.crate) = 6d9944b8ca13534cdfb2800775f8dd
SIZE (rust/crates/event-listener-5.3.0.crate) = 43084
SHA256 (rust/crates/event-listener-strategy-0.4.0.crate) = 958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3
SIZE (rust/crates/event-listener-strategy-0.4.0.crate) = 10225
-SHA256 (rust/crates/event-listener-strategy-0.5.1.crate) = 332f51cb23d20b0de8458b86580878211da09bcd4503cb579c225b3d124cabb3
-SIZE (rust/crates/event-listener-strategy-0.5.1.crate) = 10656
-SHA256 (rust/crates/fastrand-2.0.2.crate) = 658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984
-SIZE (rust/crates/fastrand-2.0.2.crate) = 14674
+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-2.1.0.crate) = 9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a
+SIZE (rust/crates/fastrand-2.1.0.crate) = 14907
SHA256 (rust/crates/finl_unicode-1.2.0.crate) = 8fcfdc7a0362c9f4444381a9e697c79d435fe65b52a37466fc2c1184cee9edc6
SIZE (rust/crates/finl_unicode-1.2.0.crate) = 687752
-SHA256 (rust/crates/flate2-1.0.28.crate) = 46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e
-SIZE (rust/crates/flate2-1.0.28.crate) = 73690
+SHA256 (rust/crates/flate2-1.0.30.crate) = 5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae
+SIZE (rust/crates/flate2-1.0.30.crate) = 75511
SHA256 (rust/crates/flume-0.11.0.crate) = 55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181
SIZE (rust/crates/flume-0.11.0.crate) = 67502
SHA256 (rust/crates/fnv-1.0.7.crate) = 3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1
@@ -281,8 +281,8 @@ SHA256 (rust/crates/futures-util-0.3.30.crate) = 3d6401deb83407ab3da39eba7e33987
SIZE (rust/crates/futures-util-0.3.30.crate) = 159977
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.14.crate) = 94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c
-SIZE (rust/crates/getrandom-0.2.14.crate) = 37307
+SHA256 (rust/crates/getrandom-0.2.15.crate) = c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7
+SIZE (rust/crates/getrandom-0.2.15.crate) = 37163
SHA256 (rust/crates/gimli-0.28.1.crate) = 4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253
SIZE (rust/crates/gimli-0.28.1.crate) = 270497
SHA256 (rust/crates/gloo-net-0.2.6.crate) = 9902a044653b26b99f7e3693a42f171312d9be8b26b5697bd1e43ad1f8a35e10
@@ -295,12 +295,12 @@ SHA256 (rust/crates/handlebars-5.1.2.crate) = d08485b96a0e6393e9e4d1b8d48cf74ad6
SIZE (rust/crates/handlebars-5.1.2.crate) = 98550
SHA256 (rust/crates/hashbrown-0.13.2.crate) = 43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e
SIZE (rust/crates/hashbrown-0.13.2.crate) = 105265
-SHA256 (rust/crates/hashbrown-0.14.3.crate) = 290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604
-SIZE (rust/crates/hashbrown-0.14.3.crate) = 141425
-SHA256 (rust/crates/hashlink-0.8.4.crate) = e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7
-SIZE (rust/crates/hashlink-0.8.4.crate) = 26514
-SHA256 (rust/crates/heck-0.4.1.crate) = 95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8
-SIZE (rust/crates/heck-0.4.1.crate) = 11567
+SHA256 (rust/crates/hashbrown-0.14.5.crate) = e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1
+SIZE (rust/crates/hashbrown-0.14.5.crate) = 141498
+SHA256 (rust/crates/hashlink-0.9.0.crate) = 692eaaf7f7607518dd3cef090f1474b61edc5301d8012f09579920df68b725ee
+SIZE (rust/crates/hashlink-0.9.0.crate) = 26390
+SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea
+SIZE (rust/crates/heck-0.5.0.crate) = 11517
SHA256 (rust/crates/hermit-abi-0.3.9.crate) = d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024
SIZE (rust/crates/hermit-abi-0.3.9.crate) = 16165
SHA256 (rust/crates/hex-0.4.3.crate) = 7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70
@@ -339,6 +339,8 @@ SHA256 (rust/crates/include_dir_macros-0.7.3.crate) = b139284b5cf57ecfa712bcc669
SIZE (rust/crates/include_dir_macros-0.7.3.crate) = 3700
SHA256 (rust/crates/indexmap-2.2.6.crate) = 168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26
SIZE (rust/crates/indexmap-2.2.6.crate) = 82420
+SHA256 (rust/crates/is_terminal_polyfill-1.70.0.crate) = f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800
+SIZE (rust/crates/is_terminal_polyfill-1.70.0.crate) = 7451
SHA256 (rust/crates/itertools-0.12.1.crate) = ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569
SIZE (rust/crates/itertools-0.12.1.crate) = 137761
SHA256 (rust/crates/itoa-1.0.11.crate) = 49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b
@@ -359,12 +361,12 @@ SHA256 (rust/crates/language-tags-0.3.2.crate) = d4345964bb142484797b161f473a503
SIZE (rust/crates/language-tags-0.3.2.crate) = 53420
SHA256 (rust/crates/lazy_static-1.4.0.crate) = e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646
SIZE (rust/crates/lazy_static-1.4.0.crate) = 10443
-SHA256 (rust/crates/libc-0.2.153.crate) = 9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd
-SIZE (rust/crates/libc-0.2.153.crate) = 740614
-SHA256 (rust/crates/libflate-2.0.0.crate) = 9f7d5654ae1795afc7ff76f4365c2c8791b0feb18e8996a96adad8ffd7c3b2bf
-SIZE (rust/crates/libflate-2.0.0.crate) = 42505
-SHA256 (rust/crates/libflate_lz77-2.0.0.crate) = be5f52fb8c451576ec6b79d3f4deb327398bc05bbdbd99021a6e77a4c855d524
-SIZE (rust/crates/libflate_lz77-2.0.0.crate) = 5893
+SHA256 (rust/crates/libc-0.2.154.crate) = ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346
+SIZE (rust/crates/libc-0.2.154.crate) = 743304
+SHA256 (rust/crates/libflate-2.1.0.crate) = 45d9dfdc14ea4ef0900c1cddbc8dcd553fbaacd8a4a282cf4018ae9dd04fb21e
+SIZE (rust/crates/libflate-2.1.0.crate) = 43366
+SHA256 (rust/crates/libflate_lz77-2.1.0.crate) = e6e0d73b369f386f1c44abd9c570d5318f55ccde816ff4b562fa452e5182863d
+SIZE (rust/crates/libflate_lz77-2.1.0.crate) = 5918
SHA256 (rust/crates/libm-0.2.8.crate) = 4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058
SIZE (rust/crates/libm-0.2.8.crate) = 113450
SHA256 (rust/crates/libredox-0.1.3.crate) = c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d
@@ -379,12 +381,12 @@ SHA256 (rust/crates/local-channel-0.1.5.crate) = b6cbc85e69b8df4b8bb8b89ec634e71
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.11.crate) = 3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45
-SIZE (rust/crates/lock_api-0.4.11.crate) = 27487
+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.21.crate) = 90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c
SIZE (rust/crates/log-0.4.21.crate) = 43442
-SHA256 (rust/crates/markdown-1.0.0-alpha.16.crate) = 5b0f0025e8c0d89b84d6dc63e859475e40e8e82ab1a08be0a93ad5731513a508
-SIZE (rust/crates/markdown-1.0.0-alpha.16.crate) = 193486
+SHA256 (rust/crates/markdown-1.0.0-alpha.17.crate) = 21e27d6220ce21f80ce5c4201f23a37c6f1ad037c72c9d1ff215c2919605a5d6
+SIZE (rust/crates/markdown-1.0.0-alpha.17.crate) = 214953
SHA256 (rust/crates/md-5-0.10.6.crate) = d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf
SIZE (rust/crates/md-5-0.10.6.crate) = 16161
SHA256 (rust/crates/memchr-2.7.2.crate) = 6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d
@@ -401,18 +403,18 @@ SHA256 (rust/crates/mio-0.8.11.crate) = a4a650543ca06a924e8b371db273b2756685faae
SIZE (rust/crates/mio-0.8.11.crate) = 102983
SHA256 (rust/crates/nom-7.1.3.crate) = d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a
SIZE (rust/crates/nom-7.1.3.crate) = 117570
-SHA256 (rust/crates/num-bigint-0.4.4.crate) = 608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0
-SIZE (rust/crates/num-bigint-0.4.4.crate) = 99369
+SHA256 (rust/crates/num-bigint-0.4.5.crate) = c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7
+SIZE (rust/crates/num-bigint-0.4.5.crate) = 102281
SHA256 (rust/crates/num-bigint-dig-0.8.4.crate) = dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151
SIZE (rust/crates/num-bigint-dig-0.8.4.crate) = 123825
SHA256 (rust/crates/num-conv-0.1.0.crate) = 51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9
SIZE (rust/crates/num-conv-0.1.0.crate) = 7444
SHA256 (rust/crates/num-integer-0.1.46.crate) = 7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f
SIZE (rust/crates/num-integer-0.1.46.crate) = 22331
-SHA256 (rust/crates/num-iter-0.1.44.crate) = d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9
-SIZE (rust/crates/num-iter-0.1.44.crate) = 10249
-SHA256 (rust/crates/num-traits-0.2.18.crate) = da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a
-SIZE (rust/crates/num-traits-0.2.18.crate) = 51930
+SHA256 (rust/crates/num-iter-0.1.45.crate) = 1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf
+SIZE (rust/crates/num-iter-0.1.45.crate) = 10320
+SHA256 (rust/crates/num-traits-0.2.19.crate) = 071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841
+SIZE (rust/crates/num-traits-0.2.19.crate) = 51631
SHA256 (rust/crates/num_cpus-1.16.0.crate) = 4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43
SIZE (rust/crates/num_cpus-1.16.0.crate) = 15713
SHA256 (rust/crates/object-0.32.2.crate) = a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441
@@ -427,16 +429,16 @@ SHA256 (rust/crates/ordered-multimap-0.6.0.crate) = 4ed8acf08e98e744e5384c8bc63c
SIZE (rust/crates/ordered-multimap-0.6.0.crate) = 23158
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.1.crate) = 3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f
-SIZE (rust/crates/parking_lot-0.12.1.crate) = 40967
-SHA256 (rust/crates/parking_lot_core-0.9.9.crate) = 4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e
-SIZE (rust/crates/parking_lot_core-0.9.9.crate) = 32445
+SHA256 (rust/crates/parking_lot-0.12.2.crate) = 7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb
+SIZE (rust/crates/parking_lot-0.12.2.crate) = 41723
+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/parse-size-1.0.0.crate) = 944553dd59c802559559161f9816429058b869003836120e262e8caec061b7ae
SIZE (rust/crates/parse-size-1.0.0.crate) = 6588
SHA256 (rust/crates/password-hash-0.5.0.crate) = 346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166
SIZE (rust/crates/password-hash-0.5.0.crate) = 26884
-SHA256 (rust/crates/paste-1.0.14.crate) = de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c
-SIZE (rust/crates/paste-1.0.14.crate) = 18157
+SHA256 (rust/crates/paste-1.0.15.crate) = 57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a
+SIZE (rust/crates/paste-1.0.15.crate) = 18374
SHA256 (rust/crates/pathdiff-0.2.1.crate) = 8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd
SIZE (rust/crates/pathdiff-0.2.1.crate) = 7142
SHA256 (rust/crates/pem-3.0.4.crate) = 8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae
@@ -445,14 +447,14 @@ SHA256 (rust/crates/pem-rfc7468-0.7.0.crate) = 88b39c9bfcfc231068454382784bb460a
SIZE (rust/crates/pem-rfc7468-0.7.0.crate) = 24159
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.9.crate) = 311fb059dee1a7b802f036316d790138c613a4e8b180c822e3925a662e9f0c95
-SIZE (rust/crates/pest-2.7.9.crate) = 123517
-SHA256 (rust/crates/pest_derive-2.7.9.crate) = f73541b156d32197eecda1a4014d7f868fd2bcb3c550d5386087cfba442bf69c
-SIZE (rust/crates/pest_derive-2.7.9.crate) = 36139
-SHA256 (rust/crates/pest_generator-2.7.9.crate) = c35eeed0a3fab112f75165fdc026b3913f4183133f19b49be773ac9ea966e8bd
-SIZE (rust/crates/pest_generator-2.7.9.crate) = 18412
-SHA256 (rust/crates/pest_meta-2.7.9.crate) = 2adbf29bb9776f28caece835398781ab24435585fe0d4dc1374a61db5accedca
-SIZE (rust/crates/pest_meta-2.7.9.crate) = 41547
+SHA256 (rust/crates/pest-2.7.10.crate) = 560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8
+SIZE (rust/crates/pest-2.7.10.crate) = 123707
+SHA256 (rust/crates/pest_derive-2.7.10.crate) = 26293c9193fbca7b1a3bf9b79dc1e388e927e6cacaa78b4a3ab705a1d3d41459
+SIZE (rust/crates/pest_derive-2.7.10.crate) = 36221
+SHA256 (rust/crates/pest_generator-2.7.10.crate) = 3ec22af7d3fb470a85dd2ca96b7c577a1eb4ef6f1683a9fe9a8c16e136c04687
+SIZE (rust/crates/pest_generator-2.7.10.crate) = 18411
+SHA256 (rust/crates/pest_meta-2.7.10.crate) = d7a240022f37c361ec1878d646fc5b7d7c4d28d5946e1a80ad5a7a4f4ca0bdcd
+SIZE (rust/crates/pest_meta-2.7.10.crate) = 41550
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
@@ -475,8 +477,8 @@ SHA256 (rust/crates/powerfmt-0.2.0.crate) = 439ee305def115ba05938db6eb1644ff9416
SIZE (rust/crates/powerfmt-0.2.0.crate) = 15165
SHA256 (rust/crates/ppv-lite86-0.2.17.crate) = 5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de
SIZE (rust/crates/ppv-lite86-0.2.17.crate) = 22242
-SHA256 (rust/crates/proc-macro2-1.0.81.crate) = 3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba
-SIZE (rust/crates/proc-macro2-1.0.81.crate) = 48233
+SHA256 (rust/crates/proc-macro2-1.0.82.crate) = 8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b
+SIZE (rust/crates/proc-macro2-1.0.82.crate) = 48452
SHA256 (rust/crates/quote-1.0.36.crate) = 0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7
SIZE (rust/crates/quote-1.0.36.crate) = 28507
SHA256 (rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404
@@ -489,6 +491,8 @@ SHA256 (rust/crates/rcgen-0.12.1.crate) = 48406db8ac1f3cbc7dcdb56ec355343817958a
SIZE (rust/crates/rcgen-0.12.1.crate) = 63815
SHA256 (rust/crates/redox_syscall-0.4.1.crate) = 4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa
SIZE (rust/crates/redox_syscall-0.4.1.crate) = 24858
+SHA256 (rust/crates/redox_syscall-0.5.1.crate) = 469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e
+SIZE (rust/crates/redox_syscall-0.5.1.crate) = 22536
SHA256 (rust/crates/redox_users-0.4.5.crate) = bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891
SIZE (rust/crates/redox_users-0.4.5.crate) = 15514
SHA256 (rust/crates/regex-1.10.4.crate) = c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c
@@ -507,8 +511,8 @@ SHA256 (rust/crates/rsa-0.9.6.crate) = 5d0e5124fcb30e76a7e79bfee683a2746db83784b
SIZE (rust/crates/rsa-0.9.6.crate) = 80048
SHA256 (rust/crates/rust-ini-0.19.0.crate) = 7e2a3bcec1f113553ef1c88aae6c020a369d03d55b58de9869a0908930385091
SIZE (rust/crates/rust-ini-0.19.0.crate) = 18328
-SHA256 (rust/crates/rustc-demangle-0.1.23.crate) = d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76
-SIZE (rust/crates/rustc-demangle-0.1.23.crate) = 28970
+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/rusticata-macros-4.1.0.crate) = faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632
@@ -521,22 +525,22 @@ SHA256 (rust/crates/rustls-acme-0.9.2.crate) = 9f6de93ea3b4a88a9048f753f6db50242
SIZE (rust/crates/rustls-acme-0.9.2.crate) = 43768
SHA256 (rust/crates/rustls-pemfile-2.1.2.crate) = 29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d
SIZE (rust/crates/rustls-pemfile-2.1.2.crate) = 25928
-SHA256 (rust/crates/rustls-pki-types-1.4.1.crate) = ecd36cc4259e3e4514335c4a138c6b43171a8d61d8f5c9348f9fc7529416f247
-SIZE (rust/crates/rustls-pki-types-1.4.1.crate) = 29437
+SHA256 (rust/crates/rustls-pki-types-1.7.0.crate) = 976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d
+SIZE (rust/crates/rustls-pki-types-1.7.0.crate) = 29555
SHA256 (rust/crates/rustls-webpki-0.102.3.crate) = f3bce581c0dd41bce533ce695a1437fa16a7ab5ac3ccfa99fe1a620a7885eabf
SIZE (rust/crates/rustls-webpki-0.102.3.crate) = 197543
-SHA256 (rust/crates/ryu-1.0.17.crate) = e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1
-SIZE (rust/crates/ryu-1.0.17.crate) = 47537
+SHA256 (rust/crates/ryu-1.0.18.crate) = f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f
+SIZE (rust/crates/ryu-1.0.18.crate) = 47713
SHA256 (rust/crates/scopeguard-1.2.0.crate) = 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49
SIZE (rust/crates/scopeguard-1.2.0.crate) = 11619
-SHA256 (rust/crates/semver-1.0.22.crate) = 92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca
-SIZE (rust/crates/semver-1.0.22.crate) = 30446
-SHA256 (rust/crates/serde-1.0.198.crate) = 9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc
-SIZE (rust/crates/serde-1.0.198.crate) = 77577
-SHA256 (rust/crates/serde_derive-1.0.198.crate) = e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9
-SIZE (rust/crates/serde_derive-1.0.198.crate) = 55787
-SHA256 (rust/crates/serde_json-1.0.116.crate) = 3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813
-SIZE (rust/crates/serde_json-1.0.116.crate) = 146790
+SHA256 (rust/crates/semver-1.0.23.crate) = 61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b
+SIZE (rust/crates/semver-1.0.23.crate) = 30622
+SHA256 (rust/crates/serde-1.0.201.crate) = 780f1cebed1629e4753a1a38a3c72d30b97ec044f0aef68cb26650a3c5cf363c
+SIZE (rust/crates/serde-1.0.201.crate) = 77725
+SHA256 (rust/crates/serde_derive-1.0.201.crate) = c5e405930b9796f1c00bee880d03fc7e0bb4b9a11afc776885ffe84320da2865
+SIZE (rust/crates/serde_derive-1.0.201.crate) = 55865
+SHA256 (rust/crates/serde_json-1.0.117.crate) = 455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3
+SIZE (rust/crates/serde_json-1.0.117.crate) = 146921
SHA256 (rust/crates/serde_plain-1.0.2.crate) = 9ce1fc6db65a611022b23a0dec6975d63fb80a302cb3388835ff02c097258d50
SIZE (rust/crates/serde_plain-1.0.2.crate) = 11183
SHA256 (rust/crates/serde_spanned-0.6.5.crate) = eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1
@@ -555,8 +559,8 @@ SHA256 (rust/crates/slab-0.4.9.crate) = 8f92a496fb766b417c996b9c5e57daf2f7ad3b0b
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.5.6.crate) = 05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871
-SIZE (rust/crates/socket2-0.5.6.crate) = 55270
+SHA256 (rust/crates/socket2-0.5.7.crate) = ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c
+SIZE (rust/crates/socket2-0.5.7.crate) = 55758
SHA256 (rust/crates/spin-0.5.2.crate) = 6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d
SIZE (rust/crates/spin-0.5.2.crate) = 12004
SHA256 (rust/crates/spin-0.9.8.crate) = 6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67
@@ -565,18 +569,18 @@ SHA256 (rust/crates/spki-0.7.3.crate) = d91ed6c858b01f942cd56b37a94b3e0a17982903
SIZE (rust/crates/spki-0.7.3.crate) = 16409
SHA256 (rust/crates/sqlformat-0.2.3.crate) = ce81b7bd7c4493975347ef60d8c7e8b742d4694f4c49f93e0a12ea263938176c
SIZE (rust/crates/sqlformat-0.2.3.crate) = 21878
-SHA256 (rust/crates/sqlparser-0.45.0.crate) = f7bbffee862a796d67959a89859d6b1046bb5016d63e23835ad0da182777bbe0
-SIZE (rust/crates/sqlparser-0.45.0.crate) = 182846
+SHA256 (rust/crates/sqlparser-0.46.0.crate) = 11a81a8cad9befe4cf1b9d2d4b9c6841c76f0882a3fec00d95133953c13b3d3d
+SIZE (rust/crates/sqlparser-0.46.0.crate) = 193438
SHA256 (rust/crates/sqlparser_derive-0.2.2.crate) = 01b2e185515564f15375f593fb966b5718bc624ba77fe49fa4616ad619690554
SIZE (rust/crates/sqlparser_derive-0.2.2.crate) = 3901
-SHA256 (rust/crates/sqlx-core-oldapi-0.6.20.crate) = 624f048d5bd101ab562d59b9c39482b913b56e650cdddaf02261a0a4183c92ca
-SIZE (rust/crates/sqlx-core-oldapi-0.6.20.crate) = 310115
-SHA256 (rust/crates/sqlx-macros-oldapi-0.6.20.crate) = 20072fc1733434670020c0ac4aa4dded9ef63b96fe752f9c1a99e59912aaf387
-SIZE (rust/crates/sqlx-macros-oldapi-0.6.20.crate) = 24656
-SHA256 (rust/crates/sqlx-oldapi-0.6.20.crate) = cf8dbf0eee6f059103c75080f9c8d2ecce0e9c5fe2038b9b83e1b84699d27cdf
-SIZE (rust/crates/sqlx-oldapi-0.6.20.crate) = 131875
-SHA256 (rust/crates/sqlx-rt-oldapi-0.6.20.crate) = 411bcba96bb1eb626546c94ec6eff6c576c995c631ffb0c1c91839c9ffd36607
-SIZE (rust/crates/sqlx-rt-oldapi-0.6.20.crate) = 2348
+SHA256 (rust/crates/sqlx-core-oldapi-0.6.22.crate) = aa9a7023136d8a8f6da5ad32aa17a2069fd34f9473288f1086d6eeb4044920f8
+SIZE (rust/crates/sqlx-core-oldapi-0.6.22.crate) = 311576
+SHA256 (rust/crates/sqlx-macros-oldapi-0.6.22.crate) = ab0aaae6248541829f7135fad6fdc4fb45e63b25a669c002307c1411d7219b2a
+SIZE (rust/crates/sqlx-macros-oldapi-0.6.22.crate) = 24652
+SHA256 (rust/crates/sqlx-oldapi-0.6.22.crate) = ea211c9013de96d018ab47b5ec307b74ddaf079cba70a18bd6239b090b30e150
+SIZE (rust/crates/sqlx-oldapi-0.6.22.crate) = 137004
+SHA256 (rust/crates/sqlx-rt-oldapi-0.6.22.crate) = 218f0ab15a62c98c18eb5866c188688dc7df3baedb7f2a15a51761f10834f171
+SIZE (rust/crates/sqlx-rt-oldapi-0.6.22.crate) = 2354
SHA256 (rust/crates/stringprep-0.1.4.crate) = bb41d74e231a107a1b4ee36bd1214b11285b77768d2e3824aedafa988fd36ee6
SIZE (rust/crates/stringprep-0.1.4.crate) = 23551
SHA256 (rust/crates/strsim-0.10.0.crate) = 73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623
@@ -585,16 +589,16 @@ SHA256 (rust/crates/subtle-2.5.0.crate) = 81cdd64d312baedb58e21336b31bc043b77e01
SIZE (rust/crates/subtle-2.5.0.crate) = 13909
SHA256 (rust/crates/syn-1.0.109.crate) = 72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237
SIZE (rust/crates/syn-1.0.109.crate) = 237611
-SHA256 (rust/crates/syn-2.0.60.crate) = 909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3
-SIZE (rust/crates/syn-2.0.60.crate) = 255808
+SHA256 (rust/crates/syn-2.0.61.crate) = c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9
+SIZE (rust/crates/syn-2.0.61.crate) = 257199
SHA256 (rust/crates/synstructure-0.12.6.crate) = f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f
SIZE (rust/crates/synstructure-0.12.6.crate) = 18429
SHA256 (rust/crates/tempfile-3.10.1.crate) = 85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1
SIZE (rust/crates/tempfile-3.10.1.crate) = 33653
-SHA256 (rust/crates/thiserror-1.0.59.crate) = f0126ad08bff79f29fc3ae6a55cc72352056dfff61e3ff8bb7129476d44b23aa
-SIZE (rust/crates/thiserror-1.0.59.crate) = 21040
-SHA256 (rust/crates/thiserror-impl-1.0.59.crate) = d1cd413b5d558b4c5bf3680e324a6fa5014e7b7c067a51e69dbdf47eb7148b66
-SIZE (rust/crates/thiserror-impl-1.0.59.crate) = 15726
+SHA256 (rust/crates/thiserror-1.0.60.crate) = 579e9083ca58dd9dcf91a9923bb9054071b9ebbd800b342194c9feb0ee89fc18
+SIZE (rust/crates/thiserror-1.0.60.crate) = 21247
+SHA256 (rust/crates/thiserror-impl-1.0.60.crate) = e2470041c06ec3ac1ab38d0356a6119054dedaea53e12fbefc0de730a1c08524
+SIZE (rust/crates/thiserror-impl-1.0.60.crate) = 15787
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
@@ -615,8 +619,8 @@ SHA256 (rust/crates/tokio-rustls-0.25.0.crate) = 775e0c0f0adb3a2f22a00c4745d728b
SIZE (rust/crates/tokio-rustls-0.25.0.crate) = 30541
SHA256 (rust/crates/tokio-stream-0.1.15.crate) = 267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af
SIZE (rust/crates/tokio-stream-0.1.15.crate) = 36284
-SHA256 (rust/crates/tokio-util-0.7.10.crate) = 5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15
-SIZE (rust/crates/tokio-util-0.7.10.crate) = 110508
+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.12.crate) = e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3
SIZE (rust/crates/toml-0.8.12.crate) = 51145
SHA256 (rust/crates/toml_datetime-0.6.5.crate) = 3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1
@@ -733,18 +737,18 @@ SHA256 (rust/crates/windows_x86_64_msvc-0.48.5.crate) = ed94fce61571a4006852b738
SIZE (rust/crates/windows_x86_64_msvc-0.48.5.crate) = 798412
SHA256 (rust/crates/windows_x86_64_msvc-0.52.5.crate) = bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0
SIZE (rust/crates/windows_x86_64_msvc-0.52.5.crate) = 827905
-SHA256 (rust/crates/winnow-0.6.6.crate) = f0c976aaaa0e1f90dbb21e9587cdaf1d9679a1cde8875c0d6bd83ab96a208352
-SIZE (rust/crates/winnow-0.6.6.crate) = 159321
+SHA256 (rust/crates/winnow-0.6.8.crate) = c3c52e9c97a68071b23e836c9380edae937f17b9c4667bd021973efc689f618d
+SIZE (rust/crates/winnow-0.6.8.crate) = 159453
SHA256 (rust/crates/x509-parser-0.15.1.crate) = 7069fba5b66b9193bd2c5d3d4ff12b839118f6bcbef5328efafafb5395cf63da
SIZE (rust/crates/x509-parser-0.15.1.crate) = 91123
SHA256 (rust/crates/yaml-rust-0.4.5.crate) = 56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85
SIZE (rust/crates/yaml-rust-0.4.5.crate) = 47783
SHA256 (rust/crates/yasna-0.5.2.crate) = e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd
SIZE (rust/crates/yasna-0.5.2.crate) = 34859
-SHA256 (rust/crates/zerocopy-0.7.32.crate) = 74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be
-SIZE (rust/crates/zerocopy-0.7.32.crate) = 151096
-SHA256 (rust/crates/zerocopy-derive-0.7.32.crate) = 9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6
-SIZE (rust/crates/zerocopy-derive-0.7.32.crate) = 37623
+SHA256 (rust/crates/zerocopy-0.7.34.crate) = ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087
+SIZE (rust/crates/zerocopy-0.7.34.crate) = 151177
+SHA256 (rust/crates/zerocopy-derive-0.7.34.crate) = 15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b
+SIZE (rust/crates/zerocopy-derive-0.7.34.crate) = 37907
SHA256 (rust/crates/zeroize-1.7.0.crate) = 525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d
SIZE (rust/crates/zeroize-1.7.0.crate) = 19039
SHA256 (rust/crates/zstd-0.13.1.crate) = 2d789b1514203a1120ad2429eae43a7bd32b90976a7bb8a05f7ec02fa88cc23a
@@ -753,5 +757,5 @@ SHA256 (rust/crates/zstd-safe-7.1.0.crate) = 1cd99b45c6bc03a018c8b8a86025678c87e
SIZE (rust/crates/zstd-safe-7.1.0.crate) = 20792
SHA256 (rust/crates/zstd-sys-2.0.10+zstd.1.5.6.crate) = c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa
SIZE (rust/crates/zstd-sys-2.0.10+zstd.1.5.6.crate) = 749088
-SHA256 (lovasoa-SQLpage-v0.20.4_GH0.tar.gz) = 6102e9ed298cf15929f5e7a37853daf4f6725bf199fd09407c34c566b456fdaf
-SIZE (lovasoa-SQLpage-v0.20.4_GH0.tar.gz) = 19621465
+SHA256 (lovasoa-SQLpage-v0.20.5_GH0.tar.gz) = c54dd46d2fd54572c2ad4a0060ae0cd74409944337b645f4914e4b36667aef58
+SIZE (lovasoa-SQLpage-v0.20.5_GH0.tar.gz) = 23749805
diff --git a/www/stork/Makefile b/www/stork/Makefile
index 72bd9b09f54b..17a7c914541f 100644
--- a/www/stork/Makefile
+++ b/www/stork/Makefile
@@ -1,7 +1,7 @@
PORTNAME= stork
DISTVERSIONPREFIX= v
DISTVERSION= 1.6.0
-PORTREVISION= 10
+PORTREVISION= 11
CATEGORIES= www
MAINTAINER= yuri@FreeBSD.org
diff --git a/www/tcexam/Makefile b/www/tcexam/Makefile
index 10c1a29f4bd1..5a95c274c296 100644
--- a/www/tcexam/Makefile
+++ b/www/tcexam/Makefile
@@ -1,5 +1,5 @@
PORTNAME= tcexam
-PORTVERSION= 16.3.1
+PORTVERSION= 16.3.2
CATEGORIES= www education
PKGNAMESUFFIX= ${PHP_PKGNAMESUFFIX}
diff --git a/www/tcexam/distinfo b/www/tcexam/distinfo
index 0931db5fd60c..49093c728306 100644
--- a/www/tcexam/distinfo
+++ b/www/tcexam/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1711699676
-SHA256 (tecnickcom-tcexam-16.3.1_GH0.tar.gz) = 69b77df3ffdf11fa6c977ac38aaeb2b16434b9f8d00e613f14b764ddb8a17339
-SIZE (tecnickcom-tcexam-16.3.1_GH0.tar.gz) = 17143183
+TIMESTAMP = 1714657040
+SHA256 (tecnickcom-tcexam-16.3.2_GH0.tar.gz) = d584e93b0a2cca6933b885a022dab7ec61243493addfa06eedcf056d4ed497c1
+SIZE (tecnickcom-tcexam-16.3.2_GH0.tar.gz) = 17141114
diff --git a/www/tclhttpd/Makefile b/www/tclhttpd/Makefile
index 320c29848648..102e122b9314 100644
--- a/www/tclhttpd/Makefile
+++ b/www/tclhttpd/Makefile
@@ -1,11 +1,11 @@
PORTNAME= tclhttpd
PORTVERSION= 3.5.1
-PORTREVISION= 5
+PORTREVISION= 6
CATEGORIES= www tcl
MASTER_SITES= TCLTK/httpd
DISTNAME= ${PORTNAME}${PORTVERSION}
-MAINTAINER= mi@aldan.algebra.com
+MAINTAINER= ports@virtual-estates.net
COMMENT= Http-server implemented in TCL
WWW= https://www.tcl.tk/software/tclhttpd/
diff --git a/www/tdom/Makefile b/www/tdom/Makefile
index e9645ef2078a..f1ff11c490d2 100644
--- a/www/tdom/Makefile
+++ b/www/tdom/Makefile
@@ -1,10 +1,11 @@
PORTNAME= tDOM
PORTVERSION= 0.9.3
+PORTREVISION= 1
CATEGORIES= www
MASTER_SITES= http://tdom.org/downloads/
DISTNAME= ${PORTNAME:tl}-${PORTVERSION}-src
-MAINTAINER= mi@aldan.algebra.com
+MAINTAINER= ports@virtual-estates.net
COMMENT= High performance processing of XML and HTML data with Tcl
WWW= http://www.tdom.org/
diff --git a/www/tgpt/Makefile b/www/tgpt/Makefile
new file mode 100644
index 000000000000..eee9db345988
--- /dev/null
+++ b/www/tgpt/Makefile
@@ -0,0 +1,62 @@
+PORTNAME= tgpt
+DISTVERSIONPREFIX= v
+DISTVERSION= 2.7.4
+CATEGORIES= www
+
+MAINTAINER= nxjoseph@protonmail.com
+COMMENT= AI Chatbots in terminal without needing API keys
+WWW= https://github.com/aandrew-me/tgpt
+
+LICENSE= GPLv3
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+USES= go:1.21
+
+USE_GITHUB= yes
+GH_ACCOUNT= aandrew-me
+
+GO_PKGNAME= github.com/${GH_ACCOUNT}/${PORTNAME}
+GO_BUILDFLAGS= -trimpath -ldflags="-s -w" -o ./build/tgpt
+GH_TUPLE= andybalholm:brotli:v1.0.5:andybalholm_brotli/vendor/github.com/andybalholm/brotli \
+ atotto:clipboard:v0.1.4:atotto_clipboard/vendor/github.com/atotto/clipboard \
+ aymanbagabas:go-osc52:v2.0.1:aymanbagabas_go_osc52_v2/vendor/github.com/aymanbagabas/go-osc52/v2 \
+ bogdanfinn:fhttp:v0.5.24:bogdanfinn_fhttp/vendor/github.com/bogdanfinn/fhttp \
+ bogdanfinn:tls-client:v1.6.1:bogdanfinn_tls_client/vendor/github.com/bogdanfinn/tls-client \
+ bogdanfinn:utls:v1.5.16:bogdanfinn_utls/vendor/github.com/bogdanfinn/utls \
+ c-bata:go-prompt:v0.2.6:c_bata_go_prompt/vendor/github.com/c-bata/go-prompt \
+ charmbracelet:bubbles:v0.16.1:charmbracelet_bubbles/vendor/github.com/charmbracelet/bubbles \
+ charmbracelet:bubbletea:v0.24.2:charmbracelet_bubbletea/vendor/github.com/charmbracelet/bubbletea \
+ charmbracelet:bubbletea:v0.24.2:charmbracelet_bubbletea/vendor/github.com/charmbracelet/bubbletea \
+ charmbracelet:lipgloss:v0.8.0:charmbracelet_lipgloss/vendor/github.com/charmbracelet/lipgloss \
+ containerd:console:1ae8d489ac81:containerd_console/vendor/github.com/containerd/console \
+ davecgh:go-spew:v1.1.1:davecgh_go_spew/vendor/github.com/davecgh/go-spew \
+ fatih:color:v1.15.0:fatih_color/vendor/github.com/fatih/color \
+ go-yaml:yaml:v3.0.1:go_yaml_yaml/vendor/gopkg.in/yaml.v3 \
+ golang:crypto:v0.14.0:golang_crypto/vendor/golang.org/x/crypto \
+ golang:mod:v0.13.0:golang_mod/vendor/golang.org/x/mod \
+ golang:net:v0.16.0:golang_net/vendor/golang.org/x/net \
+ golang:sync:v0.4.0:golang_sync/vendor/golang.org/x/sync \
+ golang:sys:v0.13.0:golang_sys/vendor/golang.org/x/sys \
+ golang:term:v0.13.0:golang_term/vendor/golang.org/x/term \
+ golang:text:v0.13.0:golang_text/vendor/golang.org/x/text \
+ klauspost:compress:v1.17.0:klauspost_compress/vendor/github.com/klauspost/compress \
+ lucasb-eyer:go-colorful:v1.2.0:lucasb_eyer_go_colorful/vendor/github.com/lucasb-eyer/go-colorful \
+ mattn:go-colorable:v0.1.13:mattn_go_colorable/vendor/github.com/mattn/go-colorable \
+ mattn:go-isatty:v0.0.19:mattn_go_isatty/vendor/github.com/mattn/go-isatty \
+ mattn:go-localereader:v0.0.1:mattn_go_localereader/vendor/github.com/mattn/go-localereader \
+ mattn:go-runewidth:v0.0.15:mattn_go_runewidth/vendor/github.com/mattn/go-runewidth \
+ mattn:go-tty:v0.0.3:mattn_go_tty/vendor/github.com/mattn/go-tty \
+ muesli:ansi:276c6243b2f6:muesli_ansi/vendor/github.com/muesli/ansi \
+ muesli:cancelreader:v0.2.2:muesli_cancelreader/vendor/github.com/muesli/cancelreader \
+ muesli:reflow:v0.3.0:muesli_reflow/vendor/github.com/muesli/reflow \
+ muesli:termenv:v0.15.2:muesli_termenv/vendor/github.com/muesli/termenv \
+ olekukonko:ts:78ecb04241c0:olekukonko_ts/vendor/github.com/olekukonko/ts \
+ pkg:term:v1.2.0-beta.2:pkg_term/vendor/github.com/pkg/term \
+ pmezard:go-difflib:v1.0.0:pmezard_go_difflib/vendor/github.com/pmezard/go-difflib \
+ rivo:uniseg:v0.4.4:rivo_uniseg/vendor/github.com/rivo/uniseg \
+ stretchr:testify:v1.8.4:stretchr_testify/vendor/github.com/stretchr/testify \
+ tam7t:hpkp:2b70b4024ed5:tam7t_hpkp/vendor/github.com/tam7t/hpkp
+
+PLIST_FILES= bin/tgpt
+
+.include <bsd.port.mk>
diff --git a/www/tgpt/distinfo b/www/tgpt/distinfo
new file mode 100644
index 000000000000..ab0de3ecfda1
--- /dev/null
+++ b/www/tgpt/distinfo
@@ -0,0 +1,79 @@
+TIMESTAMP = 1716053886
+SHA256 (aandrew-me-tgpt-v2.7.4_GH0.tar.gz) = 56d8ad2c493800ca66eda6cccb5a5ce9877975d79a9ceb8401e43491fcfd6885
+SIZE (aandrew-me-tgpt-v2.7.4_GH0.tar.gz) = 39329
+SHA256 (andybalholm-brotli-v1.0.5_GH0.tar.gz) = 3a10ffe88b56cad3ecf4660750ef3fa0fd8511b06d3c302a5ef18b9c2a361c05
+SIZE (andybalholm-brotli-v1.0.5_GH0.tar.gz) = 1818063
+SHA256 (atotto-clipboard-v0.1.4_GH0.tar.gz) = cafd64dc78f293c1e774386186f3f817461a1a8940ef86d5d9e9524b58aa791e
+SIZE (atotto-clipboard-v0.1.4_GH0.tar.gz) = 5017
+SHA256 (aymanbagabas-go-osc52-v2.0.1_GH0.tar.gz) = dad92f43db3cd17e7395db59533283b5888c2780fa1b2cb67344a9feaa3291e0
+SIZE (aymanbagabas-go-osc52-v2.0.1_GH0.tar.gz) = 5875
+SHA256 (bogdanfinn-fhttp-v0.5.24_GH0.tar.gz) = a1901c564ad9c698a31a4f23d0ae9a955fcd244a25692173bb0827a566d43ac5
+SIZE (bogdanfinn-fhttp-v0.5.24_GH0.tar.gz) = 805038
+SHA256 (bogdanfinn-tls-client-v1.6.1_GH0.tar.gz) = 0aadfd5dc3efe83c85b38ac341710bdea95a0dff9c08b98267c10ba2e18f07a2
+SIZE (bogdanfinn-tls-client-v1.6.1_GH0.tar.gz) = 282320
+SHA256 (bogdanfinn-utls-v1.5.16_GH0.tar.gz) = 90f97a3b58c2f9c52093ea3f318b7a1aa12c74b53b1bbe0594e735e1316bd1f4
+SIZE (bogdanfinn-utls-v1.5.16_GH0.tar.gz) = 603744
+SHA256 (c-bata-go-prompt-v0.2.6_GH0.tar.gz) = 6b249608d52ab66d33d85dcc5ec0a4f5f74f63ec6f22f8cfb12c96cb3a9b05cf
+SIZE (c-bata-go-prompt-v0.2.6_GH0.tar.gz) = 43452
+SHA256 (charmbracelet-bubbles-v0.16.1_GH0.tar.gz) = d7e4c4d4d64d576a71b4d1f137e22266b629bbdd2b4919cc9f0e536e42191ed4
+SIZE (charmbracelet-bubbles-v0.16.1_GH0.tar.gz) = 63319
+SHA256 (charmbracelet-bubbletea-v0.24.2_GH0.tar.gz) = 848aa3935597048fddb35199c24849df0af395271228607cfe8858192e6d5c27
+SIZE (charmbracelet-bubbletea-v0.24.2_GH0.tar.gz) = 2174833
+SHA256 (charmbracelet-lipgloss-v0.8.0_GH0.tar.gz) = 3f47af9f4f0125bddbc4ec47cb3ccc84abdeb1df6f13325a9024b9215a12e0bb
+SIZE (charmbracelet-lipgloss-v0.8.0_GH0.tar.gz) = 43968
+SHA256 (containerd-console-1ae8d489ac81_GH0.tar.gz) = 118afa0df744c158dbcc6842f5ef73b54ed1a64abfa057d64a2c6d4fcfa89df2
+SIZE (containerd-console-1ae8d489ac81_GH0.tar.gz) = 13534
+SHA256 (davecgh-go-spew-v1.1.1_GH0.tar.gz) = 7d82b9bb7291adbe7498fe946920ab3e7fc9e6cbfc3b2294693fad00bf0dd17e
+SIZE (davecgh-go-spew-v1.1.1_GH0.tar.gz) = 42152
+SHA256 (fatih-color-v1.15.0_GH0.tar.gz) = e7a92edb32453c11aec9fac4d9f2b8fc42fac72249a7ca567c926a112534030e
+SIZE (fatih-color-v1.15.0_GH0.tar.gz) = 11273
+SHA256 (go-yaml-yaml-v3.0.1_GH0.tar.gz) = cf05411540d3e6ef8f1fd88434b34f94cedaceb540329031d80e23b74540c4e5
+SIZE (go-yaml-yaml-v3.0.1_GH0.tar.gz) = 91173
+SHA256 (golang-crypto-v0.14.0_GH0.tar.gz) = 0c4a544080fe2e26e8cee929a123a9663cee81db155d1d66ccb0b38b395614b8
+SIZE (golang-crypto-v0.14.0_GH0.tar.gz) = 1797313
+SHA256 (golang-mod-v0.13.0_GH0.tar.gz) = cf5ce8abafd047ece87e904b2065de2293c131e331cdc06a64f2c78c3908a6ca
+SIZE (golang-mod-v0.13.0_GH0.tar.gz) = 122017
+SHA256 (golang-net-v0.16.0_GH0.tar.gz) = 580de513efdfbcfd990a2dcbb6ba40b62c9db334d97363124df03b98750d7eb5
+SIZE (golang-net-v0.16.0_GH0.tar.gz) = 1455196
+SHA256 (golang-sync-v0.4.0_GH0.tar.gz) = 78e03dd08d1c8c6c7a95ffbf9447d0c3ad0d26efd7ab74e41333eacdc70fdb3f
+SIZE (golang-sync-v0.4.0_GH0.tar.gz) = 20379
+SHA256 (golang-sys-v0.13.0_GH0.tar.gz) = 8877d20a8f1b2533ddef00e65b6b3b9cebbcbffa319ed525df0bc229f583e2b6
+SIZE (golang-sys-v0.13.0_GH0.tar.gz) = 1442250
+SHA256 (golang-term-v0.13.0_GH0.tar.gz) = 2457f9f3258b360ac1084c821fa1435d8c0a74ed4fd2edd2ab7682f9d41ba718
+SIZE (golang-term-v0.13.0_GH0.tar.gz) = 14797
+SHA256 (golang-text-v0.13.0_GH0.tar.gz) = c6e22ff8280188539ba0a6c65cbc80cda877adcf5332651fa78044018c05d6af
+SIZE (golang-text-v0.13.0_GH0.tar.gz) = 8967009
+SHA256 (klauspost-compress-v1.17.0_GH0.tar.gz) = 171582ff71acfaa7aa5030d2f86fbec26594f87597a3ee8f51e078185c34d645
+SIZE (klauspost-compress-v1.17.0_GH0.tar.gz) = 37966139
+SHA256 (lucasb-eyer-go-colorful-v1.2.0_GH0.tar.gz) = b3ee835cc398287452377266313edcc231043bae4168f8d2706e5d34ce1ce755
+SIZE (lucasb-eyer-go-colorful-v1.2.0_GH0.tar.gz) = 970830
+SHA256 (mattn-go-colorable-v0.1.13_GH0.tar.gz) = c3b62c76d365906bba9aa9d9ec048fd33a2a5742299d6482a08e7466d4c52d77
+SIZE (mattn-go-colorable-v0.1.13_GH0.tar.gz) = 9762
+SHA256 (mattn-go-isatty-v0.0.19_GH0.tar.gz) = 67b1614d495030982d276b211f3ba2a155fad61919ba96e34db8e67ed28660e4
+SIZE (mattn-go-isatty-v0.0.19_GH0.tar.gz) = 4679
+SHA256 (mattn-go-localereader-v0.0.1_GH0.tar.gz) = 03bd5a512b593c793cccd3a1f507e3a5ba6f92681b1fa4f812a53eddbc3751dc
+SIZE (mattn-go-localereader-v0.0.1_GH0.tar.gz) = 1735
+SHA256 (mattn-go-runewidth-v0.0.15_GH0.tar.gz) = 44a5d37bd7119a9d288d7ff61cf3b4d42c2902c66b0d94136d41d2eb3cf2ba85
+SIZE (mattn-go-runewidth-v0.0.15_GH0.tar.gz) = 18284
+SHA256 (mattn-go-tty-v0.0.3_GH0.tar.gz) = 4fc1faabd0ec817ca634931519d4d286858199fd6b8a5829fdc7cc7a40c45d8c
+SIZE (mattn-go-tty-v0.0.3_GH0.tar.gz) = 7795
+SHA256 (muesli-ansi-276c6243b2f6_GH0.tar.gz) = 3284ff73b72fb26606a9129355fa2916647423e3ede78ba8031e6bdfa0ccef4f
+SIZE (muesli-ansi-276c6243b2f6_GH0.tar.gz) = 5243
+SHA256 (muesli-cancelreader-v0.2.2_GH0.tar.gz) = afd827ad56d7c567389a516ca005ea80d46ed1cbc17c5ec3ca144152f1ecfc5a
+SIZE (muesli-cancelreader-v0.2.2_GH0.tar.gz) = 9443
+SHA256 (muesli-reflow-v0.3.0_GH0.tar.gz) = f797b8c25d447e314ad92b155433562446c683924171be1698ad44f24c79f651
+SIZE (muesli-reflow-v0.3.0_GH0.tar.gz) = 21245
+SHA256 (muesli-termenv-v0.15.2_GH0.tar.gz) = 547a35fca6d807006fc15bdd819f175e4214b2153d39b5c6f5df217d4d4fe6ec
+SIZE (muesli-termenv-v0.15.2_GH0.tar.gz) = 422802
+SHA256 (olekukonko-ts-78ecb04241c0_GH0.tar.gz) = e773762d9adb136c048e20f75f90ed3da9c4fd670c1798d26ef592b9aa4e44c7
+SIZE (olekukonko-ts-78ecb04241c0_GH0.tar.gz) = 3173
+SHA256 (pkg-term-v1.2.0-beta.2_GH0.tar.gz) = 7ec33e2b31f188923104d3edbecc4362f6d321354a178e4e4e49d1bfc5075e45
+SIZE (pkg-term-v1.2.0-beta.2_GH0.tar.gz) = 11330
+SHA256 (pmezard-go-difflib-v1.0.0_GH0.tar.gz) = 28f3dc1b5c0efd61203ab07233f774740d3bf08da4d8153fb5310db6cea0ebda
+SIZE (pmezard-go-difflib-v1.0.0_GH0.tar.gz) = 11398
+SHA256 (rivo-uniseg-v0.4.4_GH0.tar.gz) = eb2837932d0a666e13ea6b4cebf698096266d4f14740faa78c63b8291cf1fb5c
+SIZE (rivo-uniseg-v0.4.4_GH0.tar.gz) = 453399
+SHA256 (stretchr-testify-v1.8.4_GH0.tar.gz) = 0d3e82b04a05d9428a2a2aec8776bd0a07f14f5d1b4fa0a3676526ca8259fd62
+SIZE (stretchr-testify-v1.8.4_GH0.tar.gz) = 104427
+SHA256 (tam7t-hpkp-2b70b4024ed5_GH0.tar.gz) = 1a0f3f512036af140f861b107e652e59cbde74be8fb64d67d34fa4399c380325
+SIZE (tam7t-hpkp-2b70b4024ed5_GH0.tar.gz) = 12653
diff --git a/www/tgpt/pkg-descr b/www/tgpt/pkg-descr
new file mode 100644
index 000000000000..d518e2c63871
--- /dev/null
+++ b/www/tgpt/pkg-descr
@@ -0,0 +1,5 @@
+tgpt is a cross-platform command-line interface (CLI) tool that allows you to
+use AI chatbot in your Terminal without requiring API keys. It supports
+these providers: KoboldAI (koboldcpp/HF_SPACE_Tiefighter-13B),
+Phind (Phind Model), Llama2 (Llama 2 70b), Blackbox AI (Blackbox model)
+and OpenAI (All models, Requires API Key)
diff --git a/www/threejs/Makefile b/www/threejs/Makefile
index 107a617d78e1..ee801077c680 100644
--- a/www/threejs/Makefile
+++ b/www/threejs/Makefile
@@ -1,5 +1,5 @@
PORTNAME= three.js
-PORTVERSION= 162
+PORTVERSION= 164
DISTVERSIONPREFIX= r
CATEGORIES= www
diff --git a/www/threejs/distinfo b/www/threejs/distinfo
index 93f9d67a45c7..28fd09701720 100644
--- a/www/threejs/distinfo
+++ b/www/threejs/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1709296542
-SHA256 (mrdoob-three.js-r162_GH0.tar.gz) = 8c349ca08b0422a700e3c6908994528563fbaae4eab65cff29d683938f3f3b0c
-SIZE (mrdoob-three.js-r162_GH0.tar.gz) = 366789162
+TIMESTAMP = 1714582891
+SHA256 (mrdoob-three.js-r164_GH0.tar.gz) = 43f30b444d3702d8c427e701110020f2986b998e5f9e11cdf15ddf8b4fdeb6ae
+SIZE (mrdoob-three.js-r164_GH0.tar.gz) = 362035926
diff --git a/www/threejs/pkg-plist b/www/threejs/pkg-plist
index c59f69f16d33..f2860819e8be 100644
--- a/www/threejs/pkg-plist
+++ b/www/threejs/pkg-plist
@@ -185,7 +185,6 @@
%%WWWDIR%%/objects/Skeleton.js
%%WWWDIR%%/objects/SkinnedMesh.js
%%WWWDIR%%/objects/Sprite.js
-%%WWWDIR%%/renderers/WebGL1Renderer.js
%%WWWDIR%%/renderers/WebGL3DRenderTarget.js
%%WWWDIR%%/renderers/WebGLArrayRenderTarget.js
%%WWWDIR%%/renderers/WebGLCubeRenderTarget.js
@@ -243,7 +242,6 @@
%%WWWDIR%%/renderers/shaders/ShaderChunk/gradientmap_pars_fragment.glsl.js
%%WWWDIR%%/renderers/shaders/ShaderChunk/iridescence_fragment.glsl.js
%%WWWDIR%%/renderers/shaders/ShaderChunk/iridescence_pars_fragment.glsl.js
-%%WWWDIR%%/renderers/shaders/ShaderChunk/lightmap_fragment.glsl.js
%%WWWDIR%%/renderers/shaders/ShaderChunk/lightmap_pars_fragment.glsl.js
%%WWWDIR%%/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js
%%WWWDIR%%/renderers/shaders/ShaderChunk/lights_fragment_end.glsl.js
diff --git a/www/threema-web/Makefile b/www/threema-web/Makefile
index 62c59dfb41e2..8b3ca44b6d8b 100644
--- a/www/threema-web/Makefile
+++ b/www/threema-web/Makefile
@@ -1,5 +1,5 @@
PORTNAME= threema-web
-PORTVERSION= 2.5.2
+PORTVERSION= 2.5.5
CATEGORIES= www net-im
MASTER_SITES= https://github.com/threema-ch/${PORTNAME}/releases/download/v${PORTVERSION}/
DISTNAME= ${PORTNAME}-${PORTVERSION}-gh
diff --git a/www/threema-web/distinfo b/www/threema-web/distinfo
index 28452092e1e8..8993f8b61428 100644
--- a/www/threema-web/distinfo
+++ b/www/threema-web/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1701965074
-SHA256 (threema-web-2.5.2-gh.tar.gz) = d546efd9a6ec67678bbedb011530fa1bbd118a5ca6b561a9e04e1519cfa956f2
-SIZE (threema-web-2.5.2-gh.tar.gz) = 23903312
+TIMESTAMP = 1715759841
+SHA256 (threema-web-2.5.5-gh.tar.gz) = b8fa8c967696f79904ec4fb083f2bb296237ae85f0dd1e7930ab5323169581e6
+SIZE (threema-web-2.5.5-gh.tar.gz) = 23525696
diff --git a/www/threema-web/pkg-plist b/www/threema-web/pkg-plist
index a2ac5e2dcac4..654a709158db 100644
--- a/www/threema-web/pkg-plist
+++ b/www/threema-web/pkg-plist
@@ -1,9 +1,9 @@
@dir %%WWWDIR%%/components
-%%WWWDIR%%/218.45ed0109917b5a34b50a.bundle.js
-%%WWWDIR%%/218.45ed0109917b5a34b50a.bundle.js.map
-%%WWWDIR%%/878.d1ff4e350738715a0f22.bundle.js
-%%WWWDIR%%/878.d1ff4e350738715a0f22.bundle.js.map
-%%WWWDIR%%/77de81abe7775245a1c1.module.wasm
+%%WWWDIR%%/24.60cf29499fcd11d8987b.bundle.js
+%%WWWDIR%%/24.60cf29499fcd11d8987b.bundle.js.map
+%%WWWDIR%%/444.d16320117f5438b5a064.bundle.js
+%%WWWDIR%%/444.d16320117f5438b5a064.bundle.js.map
+%%WWWDIR%%/56a1152bdd9f8abd5a7e.module.wasm
%%WWWDIR%%/app.bundle.js
%%WWWDIR%%/app.bundle.js.map
%%WWWDIR%%/browserconfig.xml
@@ -6791,6 +6791,7 @@
%%WWWDIR%%/i18n/es.json
%%WWWDIR%%/i18n/fr.json
%%WWWDIR%%/i18n/hu.json
+%%WWWDIR%%/i18n/it.json
%%WWWDIR%%/i18n/ja.json
%%WWWDIR%%/i18n/ko.json
%%WWWDIR%%/i18n/nl.json
diff --git a/www/tinymce/Makefile b/www/tinymce/Makefile
index 7a2bae2b7f4b..bb40d7e744a8 100644
--- a/www/tinymce/Makefile
+++ b/www/tinymce/Makefile
@@ -1,5 +1,5 @@
PORTNAME= tinymce
-PORTVERSION= 7.0.1
+PORTVERSION= 7.1.0
CATEGORIES= www
MASTER_SITES= http://download.tiny.cloud/tinymce/community/ \
LOCAL/sunpoet
diff --git a/www/tinymce/distinfo b/www/tinymce/distinfo
index a883f7a0aca8..cac0cb555be8 100644
--- a/www/tinymce/distinfo
+++ b/www/tinymce/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1712886418
-SHA256 (tinymce_7.0.1.zip) = 89959a507fae0a8c162c4ac6a831074cb124d157c82d11ae1ee39f4b7b6d1034
-SIZE (tinymce_7.0.1.zip) = 966503
+TIMESTAMP = 1715842562
+SHA256 (tinymce_7.1.0.zip) = 3f7c18d1fdc25c7f16e8f779b76ba835f2b1e6caf8c132a75f97b3ace2f37cba
+SIZE (tinymce_7.1.0.zip) = 976191
diff --git a/www/tinyproxy/Makefile b/www/tinyproxy/Makefile
index f66ff3941e2e..fae893a5d057 100644
--- a/www/tinyproxy/Makefile
+++ b/www/tinyproxy/Makefile
@@ -1,5 +1,5 @@
PORTNAME= tinyproxy
-PORTVERSION= 1.11.1
+PORTVERSION= 1.11.2
PORTEPOCH= 1
CATEGORIES= www
MASTER_SITES= https://github.com/tinyproxy/tinyproxy/releases/download/${PORTVERSION}/
diff --git a/www/tinyproxy/distinfo b/www/tinyproxy/distinfo
index d889f4d7979d..13ac76670db2 100644
--- a/www/tinyproxy/distinfo
+++ b/www/tinyproxy/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1655208224
-SHA256 (tinyproxy-1.11.1.tar.xz) = d66388448215d0aeb90d0afdd58ed00386fb81abc23ebac9d80e194fceb40f7c
-SIZE (tinyproxy-1.11.1.tar.xz) = 182080
+TIMESTAMP = 1715842564
+SHA256 (tinyproxy-1.11.2.tar.xz) = 6a126880706691c987e2957b1c99b522efb1964a75eb767af4b30aac0b88a26a
+SIZE (tinyproxy-1.11.2.tar.xz) = 185864
diff --git a/www/tomcat-devel/Makefile b/www/tomcat-devel/Makefile
index 634371d28f32..cc5704cae5bf 100644
--- a/www/tomcat-devel/Makefile
+++ b/www/tomcat-devel/Makefile
@@ -1,5 +1,5 @@
PORTNAME= tomcat
-DISTVERSION= 11.0.0-M19
+DISTVERSION= 11.0.0-M20
CATEGORIES= www java
MASTER_SITES= APACHE/${PORTNAME}/${PORTNAME}-${DISTVERSION:C/([0-9]+)(.*)/\1/}/v${DISTVERSION}/bin
PKGNAMESUFFIX= -devel
diff --git a/www/tomcat-devel/distinfo b/www/tomcat-devel/distinfo
index 7acb43e2c15c..248ea300623d 100644
--- a/www/tomcat-devel/distinfo
+++ b/www/tomcat-devel/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1713281284
-SHA256 (apache-tomcat-11.0.0-M19.tar.gz) = ae4c72f0c265f7d9e0e4d43b0d6757cf514af797cf1715ebd0dedebf1b94d542
-SIZE (apache-tomcat-11.0.0-M19.tar.gz) = 12923761
+TIMESTAMP = 1715173930
+SHA256 (apache-tomcat-11.0.0-M20.tar.gz) = 9e04f5af3e981bca833c06d2fa79ce37168146b81ad90a790c97f45a49807f92
+SIZE (apache-tomcat-11.0.0-M20.tar.gz) = 12994063
diff --git a/www/tomcat-devel/pkg-plist b/www/tomcat-devel/pkg-plist
index 4b828aaba363..142df7a0c801 100644
--- a/www/tomcat-devel/pkg-plist
+++ b/www/tomcat-devel/pkg-plist
@@ -27,7 +27,7 @@
%%T%%/lib/catalina-storeconfig.jar
%%T%%/lib/catalina-tribes.jar
%%T%%/lib/catalina.jar
-%%T%%/lib/ecj-4.30.jar
+%%T%%/lib/ecj-4.31.jar
%%T%%/lib/el-api.jar
%%T%%/lib/jakartaee-migration-1.0.8-shaded.jar
%%T%%/lib/jasper-el.jar
@@ -105,6 +105,12 @@
%%DOCS%%%%T%%/webapps/docs/architecture/requestProcess/authentication-process.png
%%DOCS%%%%T%%/webapps/docs/architecture/requestProcess/request-process.png
%%DOCS%%%%T%%/webapps/docs/architecture/startup.html
+%%DOCS%%%%T%%/webapps/docs/architecture/startup/1_catalina_load.svg
+%%DOCS%%%%T%%/webapps/docs/architecture/startup/2_catalina_initliaze.svg
+%%DOCS%%%%T%%/webapps/docs/architecture/startup/3_catalina_start_1.svg
+%%DOCS%%%%T%%/webapps/docs/architecture/startup/4_catalina_start_2.svg
+%%DOCS%%%%T%%/webapps/docs/architecture/startup/5_catalina_start_3.svg
+%%DOCS%%%%T%%/webapps/docs/architecture/startup/6_catalina_start_4.svg
%%DOCS%%%%T%%/webapps/docs/architecture/startup/serverStartup.pdf
%%DOCS%%%%T%%/webapps/docs/architecture/startup/serverStartup.txt
%%DOCS%%%%T%%/webapps/docs/balancer-howto.html
diff --git a/www/tomcat-native2/Makefile b/www/tomcat-native2/Makefile
new file mode 100644
index 000000000000..4cb291adc34c
--- /dev/null
+++ b/www/tomcat-native2/Makefile
@@ -0,0 +1,37 @@
+PORTNAME= tomcat-native
+DISTVERSION= 2.0.7
+CATEGORIES= www java
+MASTER_SITES= https://archive.apache.org/dist/tomcat/tomcat-connectors/native/${PORTVERSION}/source/
+PKGNAMESUFFIX= 2
+DISTNAME= ${PORTNAME}-${PORTVERSION}-src
+
+MAINTAINER= michaelo@apache.org
+COMMENT= Tomcat native library
+WWW= https://tomcat.apache.org/native-doc/
+
+LICENSE= APACHE20
+
+LIB_DEPENDS= libapr-1.so:devel/apr1
+
+USES= libtool ssl
+USE_JAVA= yes
+USE_LDCONFIG= yes
+GNU_CONFIGURE= yes
+CONFIGURE_ARGS= --with-apr=${LOCALBASE} \
+ --with-java-home=${JAVA_HOME} \
+ --with-ssl=${OPENSSLBASE} \
+ --disable-openssl-version-check
+
+WRKSRC= ${WRKDIR}/${DISTNAME}/native
+
+SOVERSION= ${PORTVERSION:E}
+MAJORVERSION= ${PORTVERSION:R:R}
+PLIST_FILES= lib/libtcnative-${MAJORVERSION}.so \
+ lib/libtcnative-${MAJORVERSION}.so.0 \
+ lib/libtcnative-${MAJORVERSION}.so.0.0.${SOVERSION}
+
+post-install:
+ ${RM} ${STAGEDIR}${PREFIX}/lib/libtcnative-${MAJORVERSION}.a
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libtcnative-${MAJORVERSION}.so.0.0.${SOVERSION}
+
+.include <bsd.port.mk>
diff --git a/www/tomcat-native2/distinfo b/www/tomcat-native2/distinfo
new file mode 100644
index 000000000000..6c7db5104702
--- /dev/null
+++ b/www/tomcat-native2/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1713346420
+SHA256 (tomcat-native-2.0.7-src.tar.gz) = 2c5afc7edc383e47660647e9a7071ad81f58e51c7f765c12f7e7afc9203b2d4d
+SIZE (tomcat-native-2.0.7-src.tar.gz) = 538131
diff --git a/www/tomcat-native2/files/patch-include_ssl__private.h b/www/tomcat-native2/files/patch-include_ssl__private.h
new file mode 100644
index 000000000000..80ff3e5c8cd9
--- /dev/null
+++ b/www/tomcat-native2/files/patch-include_ssl__private.h
@@ -0,0 +1,12 @@
+--- include/ssl_private.h.orig 2024-02-04 19:32:52 UTC
++++ include/ssl_private.h
+@@ -46,9 +46,6 @@
+ #include <openssl/x509v3.h>
+ #include <openssl/dh.h>
+ #include <openssl/bn.h>
+-#ifndef LIBRESSL_VERSION_NUMBER
+-#include <openssl/provider.h>
+-#endif
+ /* Avoid tripping over an engine build installed globally and detected
+ * when the user points at an explicit non-engine flavor of OpenSSL
+ */
diff --git a/www/tomcat-native2/files/patch-src_ssl.c b/www/tomcat-native2/files/patch-src_ssl.c
new file mode 100644
index 000000000000..b3b37819b955
--- /dev/null
+++ b/www/tomcat-native2/files/patch-src_ssl.c
@@ -0,0 +1,63 @@
+--- src/ssl.c.orig 2024-02-04 19:32:52 UTC
++++ src/ssl.c
+@@ -395,30 +395,14 @@ TCN_IMPLEMENT_CALL(void, SSL, randSet)(TCN_STDARGS, js
+
+ TCN_IMPLEMENT_CALL(jint, SSL, fipsModeGet)(TCN_STDARGS)
+ {
+-#if defined(LIBRESSL_VERSION_NUMBER)
+ UNREFERENCED(o);
+- /* LibreSSL doesn't support FIPS */
+- return 0;
++#ifdef OPENSSL_FIPS
++ return FIPS_mode();
+ #else
+- EVP_MD *md;
+- const OSSL_PROVIDER *provider;
+- const char *name;
+- UNREFERENCED(o);
++ /* FIPS is unavailable */
++ tcn_ThrowException(e, "FIPS was not available to tcnative at build time. You will need to re-build tcnative against an OpenSSL with FIPS.");
+
+- // Maps the OpenSSL 3. x onwards behaviour to theOpenSSL 1.x API
+-
+- // Checks that FIPS is the default provider
+- md = EVP_MD_fetch(NULL, "SHA-512", NULL);
+- provider = EVP_MD_get0_provider(md);
+- name = OSSL_PROVIDER_get0_name(provider);
+- // Clean up
+- EVP_MD_free(md);
+-
+- if (strcmp("fips", name)) {
+- return 0;
+- } else {
+- return 1;
+- }
++ return 0;
+ #endif
+ }
+
+@@ -427,8 +411,22 @@ TCN_IMPLEMENT_CALL(jint, SSL, fipsModeSet)(TCN_STDARGS
+ int r = 0;
+ UNREFERENCED(o);
+
+- /* This method should never be called when using Tomcat Native 2.x onwards */
+- tcn_ThrowException(e, "fipsModeSet is not supported in Tomcat Native 2.x onwards.");
++#ifdef OPENSSL_FIPS
++ if(1 != (r = (jint)FIPS_mode_set((int)mode))) {
++ /* arrange to get a human-readable error message */
++ unsigned long err = SSL_ERR_get();
++ char msg[256];
++
++ /* ERR_load_crypto_strings() already called in initialize() */
++
++ ERR_error_string_n(err, msg, 256);
++
++ tcn_ThrowException(e, msg);
++ }
++#else
++ /* FIPS is unavailable */
++ tcn_ThrowException(e, "FIPS was not available to tcnative at build time. You will need to re-build tcnative against an OpenSSL with FIPS.");
++#endif
+
+ return r;
+ }
diff --git a/www/tomcat-native2/files/patch-src_sslutils.c b/www/tomcat-native2/files/patch-src_sslutils.c
new file mode 100644
index 000000000000..39d22ddc7850
--- /dev/null
+++ b/www/tomcat-native2/files/patch-src_sslutils.c
@@ -0,0 +1,14 @@
+--- src/sslutils.c.orig 2024-02-04 19:32:52 UTC
++++ src/sslutils.c
+@@ -946,11 +946,7 @@ static OCSP_RESPONSE *get_ocsp_response(apr_pool_t *p,
+ int ok = 0;
+ apr_socket_t *apr_sock = NULL;
+ apr_pool_t *mp;
+-#ifdef LIBRESSL_VERSION_NUMBER
+ if (OCSP_parse_url(url, &hostname, &c_port, &path, &use_ssl) == 0)
+-#else
+- if (OSSL_HTTP_parse_url(url, &use_ssl, NULL, &hostname, &c_port, NULL, &path, NULL, NULL) == 0)
+-#endif
+ goto end;
+
+ if (sscanf(c_port, "%d", &port) != 1)
diff --git a/www/tomcat-native2/pkg-descr b/www/tomcat-native2/pkg-descr
new file mode 100644
index 000000000000..35d1f60cfb90
--- /dev/null
+++ b/www/tomcat-native2/pkg-descr
@@ -0,0 +1,3 @@
+The Apache Tomcat Native Library is an optional component for use with Apache
+Tomcat that allows Tomcat to use OpenSSL as a replacement for JSSE to support
+TLS connections.
diff --git a/www/tomcat101/Makefile b/www/tomcat101/Makefile
index 535dafafc16c..940279fe26a8 100644
--- a/www/tomcat101/Makefile
+++ b/www/tomcat101/Makefile
@@ -1,5 +1,5 @@
PORTNAME= tomcat
-DISTVERSION= 10.1.23
+DISTVERSION= 10.1.24
CATEGORIES= www java
MASTER_SITES= APACHE/${PORTNAME}/${PORTNAME}-${DISTVERSION:C/([0-9]+)(.*)/\1/}/v${DISTVERSION}/bin
PKGNAMESUFFIX= 101
diff --git a/www/tomcat101/distinfo b/www/tomcat101/distinfo
index e0c1d5708410..bc814ced1083 100644
--- a/www/tomcat101/distinfo
+++ b/www/tomcat101/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1713910216
-SHA256 (apache-tomcat-10.1.23.tar.gz) = a5572c9e90ff81ea16681df97176bb6a9f537b1c3fbe0ffba5297fee59c398aa
-SIZE (apache-tomcat-10.1.23.tar.gz) = 12992318
+TIMESTAMP = 1715628653
+SHA256 (apache-tomcat-10.1.24.tar.gz) = 216db5c726a6857e2a698ba5f9406fa862d037733f98ab2338feb3fc511c3068
+SIZE (apache-tomcat-10.1.24.tar.gz) = 13008703
diff --git a/www/tomcat9/Makefile b/www/tomcat9/Makefile
index 712f36a7e002..cc675c19add7 100644
--- a/www/tomcat9/Makefile
+++ b/www/tomcat9/Makefile
@@ -1,5 +1,5 @@
PORTNAME= tomcat
-PORTVERSION= 9.0.88
+PORTVERSION= 9.0.89
CATEGORIES= www java
MASTER_SITES= APACHE/${PORTNAME}/${PORTNAME}-${PORTVERSION:C/([0-9])(.*)/\1/}/v${PORTVERSION}/bin
PKGNAMESUFFIX= 9
diff --git a/www/tomcat9/distinfo b/www/tomcat9/distinfo
index c6e2c88b915b..71bd3b622520 100644
--- a/www/tomcat9/distinfo
+++ b/www/tomcat9/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1713281043
-SHA256 (apache-tomcat-9.0.88.tar.gz) = bef81ccaa4f7d7c89ea86eb56f6343c51cd793374c8ecc2038b7a7f5e27d6628
-SIZE (apache-tomcat-9.0.88.tar.gz) = 11744294
+TIMESTAMP = 1715146423
+SHA256 (apache-tomcat-9.0.89.tar.gz) = cb8aed230aa2f15cc5c2439b044dd88d6ec8900e46d81ee63c4d1090c0937e32
+SIZE (apache-tomcat-9.0.89.tar.gz) = 11756919
diff --git a/www/tor-browser/Makefile b/www/tor-browser/Makefile
index a8c42904445f..2f4838c6fc0d 100644
--- a/www/tor-browser/Makefile
+++ b/www/tor-browser/Makefile
@@ -1,11 +1,12 @@
PORTNAME= tor-browser
-DISTVERSION= 13.0.14
+DISTVERSION= 13.5a7
+PORTREVISION= 1
CATEGORIES= www net security wayland
MASTER_SITES= TOR \
https://build-sources.tbb.torproject.org/:source1 \
LOCAL/jsm:source2
MASTER_SITE_SUBDIR= torbrowser/${DISTVERSION}
-DISTNAME= src-firefox-tor-browser-115.10.0esr-13.0-1-build1
+DISTNAME= src-firefox-tor-browser-115.10.0esr-13.5-1-build2
DISTFILES= ${DISTNAME}.tar.xz \
manual_112141.zip:source1 \
firefox-tor-browser-13.0.1-build2-firefox-1l0n-out.tar:source2
diff --git a/www/tor-browser/distinfo b/www/tor-browser/distinfo
index a0e748a76e5b..ea4c726915ec 100644
--- a/www/tor-browser/distinfo
+++ b/www/tor-browser/distinfo
@@ -1,6 +1,6 @@
-TIMESTAMP = 1713253525
-SHA256 (src-firefox-tor-browser-115.10.0esr-13.0-1-build1.tar.xz) = 5ce221443bd9dfbec37e92c263f0098572fb7c44a0236fbba98b02370eda11bf
-SIZE (src-firefox-tor-browser-115.10.0esr-13.0-1-build1.tar.xz) = 551419804
+TIMESTAMP = 1715113596
+SHA256 (src-firefox-tor-browser-115.10.0esr-13.5-1-build2.tar.xz) = 4d6359dfd62d834eccef626dab721092924903cc9418049b0f07de3306575384
+SIZE (src-firefox-tor-browser-115.10.0esr-13.5-1-build2.tar.xz) = 552033160
SHA256 (manual_112141.zip) = f767bc5f655f1263623b7af588cfb045d3e41ee019dc7ecd713decc5c1a0ea9b
SIZE (manual_112141.zip) = 26293073
SHA256 (firefox-tor-browser-13.0.1-build2-firefox-1l0n-out.tar) = bbd290cd134e3a114241077ba82582617ab6c5117ff2226381943c504bd09775
diff --git a/www/tor-browser/files/patch-dom_media_flac_FlacDecoder.cpp b/www/tor-browser/files/patch-dom_media_flac_FlacDecoder.cpp
index 954b78f5bf37..6dc197d9455e 100644
--- a/www/tor-browser/files/patch-dom_media_flac_FlacDecoder.cpp
+++ b/www/tor-browser/files/patch-dom_media_flac_FlacDecoder.cpp
@@ -17,7 +17,7 @@ Enable FLAC on platforms without ffvpx like powerpc*
+#elif defined(MOZ_FFMPEG)
+ RefPtr<PDMFactory> platform = new PDMFactory();
+ return StaticPrefs::media_flac_enabled() &&
-+ platform->SupportsMimeType("audio/flac"_ns);
++ !platform->SupportsMimeType("audio/flac"_ns).isEmpty();
#else
return false;
#endif
diff --git a/www/tor-browser/files/patch-rust-1.78.0 b/www/tor-browser/files/patch-rust-1.78.0
new file mode 100644
index 000000000000..7e6685d5e8e7
--- /dev/null
+++ b/www/tor-browser/files/patch-rust-1.78.0
@@ -0,0 +1,3582 @@
+Adapted from https://hg.mozilla.org/mozilla-central/rev/1db2ef126a6a
+--
+
+# HG changeset patch
+# User Henri Sivonen <hsivonen@hsivonen.fi>
+# Date 1714462184 0
+# Node ID 1db2ef126a6a8555dbf50345e16492c977b42e92
+# Parent a545e84b3674c4878f2e618b7bce23058f2ac690
+Bug 1882209 - Update encoding_rs to 0.8.34 to deal with rustc changes. r=glandium,supply-chain-reviewers
+
+Differential Revision: https://phabricator.services.mozilla.com/D207167
+
+diff --git a/.cargo/config.in b/.cargo/config.in
+--- .cargo/config.in
++++ .cargo/config.in
+@@ -35,31 +35,31 @@ git = "https://github.com/gfx-rs/wgpu"
+ rev = "f71a1bc736fde37509262ca03e91d8f56a13aeb5"
+ replace-with = "vendored-sources"
+
+ [source."git+https://github.com/glandium/warp?rev=4af45fae95bc98b0eba1ef0db17e1dac471bb23d"]
+ git = "https://github.com/glandium/warp"
+ rev = "4af45fae95bc98b0eba1ef0db17e1dac471bb23d"
+ replace-with = "vendored-sources"
+
++[source."git+https://github.com/hsivonen/any_all_workaround?rev=7fb1b7034c9f172aade21ee1c8554e8d8a48af80"]
++git = "https://github.com/hsivonen/any_all_workaround"
++rev = "7fb1b7034c9f172aade21ee1c8554e8d8a48af80"
++replace-with = "vendored-sources"
++
+ [source."git+https://github.com/hsivonen/chardetng?rev=3484d3e3ebdc8931493aa5df4d7ee9360a90e76b"]
+ git = "https://github.com/hsivonen/chardetng"
+ rev = "3484d3e3ebdc8931493aa5df4d7ee9360a90e76b"
+ replace-with = "vendored-sources"
+
+ [source."git+https://github.com/hsivonen/chardetng_c?rev=ed8a4c6f900a90d4dbc1d64b856e61490a1c3570"]
+ git = "https://github.com/hsivonen/chardetng_c"
+ rev = "ed8a4c6f900a90d4dbc1d64b856e61490a1c3570"
+ replace-with = "vendored-sources"
+
+-[source."git+https://github.com/hsivonen/packed_simd?rev=e588ceb568878e1a3156ea9ce551d5b63ef0cdc4"]
+-git = "https://github.com/hsivonen/packed_simd"
+-rev = "e588ceb568878e1a3156ea9ce551d5b63ef0cdc4"
+-replace-with = "vendored-sources"
+-
+ [source."git+https://github.com/jfkthame/mapped_hyph.git?rev=c7651a0cffff41996ad13c44f689bd9cd2192c01"]
+ git = "https://github.com/jfkthame/mapped_hyph.git"
+ rev = "c7651a0cffff41996ad13c44f689bd9cd2192c01"
+ replace-with = "vendored-sources"
+
+ [source."git+https://github.com/mozilla-spidermonkey/jsparagus?rev=64ba08e24749616de2344112f226d1ef4ba893ae"]
+ git = "https://github.com/mozilla-spidermonkey/jsparagus"
+ rev = "64ba08e24749616de2344112f226d1ef4ba893ae"
+diff --git a/Cargo.lock b/Cargo.lock
+--- Cargo.lock
++++ Cargo.lock
+@@ -80,16 +80,25 @@ dependencies = [
+ name = "android_system_properties"
+ version = "0.1.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+ dependencies = [
+ "libc",
+ ]
+
++[[package]]
++name = "any_all_workaround"
++version = "0.1.0"
++source = "git+https://github.com/hsivonen/any_all_workaround?rev=7fb1b7034c9f172aade21ee1c8554e8d8a48af80#7fb1b7034c9f172aade21ee1c8554e8d8a48af80"
++dependencies = [
++ "cfg-if 1.0.0",
++ "version_check",
++]
++
+ [[package]]
+ name = "anyhow"
+ version = "1.0.69"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800"
+
+ [[package]]
+ name = "app_services_logger"
+@@ -1431,22 +1440,22 @@ dependencies = [
+ "encoding_rs",
+ "nserror",
+ "nsstring",
+ "xmldecl",
+ ]
+
+ [[package]]
+ name = "encoding_rs"
+-version = "0.8.33"
++version = "0.8.34"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
++checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"
+ dependencies = [
++ "any_all_workaround",
+ "cfg-if 1.0.0",
+- "packed_simd",
+ ]
+
+ [[package]]
+ name = "enum-primitive-derive"
+ version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "c375b9c5eadb68d0a6efee2999fef292f45854c3444c86f09d8ab086ba942b0e"
+ dependencies = [
+@@ -3901,25 +3910,16 @@ checksum = "8d91edf4fbb970279443471345a4e8c491bf05bb283b3e6c88e4e606fd8c181b"
+ [[package]]
+ name = "oxilangtag-ffi"
+ version = "0.1.0"
+ dependencies = [
+ "nsstring",
+ "oxilangtag",
+ ]
+
+-[[package]]
+-name = "packed_simd"
+-version = "0.3.9"
+-source = "git+https://github.com/hsivonen/packed_simd?rev=e588ceb568878e1a3156ea9ce551d5b63ef0cdc4#e588ceb568878e1a3156ea9ce551d5b63ef0cdc4"
+-dependencies = [
+- "cfg-if 1.0.0",
+- "num-traits",
+-]
+-
+ [[package]]
+ name = "parking_lot"
+ version = "0.11.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
+ dependencies = [
+ "instant",
+ "lock_api",
+diff --git a/Cargo.toml b/Cargo.toml
+--- Cargo.toml
++++ Cargo.toml
+@@ -154,22 +154,22 @@ rure = { path = "third_party/rust/rure" }
+
+ # 0.31.1 but without rust-cssparser#342.
+ # TODO: Remove these, and just use v0.31.1 once bug 1836219 lands
+ # (which will get syn 2 into the tree).
+ cssparser = { path = "third_party/rust/cssparser" }
+ cssparser-macros = { path = "third_party/rust/cssparser-macros" }
+
+ # Other overrides
++any_all_workaround = { git = "https://github.com/hsivonen/any_all_workaround", rev = "7fb1b7034c9f172aade21ee1c8554e8d8a48af80" }
+ chardetng = { git = "https://github.com/hsivonen/chardetng", rev="3484d3e3ebdc8931493aa5df4d7ee9360a90e76b" }
+ chardetng_c = { git = "https://github.com/hsivonen/chardetng_c", rev="ed8a4c6f900a90d4dbc1d64b856e61490a1c3570" }
+ coremidi = { git = "https://github.com/chris-zen/coremidi.git", rev="fc68464b5445caf111e41f643a2e69ccce0b4f83" }
+ firefox-on-glean = { path = "toolkit/components/glean/api" }
+ libudev-sys = { path = "dom/webauthn/libudev-sys" }
+-packed_simd = { git = "https://github.com/hsivonen/packed_simd", rev = "e588ceb568878e1a3156ea9ce551d5b63ef0cdc4" }
+ midir = { git = "https://github.com/mozilla/midir.git", rev = "519e651241e867af3391db08f9ae6400bc023e18" }
+ # warp 0.3.3 + https://github.com/seanmonstar/warp/pull/1007
+ warp = { git = "https://github.com/glandium/warp", rev = "4af45fae95bc98b0eba1ef0db17e1dac471bb23d" }
+
+ # application-services overrides to make updating them all simpler.
+ interrupt-support = { git = "https://github.com/mozilla/application-services", rev = "86c84c217036c12283d19368867323a66bf35883" }
+ sql-support = { git = "https://github.com/mozilla/application-services", rev = "86c84c217036c12283d19368867323a66bf35883" }
+ sync15 = { git = "https://github.com/mozilla/application-services", rev = "86c84c217036c12283d19368867323a66bf35883" }
+diff --git a/config/makefiles/rust.mk b/config/makefiles/rust.mk
+--- config/makefiles/rust.mk
++++ config/makefiles/rust.mk
+@@ -260,17 +260,17 @@ export COREAUDIO_SDK_PATH=$(IPHONEOS_SDK
+ export IPHONEOS_SDK_DIR
+ PATH := $(topsrcdir)/build/macosx:$(PATH)
+ endif
+ endif
+
+ ifndef RUSTC_BOOTSTRAP
+ RUSTC_BOOTSTRAP := mozglue_static,qcms
+ ifdef MOZ_RUST_SIMD
+-RUSTC_BOOTSTRAP := $(RUSTC_BOOTSTRAP),encoding_rs,packed_simd
++RUSTC_BOOTSTRAP := $(RUSTC_BOOTSTRAP),encoding_rs,any_all_workaround
+ endif
+ export RUSTC_BOOTSTRAP
+ endif
+
+ target_rust_ltoable := force-cargo-library-build $(ADD_RUST_LTOABLE)
+ target_rust_nonltoable := force-cargo-test-run force-cargo-program-build
+
+ ifdef MOZ_PGO_RUST
+diff --git a/supply-chain/audits.toml b/supply-chain/audits.toml
+--- supply-chain/audits.toml
++++ supply-chain/audits.toml
+@@ -596,16 +596,29 @@ who = "Mike Hommey <mh+mozilla@glandium.
+ criteria = "safe-to-deploy"
+ delta = "0.1.2 -> 0.1.4"
+
+ [[audits.android_system_properties]]
+ who = "Mike Hommey <mh+mozilla@glandium.org>"
+ criteria = "safe-to-deploy"
+ delta = "0.1.4 -> 0.1.5"
+
++[[audits.any_all_workaround]]
++who = "Henri Sivonen <hsivonen@hsivonen.fi>"
++criteria = "safe-to-deploy"
++version = "0.1.0"
++notes = "The little code that is in this crate I reviewed and modified from packed_simd (which has previously been vendored in full instead of just this small part)."
++
++[[audits.any_all_workaround]]
++who = "Henri Sivonen <hsivonen@hsivonen.fi>"
++criteria = "safe-to-deploy"
++delta = "0.1.0 -> 0.1.0@git:7fb1b7034c9f172aade21ee1c8554e8d8a48af80"
++importable = false
++notes = "This is a trivial workaround copied from elsewhere in m-c, specifically qcms."
++
+ [[audits.anyhow]]
+ who = "Mike Hommey <mh+mozilla@glandium.org>"
+ criteria = "safe-to-deploy"
+ delta = "1.0.57 -> 1.0.61"
+
+ [[audits.anyhow]]
+ who = "Bobby Holley <bobbyholley@gmail.com>"
+ criteria = "safe-to-deploy"
+diff --git a/supply-chain/config.toml b/supply-chain/config.toml
+--- supply-chain/config.toml
++++ supply-chain/config.toml
+@@ -14,16 +14,20 @@ url = "https://raw.githubusercontent.com
+ url = "https://raw.githubusercontent.com/google/supply-chain/main/audits.toml"
+
+ [imports.isrg]
+ url = "https://raw.githubusercontent.com/divviup/libprio-rs/main/supply-chain/audits.toml"
+
+ [imports.mozilla]
+ url = "https://raw.githubusercontent.com/mozilla/supply-chain/main/audits.toml"
+
++[policy.any_all_workaround]
++audit-as-crates-io = true
++notes = "This is the upstream code plus the ARM intrinsics workaround from qcms, see bug 1882209."
++
+ [policy.autocfg]
+ audit-as-crates-io = true
+ notes = "This is the upstream code plus a few local fixes, see bug 1685697."
+
+ [policy.chardetng]
+ audit-as-crates-io = true
+ notes = "This is a crate Henri wrote which is also published. We should probably update Firefox to tip and certify that."
+
+diff --git a/supply-chain/imports.lock b/supply-chain/imports.lock
+--- supply-chain/imports.lock
++++ supply-chain/imports.lock
+@@ -115,16 +115,23 @@ user-name = "David Tolnay"
+
+ [[publisher.encoding_rs]]
+ version = "0.8.33"
+ when = "2023-08-23"
+ user-id = 4484
+ user-login = "hsivonen"
+ user-name = "Henri Sivonen"
+
++[[publisher.encoding_rs]]
++version = "0.8.34"
++when = "2024-04-10"
++user-id = 4484
++user-login = "hsivonen"
++user-name = "Henri Sivonen"
++
+ [[publisher.etagere]]
+ version = "0.2.7"
+ when = "2022-05-04"
+ user-id = 1281
+ user-login = "nical"
+ user-name = "Nicolas Silva"
+
+ [[publisher.euclid]]
+diff --git a/third_party/rust/any_all_workaround/.cargo-checksum.json b/third_party/rust/any_all_workaround/.cargo-checksum.json
+new file mode 100644
+--- /dev/null
++++ third_party/rust/any_all_workaround/.cargo-checksum.json
+@@ -0,0 +1,1 @@
++{"files":{"Cargo.toml":"f8c127449dc9432d404c21c99833e4617ab88a797445af249a7fe3c989985d6d","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb","LICENSE-MIT-QCMS":"36d847ae882f6574ebc72f56a4f354e4f104fde4a584373496482e97d52d31bc","README.md":"4c617b8ced3a27b7edecf0e5e41ed451c04e88dab529e7a35fccc4e1551efbd7","build.rs":"56b29ab6da3e49075bfd0a7b690267c8016298bf0d332e2e68bbaf19decbbf71","src/lib.rs":"7118106690b9d25c5d0a3e2079feb83d76f1d434d0da36b9d0351806d27c850d"},"package":null}
+\ No newline at end of file
+diff --git a/third_party/rust/any_all_workaround/Cargo.toml b/third_party/rust/any_all_workaround/Cargo.toml
+new file mode 100644
+--- /dev/null
++++ third_party/rust/any_all_workaround/Cargo.toml
+@@ -0,0 +1,28 @@
++# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
++#
++# When uploading crates to the registry Cargo will automatically
++# "normalize" Cargo.toml files for maximal compatibility
++# with all versions of Cargo and also rewrite `path` dependencies
++# to registry (e.g., crates.io) dependencies.
++#
++# If you are reading this file be aware that the original Cargo.toml
++# will likely look very different (and much more reasonable).
++# See Cargo.toml.orig for the original contents.
++
++[package]
++edition = "2021"
++name = "any_all_workaround"
++version = "0.1.0"
++authors = ["Henri Sivonen <hsivonen@hsivonen.fi>"]
++description = "Workaround for bad LLVM codegen for boolean reductions on 32-bit ARM"
++homepage = "https://docs.rs/any_all_workaround/"
++documentation = "https://docs.rs/any_all_workaround/"
++readme = "README.md"
++license = "MIT OR Apache-2.0"
++repository = "https://github.com/hsivonen/any_all_workaround"
++
++[dependencies]
++cfg-if = "1.0"
++
++[build-dependencies]
++version_check = "0.9"
+diff --git a/third_party/rust/packed_simd/LICENSE-APACHE b/third_party/rust/any_all_workaround/LICENSE-APACHE
+rename from third_party/rust/packed_simd/LICENSE-APACHE
+rename to third_party/rust/any_all_workaround/LICENSE-APACHE
+diff --git a/third_party/rust/packed_simd/LICENSE-MIT b/third_party/rust/any_all_workaround/LICENSE-MIT
+rename from third_party/rust/packed_simd/LICENSE-MIT
+rename to third_party/rust/any_all_workaround/LICENSE-MIT
+diff --git a/third_party/rust/any_all_workaround/LICENSE-MIT-QCMS b/third_party/rust/any_all_workaround/LICENSE-MIT-QCMS
+new file mode 100644
+--- /dev/null
++++ third_party/rust/any_all_workaround/LICENSE-MIT-QCMS
+@@ -0,0 +1,21 @@
++qcms
++Copyright (C) 2009-2024 Mozilla Corporation
++Copyright (C) 1998-2007 Marti Maria
++
++Permission is hereby granted, free of charge, to any person obtaining
++a copy of this software and associated documentation files (the "Software"),
++to deal in the Software without restriction, including without limitation
++the rights to use, copy, modify, merge, publish, distribute, sublicense,
++and/or sell copies of the Software, and to permit persons to whom the Software
++is furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included in
++all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
++THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+diff --git a/third_party/rust/any_all_workaround/README.md b/third_party/rust/any_all_workaround/README.md
+new file mode 100644
+--- /dev/null
++++ third_party/rust/any_all_workaround/README.md
+@@ -0,0 +1,13 @@
++# any_all_workaround
++
++This is a workaround for bad codegen ([Rust bug](https://github.com/rust-lang/portable-simd/issues/146), [LLVM bug](https://github.com/llvm/llvm-project/issues/50466)) for the `any()` and `all()` reductions for NEON-backed SIMD vectors on 32-bit ARM. On other platforms these delegate to `any()` and `all()` in `core::simd`.
++
++The plan is to abandon this crate once the LLVM bug is fixed or `core::simd` works around the LLVM bug.
++
++The code is forked from the [`packed_simd` crate](https://raw.githubusercontent.com/hsivonen/packed_simd/d938e39bee9bc5c222f5f2f2a0df9e53b5ce36ae/src/codegen/reductions/mask/arm.rs).
++
++This crate requires Nightly Rust as it depends on the `portable_simd` feature.
++
++# License
++
++`MIT OR Apache-2.0`, since that's how `packed_simd` is licensed. (The ARM intrinsics Rust version workaround is from qcms, see LICENSE-MIT-QCMS.)
+diff --git a/third_party/rust/any_all_workaround/build.rs b/third_party/rust/any_all_workaround/build.rs
+new file mode 100644
+--- /dev/null
++++ third_party/rust/any_all_workaround/build.rs
+@@ -0,0 +1,7 @@
++extern crate version_check as rustc;
++
++fn main() {
++ if rustc::is_min_version("1.78.0").unwrap_or(false) {
++ println!("cargo:rustc-cfg=stdsimd_split");
++ }
++}
+diff --git a/third_party/rust/any_all_workaround/src/lib.rs b/third_party/rust/any_all_workaround/src/lib.rs
+new file mode 100644
+--- /dev/null
++++ third_party/rust/any_all_workaround/src/lib.rs
+@@ -0,0 +1,110 @@
++// This code began as a fork of
++// https://raw.githubusercontent.com/rust-lang/packed_simd/d938e39bee9bc5c222f5f2f2a0df9e53b5ce36ae/src/codegen/reductions/mask/arm.rs
++// which didn't have a license header on the file, but Cargo.toml said "MIT OR Apache-2.0".
++// See LICENSE-MIT and LICENSE-APACHE.
++
++#![no_std]
++#![feature(portable_simd)]
++#![cfg_attr(
++ all(
++ stdsimd_split,
++ target_arch = "arm",
++ target_endian = "little",
++ target_feature = "neon",
++ target_feature = "v7"
++ ),
++ feature(stdarch_arm_neon_intrinsics)
++)]
++#![cfg_attr(
++ all(
++ not(stdsimd_split),
++ target_arch = "arm",
++ target_endian = "little",
++ target_feature = "neon",
++ target_feature = "v7"
++ ),
++ feature(stdsimd)
++)]
++
++use cfg_if::cfg_if;
++use core::simd::mask16x8;
++use core::simd::mask32x4;
++use core::simd::mask8x16;
++
++cfg_if! {
++ if #[cfg(all(target_arch = "arm", target_endian = "little", target_feature = "neon", target_feature = "v7"))] {
++ use core::simd::mask8x8;
++ use core::simd::mask16x4;
++ use core::simd::mask32x2;
++ macro_rules! arm_128_v7_neon_impl {
++ ($all:ident, $any:ident, $id:ident, $half:ident, $vpmin:ident, $vpmax:ident) => {
++ #[inline]
++ pub fn $all(s: $id) -> bool {
++ use core::arch::arm::$vpmin;
++ use core::mem::transmute;
++ unsafe {
++ union U {
++ halves: ($half, $half),
++ vec: $id,
++ }
++ let halves = U { vec: s }.halves;
++ let h: $half = transmute($vpmin(transmute(halves.0), transmute(halves.1)));
++ h.all()
++ }
++ }
++ #[inline]
++ pub fn $any(s: $id) -> bool {
++ use core::arch::arm::$vpmax;
++ use core::mem::transmute;
++ unsafe {
++ union U {
++ halves: ($half, $half),
++ vec: $id,
++ }
++ let halves = U { vec: s }.halves;
++ let h: $half = transmute($vpmax(transmute(halves.0), transmute(halves.1)));
++ h.any()
++ }
++ }
++ }
++ }
++ } else {
++ macro_rules! arm_128_v7_neon_impl {
++ ($all:ident, $any:ident, $id:ident, $half:ident, $vpmin:ident, $vpmax:ident) => {
++ #[inline(always)]
++ pub fn $all(s: $id) -> bool {
++ s.all()
++ }
++ #[inline(always)]
++ pub fn $any(s: $id) -> bool {
++ s.any()
++ }
++ }
++ }
++ }
++}
++
++arm_128_v7_neon_impl!(
++ all_mask8x16,
++ any_mask8x16,
++ mask8x16,
++ mask8x8,
++ vpmin_u8,
++ vpmax_u8
++);
++arm_128_v7_neon_impl!(
++ all_mask16x8,
++ any_mask16x8,
++ mask16x8,
++ mask16x4,
++ vpmin_u16,
++ vpmax_u16
++);
++arm_128_v7_neon_impl!(
++ all_mask32x4,
++ any_mask32x4,
++ mask32x4,
++ mask32x2,
++ vpmin_u32,
++ vpmax_u32
++);
+diff --git a/third_party/rust/encoding_rs/Cargo.toml b/third_party/rust/encoding_rs/Cargo.toml
+--- third_party/rust/encoding_rs/Cargo.toml
++++ third_party/rust/encoding_rs/Cargo.toml
+@@ -6,18 +6,19 @@
+ # to registry (e.g., crates.io) dependencies.
+ #
+ # If you are reading this file be aware that the original Cargo.toml
+ # will likely look very different (and much more reasonable).
+ # See Cargo.toml.orig for the original contents.
+
+ [package]
+ edition = "2018"
++rust-version = "1.36"
+ name = "encoding_rs"
+-version = "0.8.33"
++version = "0.8.34"
+ authors = ["Henri Sivonen <hsivonen@hsivonen.fi>"]
+ description = "A Gecko-oriented implementation of the Encoding Standard"
+ homepage = "https://docs.rs/encoding_rs/"
+ documentation = "https://docs.rs/encoding_rs/"
+ readme = "README.md"
+ keywords = [
+ "encoding",
+ "web",
+@@ -31,23 +32,23 @@ categories = [
+ "internationalization",
+ ]
+ license = "(Apache-2.0 OR MIT) AND BSD-3-Clause"
+ repository = "https://github.com/hsivonen/encoding_rs"
+
+ [profile.release]
+ lto = true
+
++[dependencies.any_all_workaround]
++version = "0.1.0"
++optional = true
++
+ [dependencies.cfg-if]
+ version = "1.0"
+
+-[dependencies.packed_simd]
+-version = "0.3.9"
+-optional = true
+-
+ [dependencies.serde]
+ version = "1.0"
+ optional = true
+
+ [dev-dependencies.bincode]
+ version = "1.0"
+
+ [dev-dependencies.serde_derive]
+@@ -69,15 +70,9 @@ fast-legacy-encode = [
+ "fast-hanja-encode",
+ "fast-kanji-encode",
+ "fast-gb-hanzi-encode",
+ "fast-big5-hanzi-encode",
+ ]
+ less-slow-big5-hanzi-encode = []
+ less-slow-gb-hanzi-encode = []
+ less-slow-kanji-encode = []
+-simd-accel = [
+- "packed_simd",
+- "packed_simd/into_bits",
+-]
+-
+-[badges.travis-ci]
+-repository = "hsivonen/encoding_rs"
++simd-accel = ["any_all_workaround"]
+diff --git a/third_party/rust/encoding_rs/README.md b/third_party/rust/encoding_rs/README.md
+--- third_party/rust/encoding_rs/README.md
++++ third_party/rust/encoding_rs/README.md
+@@ -162,50 +162,36 @@ wrappers.
+ * [C++](https://github.com/hsivonen/recode_cpp)
+
+ ## Optional features
+
+ There are currently these optional cargo features:
+
+ ### `simd-accel`
+
+-Enables SIMD acceleration using the nightly-dependent `packed_simd` crate.
++Enables SIMD acceleration using the nightly-dependent `portable_simd` standard
++library feature.
+
+ This is an opt-in feature, because enabling this feature _opts out_ of Rust's
+ guarantees of future compilers compiling old code (aka. "stability story").
+
+ Currently, this has not been tested to be an improvement except for these
+-targets:
++targets and enabling the `simd-accel` feature is expected to break the build
++on other targets:
+
+ * x86_64
+ * i686
+ * aarch64
+ * thumbv7neon
+
+ If you use nightly Rust, you use targets whose first component is one of the
+ above, and you are prepared _to have to revise your configuration when updating
+ Rust_, you should enable this feature. Otherwise, please _do not_ enable this
+ feature.
+
+-_Note!_ If you are compiling for a target that does not have 128-bit SIMD
+-enabled as part of the target definition and you are enabling 128-bit SIMD
+-using `-C target_feature`, you need to enable the `core_arch` Cargo feature
+-for `packed_simd` to compile a crates.io snapshot of `core_arch` instead of
+-using the standard-library copy of `core::arch`, because the `core::arch`
+-module of the pre-compiled standard library has been compiled with the
+-assumption that the CPU doesn't have 128-bit SIMD. At present this applies
+-mainly to 32-bit ARM targets whose first component does not include the
+-substring `neon`.
+-
+-The encoding_rs side of things has not been properly set up for POWER,
+-PowerPC, MIPS, etc., SIMD at this time, so even if you were to follow
+-the advice from the previous paragraph, you probably shouldn't use
+-the `simd-accel` option on the less mainstream architectures at this
+-time.
+-
+ Used by Firefox.
+
+ ### `serde`
+
+ Enables support for serializing and deserializing `&'static Encoding`-typed
+ struct fields using [Serde][1].
+
+ [1]: https://serde.rs/
+@@ -376,18 +362,19 @@ It is a goal to support the latest stabl
+ the version of Rust that's used for Firefox Nightly.
+
+ At this time, there is no firm commitment to support a version older than
+ what's required by Firefox, and there is no commitment to treat MSRV changes
+ as semver-breaking, because this crate depends on `cfg-if`, which doesn't
+ appear to treat MSRV changes as semver-breaking, so it would be useless for
+ this crate to treat MSRV changes as semver-breaking.
+
+-As of 2021-02-04, MSRV appears to be Rust 1.36.0 for using the crate and
++As of 2024-04-04, MSRV appears to be Rust 1.36.0 for using the crate and
+ 1.42.0 for doc tests to pass without errors about the global allocator.
++With the `simd-accel` feature, the MSRV is even higher.
+
+ ## Compatibility with rust-encoding
+
+ A compatibility layer that implements the rust-encoding API on top of
+ encoding_rs is
+ [provided as a separate crate](https://github.com/hsivonen/encoding_rs_compat)
+ (cannot be uploaded to crates.io). The compatibility layer was originally
+ written with the assuption that Firefox would need it, but it is not currently
+@@ -441,20 +428,27 @@ To regenerate the generated code:
+ - [x] Implement the rust-encoding API in terms of encoding_rs.
+ - [x] Add SIMD acceleration for Aarch64.
+ - [x] Investigate the use of NEON on 32-bit ARM.
+ - [ ] ~Investigate Bj旦rn H旦hrmann's lookup table acceleration for UTF-8 as
+ adapted to Rust in rust-encoding.~
+ - [x] Add actually fast CJK encode options.
+ - [ ] ~Investigate [Bob Steagall's lookup table acceleration for UTF-8](https://github.com/BobSteagall/CppNow2018/blob/master/FastConversionFromUTF-8/Fast%20Conversion%20From%20UTF-8%20with%20C%2B%2B%2C%20DFAs%2C%20and%20SSE%20Intrinsics%20-%20Bob%20Steagall%20-%20C%2B%2BNow%202018.pdf).~
+ - [x] Provide a build mode that works without `alloc` (with lesser API surface).
+-- [ ] Migrate to `std::simd` once it is stable and declare 1.0.
++- [x] Migrate to `std::simd` ~once it is stable and declare 1.0.~
++- [ ] Migrate `unsafe` slice access by larger types than `u8`/`u16` to `align_to`.
+
+ ## Release Notes
+
++### 0.8.34
++
++* Use the `portable_simd` nightly feature of the standard library instead of the `packed_simd` crate. Only affects the `simd-accel` optional nightly feature.
++* Internal documentation improvements and minor code improvements around `unsafe`.
++* Added `rust-version` to `Cargo.toml`.
++
+ ### 0.8.33
+
+ * Use `packed_simd` instead of `packed_simd_2` again now that updates are back under the `packed_simd` name. Only affects the `simd-accel` optional nightly feature.
+
+ ### 0.8.32
+
+ * Removed `build.rs`. (This removal should resolve false positives reported by some antivirus products. This may break some build configurations that have opted out of Rust's guarantees against future build breakage.)
+ * Internal change to what API is used for reinterpreting the lane configuration of SIMD vectors.
+diff --git a/third_party/rust/encoding_rs/src/ascii.rs b/third_party/rust/encoding_rs/src/ascii.rs
+--- third_party/rust/encoding_rs/src/ascii.rs
++++ third_party/rust/encoding_rs/src/ascii.rs
+@@ -46,71 +46,87 @@ cfg_if! {
+ #[allow(dead_code)]
+ #[inline(always)]
+ fn likely(b: bool) -> bool {
+ b
+ }
+ }
+ }
+
++// Safety invariants for masks: data & mask = 0 for valid ASCII or basic latin utf-16
++
+ // `as` truncates, so works on 32-bit, too.
+ #[allow(dead_code)]
+ pub const ASCII_MASK: usize = 0x8080_8080_8080_8080u64 as usize;
+
+ // `as` truncates, so works on 32-bit, too.
+ #[allow(dead_code)]
+ pub const BASIC_LATIN_MASK: usize = 0xFF80_FF80_FF80_FF80u64 as usize;
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_naive {
+ ($name:ident, $src_unit:ty, $dst_unit:ty) => {
++ /// Safety: src and dst must have len_unit elements and be aligned
++ /// Safety-usable invariant: will return Some() when it fails
++ /// to convert. The first value will be a u8 that is > 127.
+ #[inline(always)]
+ pub unsafe fn $name(
+ src: *const $src_unit,
+ dst: *mut $dst_unit,
+ len: usize,
+ ) -> Option<($src_unit, usize)> {
+ // Yes, manually omitting the bound check here matters
+ // a lot for perf.
+ for i in 0..len {
++ // Safety: len invariant used here
+ let code_unit = *(src.add(i));
++ // Safety: Upholds safety-usable invariant here
+ if code_unit > 127 {
+ return Some((code_unit, i));
+ }
++ // Safety: len invariant used here
+ *(dst.add(i)) = code_unit as $dst_unit;
+ }
+ return None;
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_alu {
+ ($name:ident,
++ // safety invariant: src/dst MUST be u8
+ $src_unit:ty,
+ $dst_unit:ty,
++ // Safety invariant: stride_fn must consume and produce two usizes, and return the index of the first non-ascii when it fails
+ $stride_fn:ident) => {
++ /// Safety: src and dst must have len elements, src is valid for read, dst is valid for
++ /// write
++ /// Safety-usable invariant: will return Some() when it fails
++ /// to convert. The first value will be a u8 that is > 127.
+ #[cfg_attr(feature = "cargo-clippy", allow(never_loop, cast_ptr_alignment))]
+ #[inline(always)]
+ pub unsafe fn $name(
+ src: *const $src_unit,
+ dst: *mut $dst_unit,
+ len: usize,
+ ) -> Option<($src_unit, usize)> {
+ let mut offset = 0usize;
+ // This loop is only broken out of as a `goto` forward
+ loop {
++ // Safety: until_alignment becomes the number of bytes we need to munch until we are aligned to usize
+ let mut until_alignment = {
+ // Check if the other unit aligns if we move the narrower unit
+ // to alignment.
+ // if ::core::mem::size_of::<$src_unit>() == ::core::mem::size_of::<$dst_unit>() {
+ // ascii_to_ascii
+ let src_alignment = (src as usize) & ALU_ALIGNMENT_MASK;
+ let dst_alignment = (dst as usize) & ALU_ALIGNMENT_MASK;
+ if src_alignment != dst_alignment {
++ // Safety: bails early and ends up in the na誰ve branch where usize-alignment doesn't matter
+ break;
+ }
+ (ALU_ALIGNMENT - src_alignment) & ALU_ALIGNMENT_MASK
+ // } else if ::core::mem::size_of::<$src_unit>() < ::core::mem::size_of::<$dst_unit>() {
+ // ascii_to_basic_latin
+ // let src_until_alignment = (ALIGNMENT - ((src as usize) & ALIGNMENT_MASK)) & ALIGNMENT_MASK;
+ // if (dst.add(src_until_alignment) as usize) & ALIGNMENT_MASK != 0 {
+ // break;
+@@ -129,74 +145,104 @@ macro_rules! ascii_alu {
+ // Moving pointers to alignment seems to be a pessimization on
+ // x86_64 for operations that have UTF-16 as the internal
+ // Unicode representation. However, since it seems to be a win
+ // on ARM (tested ARMv7 code running on ARMv8 [rpi3]), except
+ // mixed results when encoding from UTF-16 and since x86 and
+ // x86_64 should be using SSE2 in due course, keeping the move
+ // to alignment here. It would be good to test on more ARM CPUs
+ // and on real MIPS and POWER hardware.
++ //
++ // Safety: This is the na誰ve code once again, for `until_alignment` bytes
+ while until_alignment != 0 {
+ let code_unit = *(src.add(offset));
+ if code_unit > 127 {
++ // Safety: Upholds safety-usable invariant here
+ return Some((code_unit, offset));
+ }
+ *(dst.add(offset)) = code_unit as $dst_unit;
++ // Safety: offset is the number of bytes copied so far
+ offset += 1;
+ until_alignment -= 1;
+ }
+ let len_minus_stride = len - ALU_STRIDE_SIZE;
+ loop {
++ // Safety: num_ascii is known to be a byte index of a non-ascii byte due to stride_fn's invariant
+ if let Some(num_ascii) = $stride_fn(
++ // Safety: These are known to be valid and aligned since we have at
++ // least ALU_STRIDE_SIZE data in these buffers, and offset is the
++ // number of elements copied so far, which according to the
++ // until_alignment calculation above will cause both src and dst to be
++ // aligned to usize after this add
+ src.add(offset) as *const usize,
+ dst.add(offset) as *mut usize,
+ ) {
+ offset += num_ascii;
++ // Safety: Upholds safety-usable invariant here by indexing into non-ascii byte
+ return Some((*(src.add(offset)), offset));
+ }
++ // Safety: offset continues to be the number of bytes copied so far, and
++ // maintains usize alignment for the next loop iteration
+ offset += ALU_STRIDE_SIZE;
++ // Safety: This is `offset > len - stride. This loop will continue as long as
++ // `offset <= len - stride`, which means there are `stride` bytes to still be read.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ break;
+ }
++
++ // Safety: This is the na誰ve code, same as ascii_naive, and has no requirements
++ // other than src/dst being valid for the the right lens
+ while offset < len {
++ // Safety: len invariant used here
+ let code_unit = *(src.add(offset));
+ if code_unit > 127 {
++ // Safety: Upholds safety-usable invariant here
+ return Some((code_unit, offset));
+ }
++ // Safety: len invariant used here
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ None
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! basic_latin_alu {
+ ($name:ident,
++ // safety invariant: use u8 for src/dest for ascii, and u16 for basic_latin
+ $src_unit:ty,
+ $dst_unit:ty,
++ // safety invariant: stride function must munch ALU_STRIDE_SIZE*size(src_unit) bytes off of src and
++ // write ALU_STRIDE_SIZE*size(dst_unit) bytes to dst
+ $stride_fn:ident) => {
++ /// Safety: src and dst must have len elements, src is valid for read, dst is valid for
++ /// write
++ /// Safety-usable invariant: will return Some() when it fails
++ /// to convert. The first value will be a u8 that is > 127.
+ #[cfg_attr(
+ feature = "cargo-clippy",
+ allow(never_loop, cast_ptr_alignment, cast_lossless)
+ )]
+ #[inline(always)]
+ pub unsafe fn $name(
+ src: *const $src_unit,
+ dst: *mut $dst_unit,
+ len: usize,
+ ) -> Option<($src_unit, usize)> {
+ let mut offset = 0usize;
+ // This loop is only broken out of as a `goto` forward
+ loop {
++ // Safety: until_alignment becomes the number of bytes we need to munch from src/dest until we are aligned to usize
++ // We ensure basic-latin has the same alignment as ascii, starting with ascii since it is smaller.
+ let mut until_alignment = {
+ // Check if the other unit aligns if we move the narrower unit
+ // to alignment.
+ // if ::core::mem::size_of::<$src_unit>() == ::core::mem::size_of::<$dst_unit>() {
+ // ascii_to_ascii
+ // let src_alignment = (src as usize) & ALIGNMENT_MASK;
+ // let dst_alignment = (dst as usize) & ALIGNMENT_MASK;
+ // if src_alignment != dst_alignment {
+@@ -232,66 +278,89 @@ macro_rules! basic_latin_alu {
+ // Moving pointers to alignment seems to be a pessimization on
+ // x86_64 for operations that have UTF-16 as the internal
+ // Unicode representation. However, since it seems to be a win
+ // on ARM (tested ARMv7 code running on ARMv8 [rpi3]), except
+ // mixed results when encoding from UTF-16 and since x86 and
+ // x86_64 should be using SSE2 in due course, keeping the move
+ // to alignment here. It would be good to test on more ARM CPUs
+ // and on real MIPS and POWER hardware.
++ //
++ // Safety: This is the na誰ve code once again, for `until_alignment` bytes
+ while until_alignment != 0 {
+ let code_unit = *(src.add(offset));
+ if code_unit > 127 {
++ // Safety: Upholds safety-usable invariant here
+ return Some((code_unit, offset));
+ }
+ *(dst.add(offset)) = code_unit as $dst_unit;
++ // Safety: offset is the number of bytes copied so far
+ offset += 1;
+ until_alignment -= 1;
+ }
+ let len_minus_stride = len - ALU_STRIDE_SIZE;
+ loop {
+ if !$stride_fn(
++ // Safety: These are known to be valid and aligned since we have at
++ // least ALU_STRIDE_SIZE data in these buffers, and offset is the
++ // number of elements copied so far, which according to the
++ // until_alignment calculation above will cause both src and dst to be
++ // aligned to usize after this add
+ src.add(offset) as *const usize,
+ dst.add(offset) as *mut usize,
+ ) {
+ break;
+ }
++ // Safety: offset continues to be the number of bytes copied so far, and
++ // maintains usize alignment for the next loop iteration
+ offset += ALU_STRIDE_SIZE;
++ // Safety: This is `offset > len - stride. This loop will continue as long as
++ // `offset <= len - stride`, which means there are `stride` bytes to still be read.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ break;
+ }
++ // Safety: This is the na誰ve code once again, for leftover bytes
+ while offset < len {
++ // Safety: len invariant used here
+ let code_unit = *(src.add(offset));
+ if code_unit > 127 {
++ // Safety: Upholds safety-usable invariant here
+ return Some((code_unit, offset));
+ }
++ // Safety: len invariant used here
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ None
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! latin1_alu {
++ // safety invariant: stride function must munch ALU_STRIDE_SIZE*size(src_unit) bytes off of src and
++ // write ALU_STRIDE_SIZE*size(dst_unit) bytes to dst
+ ($name:ident, $src_unit:ty, $dst_unit:ty, $stride_fn:ident) => {
++ /// Safety: src and dst must have len elements, src is valid for read, dst is valid for
++ /// write
+ #[cfg_attr(
+ feature = "cargo-clippy",
+ allow(never_loop, cast_ptr_alignment, cast_lossless)
+ )]
+ #[inline(always)]
+ pub unsafe fn $name(src: *const $src_unit, dst: *mut $dst_unit, len: usize) {
+ let mut offset = 0usize;
+ // This loop is only broken out of as a `goto` forward
+ loop {
++ // Safety: until_alignment becomes the number of bytes we need to munch from src/dest until we are aligned to usize
++ // We ensure the UTF-16 side has the same alignment as the Latin-1 side, starting with Latin-1 since it is smaller.
+ let mut until_alignment = {
+ if ::core::mem::size_of::<$src_unit>() < ::core::mem::size_of::<$dst_unit>() {
+ // unpack
+ let src_until_alignment = (ALU_ALIGNMENT
+ - ((src as usize) & ALU_ALIGNMENT_MASK))
+ & ALU_ALIGNMENT_MASK;
+ if (dst.wrapping_add(src_until_alignment) as usize) & ALU_ALIGNMENT_MASK
+ != 0
+@@ -308,373 +377,485 @@ macro_rules! latin1_alu {
+ != 0
+ {
+ break;
+ }
+ dst_until_alignment
+ }
+ };
+ if until_alignment + ALU_STRIDE_SIZE <= len {
++ // Safety: This is the na誰ve code once again, for `until_alignment` bytes
+ while until_alignment != 0 {
+ let code_unit = *(src.add(offset));
+ *(dst.add(offset)) = code_unit as $dst_unit;
++ // Safety: offset is the number of bytes copied so far
+ offset += 1;
+ until_alignment -= 1;
+ }
+ let len_minus_stride = len - ALU_STRIDE_SIZE;
+ loop {
+ $stride_fn(
++ // Safety: These are known to be valid and aligned since we have at
++ // least ALU_STRIDE_SIZE data in these buffers, and offset is the
++ // number of elements copied so far, which according to the
++ // until_alignment calculation above will cause both src and dst to be
++ // aligned to usize after this add
+ src.add(offset) as *const usize,
+ dst.add(offset) as *mut usize,
+ );
++ // Safety: offset continues to be the number of bytes copied so far, and
++ // maintains usize alignment for the next loop iteration
+ offset += ALU_STRIDE_SIZE;
++ // Safety: This is `offset > len - stride. This loop will continue as long as
++ // `offset <= len - stride`, which means there are `stride` bytes to still be read.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ break;
+ }
++ // Safety: This is the na誰ve code once again, for leftover bytes
+ while offset < len {
++ // Safety: len invariant used here
+ let code_unit = *(src.add(offset));
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_simd_check_align {
+ (
+ $name:ident,
+ $src_unit:ty,
+ $dst_unit:ty,
++ // Safety: This function must require aligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_both_aligned:ident,
++ // Safety: This function must require aligned/unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_src_aligned:ident,
++ // Safety: This function must require unaligned/aligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_dst_aligned:ident,
++ // Safety: This function must require unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_neither_aligned:ident
+ ) => {
++ /// Safety: src/dst must be valid for reads/writes of `len` elements of their units.
++ ///
++ /// Safety-usable invariant: will return Some() when it encounters non-ASCII, with the first element in the Some being
++ /// guaranteed to be non-ASCII (> 127), and the second being the offset where it is found
+ #[inline(always)]
+ pub unsafe fn $name(
+ src: *const $src_unit,
+ dst: *mut $dst_unit,
+ len: usize,
+ ) -> Option<($src_unit, usize)> {
+ let mut offset = 0usize;
++ // Safety: if this check succeeds we're valid for reading/writing at least `SIMD_STRIDE_SIZE` elements.
+ if SIMD_STRIDE_SIZE <= len {
+ let len_minus_stride = len - SIMD_STRIDE_SIZE;
+ // XXX Should we first process one stride unconditionally as unaligned to
+ // avoid the cost of the branchiness below if the first stride fails anyway?
+ // XXX Should we just use unaligned SSE2 access unconditionally? It seems that
+ // on Haswell, it would make sense to just use unaligned and not bother
+ // checking. Need to benchmark older architectures before deciding.
+ let dst_masked = (dst as usize) & SIMD_ALIGNMENT_MASK;
++ // Safety: checking whether src is aligned
+ if ((src as usize) & SIMD_ALIGNMENT_MASK) == 0 {
++ // Safety: Checking whether dst is aligned
+ if dst_masked == 0 {
+ loop {
++ // Safety: We're valid to read/write SIMD_STRIDE_SIZE elements and have the appropriate alignments
+ if !$stride_both_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE` which means we always have at least `SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ } else {
+ loop {
++ // Safety: We're valid to read/write SIMD_STRIDE_SIZE elements and have the appropriate alignments
+ if !$stride_src_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE` which means we always have at least `SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ } else {
+ if dst_masked == 0 {
+ loop {
++ // Safety: We're valid to read/write SIMD_STRIDE_SIZE elements and have the appropriate alignments
+ if !$stride_dst_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE` which means we always have at least `SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ } else {
+ loop {
++ // Safety: We're valid to read/write SIMD_STRIDE_SIZE elements and have the appropriate alignments
+ if !$stride_neither_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE` which means we always have at least `SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ }
+ }
+ while offset < len {
++ // Safety: uses len invariant here and below
+ let code_unit = *(src.add(offset));
+ if code_unit > 127 {
++ // Safety: upholds safety-usable invariant
+ return Some((code_unit, offset));
+ }
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ None
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_simd_check_align_unrolled {
+ (
+ $name:ident,
+ $src_unit:ty,
+ $dst_unit:ty,
++ // Safety: This function must require aligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_both_aligned:ident,
++ // Safety: This function must require aligned/unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_src_aligned:ident,
++ // Safety: This function must require unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_neither_aligned:ident,
++ // Safety: This function must require aligned src/dest that are valid for reading/writing 2*SIMD_STRIDE_SIZE src_unit/dst_unit
+ $double_stride_both_aligned:ident,
++ // Safety: This function must require aligned/unaligned src/dest that are valid for reading/writing 2*SIMD_STRIDE_SIZE src_unit/dst_unit
+ $double_stride_src_aligned:ident
+ ) => {
+- #[inline(always)]
++ /// Safety: src/dst must be valid for reads/writes of `len` elements of their units.
++ ///
++ /// Safety-usable invariant: will return Some() when it encounters non-ASCII, with the first element in the Some being
++ /// guaranteed to be non-ASCII (> 127), and the second being the offset where it is found #[inline(always)]
+ pub unsafe fn $name(
+ src: *const $src_unit,
+ dst: *mut $dst_unit,
+ len: usize,
+ ) -> Option<($src_unit, usize)> {
+ let unit_size = ::core::mem::size_of::<$src_unit>();
+ let mut offset = 0usize;
+ // This loop is only broken out of as a goto forward without
+ // actually looping
+ 'outer: loop {
++ // Safety: if this check succeeds we're valid for reading/writing at least `SIMD_STRIDE_SIZE` elements.
+ if SIMD_STRIDE_SIZE <= len {
+ // First, process one unaligned
++ // Safety: this is safe to call since we're valid for this read/write
+ if !$stride_neither_aligned(src, dst) {
+ break 'outer;
+ }
+ offset = SIMD_STRIDE_SIZE;
+
+ // We have now seen 16 ASCII bytes. Let's guess that
+ // there will be enough more to justify more expense
+ // in the case of non-ASCII.
+ // Use aligned reads for the sake of old microachitectures.
++ //
++ // Safety: this correctly calculates the number of src_units that need to be read before the remaining list is aligned.
++ // This is less that SIMD_ALIGNMENT, which is also SIMD_STRIDE_SIZE (as documented)
+ let until_alignment = ((SIMD_ALIGNMENT
+ - ((src.add(offset) as usize) & SIMD_ALIGNMENT_MASK))
+ & SIMD_ALIGNMENT_MASK)
+ / unit_size;
+- // This addition won't overflow, because even in the 32-bit PAE case the
++ // Safety: This addition won't overflow, because even in the 32-bit PAE case the
+ // address space holds enough code that the slice length can't be that
+ // close to address space size.
+ // offset now equals SIMD_STRIDE_SIZE, hence times 3 below.
++ //
++ // Safety: if this check succeeds we're valid for reading/writing at least `2 * SIMD_STRIDE_SIZE` elements plus `until_alignment`.
++ // The extra SIMD_STRIDE_SIZE in the condition is because `offset` is already `SIMD_STRIDE_SIZE`.
+ if until_alignment + (SIMD_STRIDE_SIZE * 3) <= len {
+ if until_alignment != 0 {
++ // Safety: this is safe to call since we're valid for this read/write (and more), and don't care about alignment
++ // This will copy over bytes that get decoded twice since it's not incrementing `offset` by SIMD_STRIDE_SIZE. This is fine.
+ if !$stride_neither_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += until_alignment;
+ }
++ // Safety: At this point we're valid for reading/writing 2*SIMD_STRIDE_SIZE elements
++ // Safety: Now `offset` is aligned for `src`
+ let len_minus_stride_times_two = len - (SIMD_STRIDE_SIZE * 2);
++ // Safety: This is whether dst is aligned
+ let dst_masked = (dst.add(offset) as usize) & SIMD_ALIGNMENT_MASK;
+ if dst_masked == 0 {
+ loop {
++ // Safety: both are aligned, we can call the aligned function. We're valid for reading/writing double stride from the initial condition
++ // and the loop break condition below
+ if let Some(advance) =
+ $double_stride_both_aligned(src.add(offset), dst.add(offset))
+ {
+ offset += advance;
+ let code_unit = *(src.add(offset));
++ // Safety: uses safety-usable invariant on ascii_to_ascii_simd_double_stride to return
++ // guaranteed non-ascii
+ return Some((code_unit, offset));
+ }
+ offset += SIMD_STRIDE_SIZE * 2;
++ // Safety: This is `offset > len - 2 * SIMD_STRIDE_SIZE` which means we always have at least `2 * SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride_times_two {
+ break;
+ }
+ }
++ // Safety: We're valid for reading/writing one more, and can still assume alignment
+ if offset + SIMD_STRIDE_SIZE <= len {
+ if !$stride_both_aligned(src.add(offset), dst.add(offset)) {
+ break 'outer;
+ }
+ offset += SIMD_STRIDE_SIZE;
+ }
+ } else {
+ loop {
++ // Safety: only src is aligned here. We're valid for reading/writing double stride from the initial condition
++ // and the loop break condition below
+ if let Some(advance) =
+ $double_stride_src_aligned(src.add(offset), dst.add(offset))
+ {
+ offset += advance;
+ let code_unit = *(src.add(offset));
++ // Safety: uses safety-usable invariant on ascii_to_ascii_simd_double_stride to return
++ // guaranteed non-ascii
+ return Some((code_unit, offset));
+ }
+ offset += SIMD_STRIDE_SIZE * 2;
++ // Safety: This is `offset > len - 2 * SIMD_STRIDE_SIZE` which means we always have at least `2 * SIMD_STRIDE_SIZE` elements to munch next time.
++
+ if offset > len_minus_stride_times_two {
+ break;
+ }
+ }
++ // Safety: We're valid for reading/writing one more, and can still assume alignment
+ if offset + SIMD_STRIDE_SIZE <= len {
+ if !$stride_src_aligned(src.add(offset), dst.add(offset)) {
+ break 'outer;
+ }
+ offset += SIMD_STRIDE_SIZE;
+ }
+ }
+ } else {
+ // At most two iterations, so unroll
+ if offset + SIMD_STRIDE_SIZE <= len {
++ // Safety: The check above ensures we're allowed to read/write this, and we don't use alignment
+ if !$stride_neither_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
+ if offset + SIMD_STRIDE_SIZE <= len {
++ // Safety: The check above ensures we're allowed to read/write this, and we don't use alignment
+ if !$stride_neither_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
+ }
+ }
+ }
+ }
+ break 'outer;
+ }
+ while offset < len {
++ // Safety: relies straightforwardly on the `len` invariant
+ let code_unit = *(src.add(offset));
+ if code_unit > 127 {
++ // Safety-usable invariant upheld here
+ return Some((code_unit, offset));
+ }
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ None
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! latin1_simd_check_align {
+ (
+ $name:ident,
+ $src_unit:ty,
+ $dst_unit:ty,
++ // Safety: This function must require aligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_both_aligned:ident,
++ // Safety: This function must require aligned/unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_src_aligned:ident,
++ // Safety: This function must require unaligned/aligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_dst_aligned:ident,
++ // Safety: This function must require unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_neither_aligned:ident
++
+ ) => {
++ /// Safety: src/dst must be valid for reads/writes of `len` elements of their units.
+ #[inline(always)]
+ pub unsafe fn $name(src: *const $src_unit, dst: *mut $dst_unit, len: usize) {
+ let mut offset = 0usize;
++ // Safety: if this check succeeds we're valid for reading/writing at least `SIMD_STRIDE_SIZE` elements.
+ if SIMD_STRIDE_SIZE <= len {
+ let len_minus_stride = len - SIMD_STRIDE_SIZE;
++ // Whether dst is aligned
+ let dst_masked = (dst as usize) & SIMD_ALIGNMENT_MASK;
++ // Whether src is aligned
+ if ((src as usize) & SIMD_ALIGNMENT_MASK) == 0 {
+ if dst_masked == 0 {
+ loop {
++ // Safety: Both were aligned, we can use the aligned function
+ $stride_both_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE`, which means in the next iteration we're valid for
++ // reading/writing at least SIMD_STRIDE_SIZE elements.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ } else {
+ loop {
++ // Safety: src was aligned, dst was not
+ $stride_src_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE`, which means in the next iteration we're valid for
++ // reading/writing at least SIMD_STRIDE_SIZE elements.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ } else {
+ if dst_masked == 0 {
+ loop {
++ // Safety: src was aligned, dst was not
+ $stride_dst_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE`, which means in the next iteration we're valid for
++ // reading/writing at least SIMD_STRIDE_SIZE elements.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ } else {
+ loop {
++ // Safety: Neither were aligned
+ $stride_neither_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE`, which means in the next iteration we're valid for
++ // reading/writing at least SIMD_STRIDE_SIZE elements.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ }
+ }
+ while offset < len {
++ // Safety: relies straightforwardly on the `len` invariant
+ let code_unit = *(src.add(offset));
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! latin1_simd_check_align_unrolled {
+ (
+ $name:ident,
+ $src_unit:ty,
+ $dst_unit:ty,
++ // Safety: This function must require aligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_both_aligned:ident,
++ // Safety: This function must require aligned/unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_src_aligned:ident,
++ // Safety: This function must require unaligned/aligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_dst_aligned:ident,
++ // Safety: This function must require unaligned src/dest that are valid for reading/writing SIMD_STRIDE_SIZE src_unit/dst_unit
+ $stride_neither_aligned:ident
+ ) => {
++ /// Safety: src/dst must be valid for reads/writes of `len` elements of their units.
+ #[inline(always)]
+ pub unsafe fn $name(src: *const $src_unit, dst: *mut $dst_unit, len: usize) {
+ let unit_size = ::core::mem::size_of::<$src_unit>();
+ let mut offset = 0usize;
++ // Safety: if this check succeeds we're valid for reading/writing at least `SIMD_STRIDE_SIZE` elements.
+ if SIMD_STRIDE_SIZE <= len {
++ // Safety: this correctly calculates the number of src_units that need to be read before the remaining list is aligned.
++ // This is by definition less than SIMD_STRIDE_SIZE.
+ let mut until_alignment = ((SIMD_STRIDE_SIZE
+ - ((src as usize) & SIMD_ALIGNMENT_MASK))
+ & SIMD_ALIGNMENT_MASK)
+ / unit_size;
+ while until_alignment != 0 {
++ // Safety: This is a straightforward copy, since until_alignment is < SIMD_STRIDE_SIZE < len, this is in-bounds
+ *(dst.add(offset)) = *(src.add(offset)) as $dst_unit;
+ offset += 1;
+ until_alignment -= 1;
+ }
++ // Safety: here offset will be `until_alignment`, i.e. enough to align `src`.
+ let len_minus_stride = len - SIMD_STRIDE_SIZE;
++ // Safety: if this check succeeds we're valid for reading/writing at least `2 * SIMD_STRIDE_SIZE` elements.
+ if offset + SIMD_STRIDE_SIZE * 2 <= len {
+ let len_minus_stride_times_two = len_minus_stride - SIMD_STRIDE_SIZE;
++ // Safety: at this point src is known to be aligned at offset, dst is not.
+ if (dst.add(offset) as usize) & SIMD_ALIGNMENT_MASK == 0 {
+ loop {
++ // Safety: We checked alignment of dst above, we can use the alignment functions. We're allowed to read/write 2*SIMD_STRIDE_SIZE elements, which we do.
+ $stride_both_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
+ $stride_both_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - 2 * SIMD_STRIDE_SIZE` which means we always have at least `2 * SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride_times_two {
+ break;
+ }
+ }
+ } else {
+ loop {
++ // Safety: we ensured alignment of src already.
+ $stride_src_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
+ $stride_src_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - 2 * SIMD_STRIDE_SIZE` which means we always have at least `2 * SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride_times_two {
+ break;
+ }
+ }
+ }
+ }
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE` which means we are valid to munch SIMD_STRIDE_SIZE more elements, which we do
+ if offset < len_minus_stride {
+ $stride_src_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
+ }
+ }
+ while offset < len {
++ // Safety: uses len invariant here and below
+ let code_unit = *(src.add(offset));
+ // On x86_64, this loop autovectorizes but in the pack
+ // case there are instructions whose purpose is to make sure
+ // each u16 in the vector is truncated before packing. However,
+ // since we don't care about saturating behavior of SSE2 packing
+ // when the input isn't Latin1, those instructions are useless.
+ // Unfortunately, using the `assume` intrinsic to lie to the
+ // optimizer doesn't make LLVM omit the trunctation that we
+@@ -688,138 +869,180 @@ macro_rules! latin1_simd_check_align_unr
+ offset += 1;
+ }
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_simd_unalign {
++ // Safety: stride_neither_aligned must be a function that requires src/dest be valid for unaligned reads/writes for SIMD_STRIDE_SIZE elements of type src_unit/dest_unit
+ ($name:ident, $src_unit:ty, $dst_unit:ty, $stride_neither_aligned:ident) => {
++ /// Safety: src and dst must be valid for reads/writes of len elements of type src_unit/dst_unit
++ ///
++ /// Safety-usable invariant: will return Some() when it encounters non-ASCII, with the first element in the Some being
++ /// guaranteed to be non-ASCII (> 127), and the second being the offset where it is found
+ #[inline(always)]
+ pub unsafe fn $name(
+ src: *const $src_unit,
+ dst: *mut $dst_unit,
+ len: usize,
+ ) -> Option<($src_unit, usize)> {
+ let mut offset = 0usize;
++ // Safety: if this check succeeds we're valid for reading/writing at least `stride` elements.
+ if SIMD_STRIDE_SIZE <= len {
+ let len_minus_stride = len - SIMD_STRIDE_SIZE;
+ loop {
++ // Safety: We know we're valid for `stride` reads/writes, so we can call this function. We don't need alignment.
+ if !$stride_neither_aligned(src.add(offset), dst.add(offset)) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // This is `offset > len - stride` which means we always have at least `stride` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ while offset < len {
++ // Safety: Uses len invariant here and below
+ let code_unit = *(src.add(offset));
+ if code_unit > 127 {
++ // Safety-usable invariant upheld here
+ return Some((code_unit, offset));
+ }
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ None
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! latin1_simd_unalign {
++ // Safety: stride_neither_aligned must be a function that requires src/dest be valid for unaligned reads/writes for SIMD_STRIDE_SIZE elements of type src_unit/dest_unit
+ ($name:ident, $src_unit:ty, $dst_unit:ty, $stride_neither_aligned:ident) => {
++ /// Safety: src and dst must be valid for unaligned reads/writes of len elements of type src_unit/dst_unit
+ #[inline(always)]
+ pub unsafe fn $name(src: *const $src_unit, dst: *mut $dst_unit, len: usize) {
+ let mut offset = 0usize;
++ // Safety: if this check succeeds we're valid for reading/writing at least `stride` elements.
+ if SIMD_STRIDE_SIZE <= len {
+ let len_minus_stride = len - SIMD_STRIDE_SIZE;
+ loop {
++ // Safety: We know we're valid for `stride` reads/writes, so we can call this function. We don't need alignment.
+ $stride_neither_aligned(src.add(offset), dst.add(offset));
+ offset += SIMD_STRIDE_SIZE;
++ // This is `offset > len - stride` which means we always have at least `stride` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ while offset < len {
++ // Safety: Uses len invariant here
+ let code_unit = *(src.add(offset));
+ *(dst.add(offset)) = code_unit as $dst_unit;
+ offset += 1;
+ }
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_to_ascii_simd_stride {
++ // Safety: load/store must be valid for 16 bytes of read/write, which may be unaligned. (candidates: `(load|store)(16|8)_(unaligned|aligned)` functions)
+ ($name:ident, $load:ident, $store:ident) => {
++ /// Safety: src and dst must be valid for 16 bytes of read/write according to
++ /// the $load/$store fn, which may allow for unaligned reads/writes or require
++ /// alignment to either 16x8 or u8x16.
+ #[inline(always)]
+ pub unsafe fn $name(src: *const u8, dst: *mut u8) -> bool {
+ let simd = $load(src);
+ if !simd_is_ascii(simd) {
+ return false;
+ }
+ $store(dst, simd);
+ true
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_to_ascii_simd_double_stride {
++ // Safety: store must be valid for 32 bytes of write, which may be unaligned (candidates: `store(8|16)_(aligned|unaligned)`)
+ ($name:ident, $store:ident) => {
++ /// Safety: src must be valid for 32 bytes of aligned u8x16 read
++ /// dst must be valid for 32 bytes of unaligned write according to
++ /// the $store fn, which may allow for unaligned writes or require
++ /// alignment to either 16x8 or u8x16.
++ ///
++ /// Safety-usable invariant: Returns Some(index) if the element at `index` is invalid ASCII
+ #[inline(always)]
+ pub unsafe fn $name(src: *const u8, dst: *mut u8) -> Option<usize> {
+ let first = load16_aligned(src);
+ let second = load16_aligned(src.add(SIMD_STRIDE_SIZE));
+ $store(dst, first);
+ if unlikely(!simd_is_ascii(first | second)) {
++ // Safety: mask_ascii produces a mask of all the high bits.
+ let mask_first = mask_ascii(first);
+ if mask_first != 0 {
++ // Safety: on little endian systems this will be the number of ascii bytes
++ // before the first non-ascii, i.e. valid for indexing src
++ // TODO SAFETY: What about big-endian systems?
+ return Some(mask_first.trailing_zeros() as usize);
+ }
+ $store(dst.add(SIMD_STRIDE_SIZE), second);
+ let mask_second = mask_ascii(second);
++ // Safety: on little endian systems this will be the number of ascii bytes
++ // before the first non-ascii, i.e. valid for indexing src
+ return Some(SIMD_STRIDE_SIZE + mask_second.trailing_zeros() as usize);
+ }
+ $store(dst.add(SIMD_STRIDE_SIZE), second);
+ None
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_to_basic_latin_simd_stride {
++ // Safety: load/store must be valid for 16 bytes of read/write, which may be unaligned. (candidates: `(load|store)(16|8)_(unaligned|aligned)` functions)
+ ($name:ident, $load:ident, $store:ident) => {
++ /// Safety: src and dst must be valid for 16/32 bytes of read/write according to
++ /// the $load/$store fn, which may allow for unaligned reads/writes or require
++ /// alignment to either 16x8 or u8x16.
+ #[inline(always)]
+ pub unsafe fn $name(src: *const u8, dst: *mut u16) -> bool {
+ let simd = $load(src);
+ if !simd_is_ascii(simd) {
+ return false;
+ }
+ let (first, second) = simd_unpack(simd);
+ $store(dst, first);
+ $store(dst.add(8), second);
+ true
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! ascii_to_basic_latin_simd_double_stride {
++ // Safety: store must be valid for 16 bytes of write, which may be unaligned
+ ($name:ident, $store:ident) => {
++ /// Safety: src must be valid for 2*SIMD_STRIDE_SIZE bytes of aligned reads,
++ /// aligned to either 16x8 or u8x16.
++ /// dst must be valid for 2*SIMD_STRIDE_SIZE bytes of aligned or unaligned reads
+ #[inline(always)]
+ pub unsafe fn $name(src: *const u8, dst: *mut u16) -> Option<usize> {
+ let first = load16_aligned(src);
+ let second = load16_aligned(src.add(SIMD_STRIDE_SIZE));
+ let (a, b) = simd_unpack(first);
+ $store(dst, a);
++ // Safety: divide by 2 since it's a u16 pointer
+ $store(dst.add(SIMD_STRIDE_SIZE / 2), b);
+ if unlikely(!simd_is_ascii(first | second)) {
+ let mask_first = mask_ascii(first);
+ if mask_first != 0 {
+ return Some(mask_first.trailing_zeros() as usize);
+ }
+ let (c, d) = simd_unpack(second);
+ $store(dst.add(SIMD_STRIDE_SIZE), c);
+@@ -832,47 +1055,59 @@ macro_rules! ascii_to_basic_latin_simd_d
+ $store(dst.add(SIMD_STRIDE_SIZE + (SIMD_STRIDE_SIZE / 2)), d);
+ None
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! unpack_simd_stride {
++ // Safety: load/store must be valid for 16 bytes of read/write, which may be unaligned. (candidates: `(load|store)(16|8)_(unaligned|aligned)` functions)
+ ($name:ident, $load:ident, $store:ident) => {
++ /// Safety: src and dst must be valid for 16 bytes of read/write according to
++ /// the $load/$store fn, which may allow for unaligned reads/writes or require
++ /// alignment to either 16x8 or u8x16.
+ #[inline(always)]
+ pub unsafe fn $name(src: *const u8, dst: *mut u16) {
+ let simd = $load(src);
+ let (first, second) = simd_unpack(simd);
+ $store(dst, first);
+ $store(dst.add(8), second);
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! basic_latin_to_ascii_simd_stride {
++ // Safety: load/store must be valid for 16 bytes of read/write, which may be unaligned. (candidates: `(load|store)(16|8)_(unaligned|aligned)` functions)
+ ($name:ident, $load:ident, $store:ident) => {
++ /// Safety: src and dst must be valid for 32/16 bytes of read/write according to
++ /// the $load/$store fn, which may allow for unaligned reads/writes or require
++ /// alignment to either 16x8 or u8x16.
+ #[inline(always)]
+ pub unsafe fn $name(src: *const u16, dst: *mut u8) -> bool {
+ let first = $load(src);
+ let second = $load(src.add(8));
+ if simd_is_basic_latin(first | second) {
+ $store(dst, simd_pack(first, second));
+ true
+ } else {
+ false
+ }
+ }
+ };
+ }
+
+ #[allow(unused_macros)]
+ macro_rules! pack_simd_stride {
++ // Safety: load/store must be valid for 16 bytes of read/write, which may be unaligned. (candidates: `(load|store)(16|8)_(unaligned|aligned)` functions)
+ ($name:ident, $load:ident, $store:ident) => {
++ /// Safety: src and dst must be valid for 32/16 bytes of read/write according to
++ /// the $load/$store fn, which may allow for unaligned reads/writes or require
++ /// alignment to either 16x8 or u8x16.
+ #[inline(always)]
+ pub unsafe fn $name(src: *const u16, dst: *mut u8) {
+ let first = $load(src);
+ let second = $load(src.add(8));
+ $store(dst, simd_pack(first, second));
+ }
+ };
+ }
+@@ -888,24 +1123,28 @@ cfg_if! {
+ // pub const ALIGNMENT: usize = 8;
+
+ pub const ALU_STRIDE_SIZE: usize = 16;
+
+ pub const ALU_ALIGNMENT: usize = 8;
+
+ pub const ALU_ALIGNMENT_MASK: usize = 7;
+
++ // Safety for stride macros: We stick to the load8_aligned/etc family of functions. We consistently produce
++ // neither_unaligned variants using only unaligned inputs.
+ ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_neither_aligned, load16_unaligned, store16_unaligned);
+
+ ascii_to_basic_latin_simd_stride!(ascii_to_basic_latin_stride_neither_aligned, load16_unaligned, store8_unaligned);
+ unpack_simd_stride!(unpack_stride_neither_aligned, load16_unaligned, store8_unaligned);
+
+ basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_neither_aligned, load8_unaligned, store16_unaligned);
+ pack_simd_stride!(pack_stride_neither_aligned, load8_unaligned, store16_unaligned);
+
++ // Safety for conversion macros: We use the unalign macro with unalign functions above. All stride functions were produced
++ // by stride macros that universally munch a single SIMD_STRIDE_SIZE worth of elements.
+ ascii_simd_unalign!(ascii_to_ascii, u8, u8, ascii_to_ascii_stride_neither_aligned);
+ ascii_simd_unalign!(ascii_to_basic_latin, u8, u16, ascii_to_basic_latin_stride_neither_aligned);
+ ascii_simd_unalign!(basic_latin_to_ascii, u16, u8, basic_latin_to_ascii_stride_neither_aligned);
+ latin1_simd_unalign!(unpack_latin1, u8, u16, unpack_stride_neither_aligned);
+ latin1_simd_unalign!(pack_latin1, u16, u8, pack_stride_neither_aligned);
+ } else if #[cfg(all(feature = "simd-accel", target_endian = "little", target_feature = "neon"))] {
+ // SIMD with different instructions for aligned and unaligned loads and stores.
+ //
+@@ -914,16 +1153,19 @@ cfg_if! {
+ // but the benchmark results I see don't agree.
+
+ pub const SIMD_STRIDE_SIZE: usize = 16;
+
+ pub const MAX_STRIDE_SIZE: usize = 16;
+
+ pub const SIMD_ALIGNMENT_MASK: usize = 15;
+
++ // Safety for stride macros: We stick to the load8_aligned/etc family of functions. We consistently name
++ // aligned/unaligned functions according to src/dst being aligned/unaligned
++
+ ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_both_aligned, load16_aligned, store16_aligned);
+ ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_src_aligned, load16_aligned, store16_unaligned);
+ ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_dst_aligned, load16_unaligned, store16_aligned);
+ ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_neither_aligned, load16_unaligned, store16_unaligned);
+
+ ascii_to_basic_latin_simd_stride!(ascii_to_basic_latin_stride_both_aligned, load16_aligned, store8_aligned);
+ ascii_to_basic_latin_simd_stride!(ascii_to_basic_latin_stride_src_aligned, load16_aligned, store8_unaligned);
+ ascii_to_basic_latin_simd_stride!(ascii_to_basic_latin_stride_dst_aligned, load16_unaligned, store8_aligned);
+@@ -939,36 +1181,43 @@ cfg_if! {
+ basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_dst_aligned, load8_unaligned, store16_aligned);
+ basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_neither_aligned, load8_unaligned, store16_unaligned);
+
+ pack_simd_stride!(pack_stride_both_aligned, load8_aligned, store16_aligned);
+ pack_simd_stride!(pack_stride_src_aligned, load8_aligned, store16_unaligned);
+ pack_simd_stride!(pack_stride_dst_aligned, load8_unaligned, store16_aligned);
+ pack_simd_stride!(pack_stride_neither_aligned, load8_unaligned, store16_unaligned);
+
++ // Safety for conversion macros: We use the correct pattern of both/src/dst/neither here. All stride functions were produced
++ // by stride macros that universally munch a single SIMD_STRIDE_SIZE worth of elements.
++
+ ascii_simd_check_align!(ascii_to_ascii, u8, u8, ascii_to_ascii_stride_both_aligned, ascii_to_ascii_stride_src_aligned, ascii_to_ascii_stride_dst_aligned, ascii_to_ascii_stride_neither_aligned);
+ ascii_simd_check_align!(ascii_to_basic_latin, u8, u16, ascii_to_basic_latin_stride_both_aligned, ascii_to_basic_latin_stride_src_aligned, ascii_to_basic_latin_stride_dst_aligned, ascii_to_basic_latin_stride_neither_aligned);
+ ascii_simd_check_align!(basic_latin_to_ascii, u16, u8, basic_latin_to_ascii_stride_both_aligned, basic_latin_to_ascii_stride_src_aligned, basic_latin_to_ascii_stride_dst_aligned, basic_latin_to_ascii_stride_neither_aligned);
+ latin1_simd_check_align!(unpack_latin1, u8, u16, unpack_stride_both_aligned, unpack_stride_src_aligned, unpack_stride_dst_aligned, unpack_stride_neither_aligned);
+ latin1_simd_check_align!(pack_latin1, u16, u8, pack_stride_both_aligned, pack_stride_src_aligned, pack_stride_dst_aligned, pack_stride_neither_aligned);
+ } else if #[cfg(all(feature = "simd-accel", target_feature = "sse2"))] {
+ // SIMD with different instructions for aligned and unaligned loads and stores.
+ //
+ // Newer microarchitectures are not supposed to have a performance difference between
+ // aligned and unaligned SSE2 loads and stores when the address is actually aligned,
+ // but the benchmark results I see don't agree.
+
+ pub const SIMD_STRIDE_SIZE: usize = 16;
+
++ /// Safety-usable invariant: This should be identical to SIMD_STRIDE_SIZE (used by ascii_simd_check_align_unrolled)
+ pub const SIMD_ALIGNMENT: usize = 16;
+
+ pub const MAX_STRIDE_SIZE: usize = 16;
+
+ pub const SIMD_ALIGNMENT_MASK: usize = 15;
+
++ // Safety for stride macros: We stick to the load8_aligned/etc family of functions. We consistently name
++ // aligned/unaligned functions according to src/dst being aligned/unaligned
++
+ ascii_to_ascii_simd_double_stride!(ascii_to_ascii_simd_double_stride_both_aligned, store16_aligned);
+ ascii_to_ascii_simd_double_stride!(ascii_to_ascii_simd_double_stride_src_aligned, store16_unaligned);
+
+ ascii_to_basic_latin_simd_double_stride!(ascii_to_basic_latin_simd_double_stride_both_aligned, store8_aligned);
+ ascii_to_basic_latin_simd_double_stride!(ascii_to_basic_latin_simd_double_stride_src_aligned, store8_unaligned);
+
+ ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_both_aligned, load16_aligned, store16_aligned);
+ ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_src_aligned, load16_aligned, store16_unaligned);
+@@ -984,33 +1233,43 @@ cfg_if! {
+ basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_both_aligned, load8_aligned, store16_aligned);
+ basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_src_aligned, load8_aligned, store16_unaligned);
+ basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_dst_aligned, load8_unaligned, store16_aligned);
+ basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_neither_aligned, load8_unaligned, store16_unaligned);
+
+ pack_simd_stride!(pack_stride_both_aligned, load8_aligned, store16_aligned);
+ pack_simd_stride!(pack_stride_src_aligned, load8_aligned, store16_unaligned);
+
++ // Safety for conversion macros: We use the correct pattern of both/src/dst/neither/double_both/double_src here. All stride functions were produced
++ // by stride macros that universally munch a single SIMD_STRIDE_SIZE worth of elements.
++
+ ascii_simd_check_align_unrolled!(ascii_to_ascii, u8, u8, ascii_to_ascii_stride_both_aligned, ascii_to_ascii_stride_src_aligned, ascii_to_ascii_stride_neither_aligned, ascii_to_ascii_simd_double_stride_both_aligned, ascii_to_ascii_simd_double_stride_src_aligned);
+ ascii_simd_check_align_unrolled!(ascii_to_basic_latin, u8, u16, ascii_to_basic_latin_stride_both_aligned, ascii_to_basic_latin_stride_src_aligned, ascii_to_basic_latin_stride_neither_aligned, ascii_to_basic_latin_simd_double_stride_both_aligned, ascii_to_basic_latin_simd_double_stride_src_aligned);
+
+ ascii_simd_check_align!(basic_latin_to_ascii, u16, u8, basic_latin_to_ascii_stride_both_aligned, basic_latin_to_ascii_stride_src_aligned, basic_latin_to_ascii_stride_dst_aligned, basic_latin_to_ascii_stride_neither_aligned);
+ latin1_simd_check_align_unrolled!(unpack_latin1, u8, u16, unpack_stride_both_aligned, unpack_stride_src_aligned, unpack_stride_dst_aligned, unpack_stride_neither_aligned);
+ latin1_simd_check_align_unrolled!(pack_latin1, u16, u8, pack_stride_both_aligned, pack_stride_src_aligned, pack_stride_dst_aligned, pack_stride_neither_aligned);
+ } else if #[cfg(all(target_endian = "little", target_pointer_width = "64"))] {
+ // Aligned ALU word, little-endian, 64-bit
+
++ /// Safety invariant: this is the amount of bytes consumed by
++ /// unpack_alu. This will be twice the pointer width, as it consumes two usizes.
++ /// This is also the number of bytes produced by pack_alu.
++ /// This is also the number of u16 code units produced/consumed by unpack_alu/pack_alu respectively.
+ pub const ALU_STRIDE_SIZE: usize = 16;
+
+ pub const MAX_STRIDE_SIZE: usize = 16;
+
++ // Safety invariant: this is the pointer width in bytes
+ pub const ALU_ALIGNMENT: usize = 8;
+
++ // Safety invariant: this is a mask for getting the bits of a pointer not aligned to ALU_ALIGNMENT
+ pub const ALU_ALIGNMENT_MASK: usize = 7;
+
++ /// Safety: dst must point to valid space for writing four `usize`s
+ #[inline(always)]
+ unsafe fn unpack_alu(word: usize, second_word: usize, dst: *mut usize) {
+ let first = ((0x0000_0000_FF00_0000usize & word) << 24) |
+ ((0x0000_0000_00FF_0000usize & word) << 16) |
+ ((0x0000_0000_0000_FF00usize & word) << 8) |
+ (0x0000_0000_0000_00FFusize & word);
+ let second = ((0xFF00_0000_0000_0000usize & word) >> 8) |
+ ((0x00FF_0000_0000_0000usize & word) >> 16) |
+@@ -1019,22 +1278,24 @@ cfg_if! {
+ let third = ((0x0000_0000_FF00_0000usize & second_word) << 24) |
+ ((0x0000_0000_00FF_0000usize & second_word) << 16) |
+ ((0x0000_0000_0000_FF00usize & second_word) << 8) |
+ (0x0000_0000_0000_00FFusize & second_word);
+ let fourth = ((0xFF00_0000_0000_0000usize & second_word) >> 8) |
+ ((0x00FF_0000_0000_0000usize & second_word) >> 16) |
+ ((0x0000_FF00_0000_0000usize & second_word) >> 24) |
+ ((0x0000_00FF_0000_0000usize & second_word) >> 32);
++ // Safety: fn invariant used here
+ *dst = first;
+ *(dst.add(1)) = second;
+ *(dst.add(2)) = third;
+ *(dst.add(3)) = fourth;
+ }
+
++ /// Safety: dst must point to valid space for writing two `usize`s
+ #[inline(always)]
+ unsafe fn pack_alu(first: usize, second: usize, third: usize, fourth: usize, dst: *mut usize) {
+ let word = ((0x00FF_0000_0000_0000usize & second) << 8) |
+ ((0x0000_00FF_0000_0000usize & second) << 16) |
+ ((0x0000_0000_00FF_0000usize & second) << 24) |
+ ((0x0000_0000_0000_00FFusize & second) << 32) |
+ ((0x00FF_0000_0000_0000usize & first) >> 24) |
+ ((0x0000_00FF_0000_0000usize & first) >> 16) |
+@@ -1043,70 +1304,88 @@ cfg_if! {
+ let second_word = ((0x00FF_0000_0000_0000usize & fourth) << 8) |
+ ((0x0000_00FF_0000_0000usize & fourth) << 16) |
+ ((0x0000_0000_00FF_0000usize & fourth) << 24) |
+ ((0x0000_0000_0000_00FFusize & fourth) << 32) |
+ ((0x00FF_0000_0000_0000usize & third) >> 24) |
+ ((0x0000_00FF_0000_0000usize & third) >> 16) |
+ ((0x0000_0000_00FF_0000usize & third) >> 8) |
+ (0x0000_0000_0000_00FFusize & third);
++ // Safety: fn invariant used here
+ *dst = word;
+ *(dst.add(1)) = second_word;
+ }
+ } else if #[cfg(all(target_endian = "little", target_pointer_width = "32"))] {
+ // Aligned ALU word, little-endian, 32-bit
+
++ /// Safety invariant: this is the amount of bytes consumed by
++ /// unpack_alu. This will be twice the pointer width, as it consumes two usizes.
++ /// This is also the number of bytes produced by pack_alu.
++ /// This is also the number of u16 code units produced/consumed by unpack_alu/pack_alu respectively.
+ pub const ALU_STRIDE_SIZE: usize = 8;
+
+ pub const MAX_STRIDE_SIZE: usize = 8;
+
++ // Safety invariant: this is the pointer width in bytes
+ pub const ALU_ALIGNMENT: usize = 4;
+
++ // Safety invariant: this is a mask for getting the bits of a pointer not aligned to ALU_ALIGNMENT
+ pub const ALU_ALIGNMENT_MASK: usize = 3;
+
++ /// Safety: dst must point to valid space for writing four `usize`s
+ #[inline(always)]
+ unsafe fn unpack_alu(word: usize, second_word: usize, dst: *mut usize) {
+ let first = ((0x0000_FF00usize & word) << 8) |
+ (0x0000_00FFusize & word);
+ let second = ((0xFF00_0000usize & word) >> 8) |
+ ((0x00FF_0000usize & word) >> 16);
+ let third = ((0x0000_FF00usize & second_word) << 8) |
+ (0x0000_00FFusize & second_word);
+ let fourth = ((0xFF00_0000usize & second_word) >> 8) |
+ ((0x00FF_0000usize & second_word) >> 16);
++ // Safety: fn invariant used here
+ *dst = first;
+ *(dst.add(1)) = second;
+ *(dst.add(2)) = third;
+ *(dst.add(3)) = fourth;
+ }
+
++ /// Safety: dst must point to valid space for writing two `usize`s
+ #[inline(always)]
+ unsafe fn pack_alu(first: usize, second: usize, third: usize, fourth: usize, dst: *mut usize) {
+ let word = ((0x00FF_0000usize & second) << 8) |
+ ((0x0000_00FFusize & second) << 16) |
+ ((0x00FF_0000usize & first) >> 8) |
+ (0x0000_00FFusize & first);
+ let second_word = ((0x00FF_0000usize & fourth) << 8) |
+ ((0x0000_00FFusize & fourth) << 16) |
+ ((0x00FF_0000usize & third) >> 8) |
+ (0x0000_00FFusize & third);
++ // Safety: fn invariant used here
+ *dst = word;
+ *(dst.add(1)) = second_word;
+ }
+ } else if #[cfg(all(target_endian = "big", target_pointer_width = "64"))] {
+ // Aligned ALU word, big-endian, 64-bit
+
++ /// Safety invariant: this is the amount of bytes consumed by
++ /// unpack_alu. This will be twice the pointer width, as it consumes two usizes.
++ /// This is also the number of bytes produced by pack_alu.
++ /// This is also the number of u16 code units produced/consumed by unpack_alu/pack_alu respectively.
+ pub const ALU_STRIDE_SIZE: usize = 16;
+
+ pub const MAX_STRIDE_SIZE: usize = 16;
+
++ // Safety invariant: this is the pointer width in bytes
+ pub const ALU_ALIGNMENT: usize = 8;
+
++ // Safety invariant: this is a mask for getting the bits of a pointer not aligned to ALU_ALIGNMENT
+ pub const ALU_ALIGNMENT_MASK: usize = 7;
+
++ /// Safety: dst must point to valid space for writing four `usize`s
+ #[inline(always)]
+ unsafe fn unpack_alu(word: usize, second_word: usize, dst: *mut usize) {
+ let first = ((0xFF00_0000_0000_0000usize & word) >> 8) |
+ ((0x00FF_0000_0000_0000usize & word) >> 16) |
+ ((0x0000_FF00_0000_0000usize & word) >> 24) |
+ ((0x0000_00FF_0000_0000usize & word) >> 32);
+ let second = ((0x0000_0000_FF00_0000usize & word) << 24) |
+ ((0x0000_0000_00FF_0000usize & word) << 16) |
+@@ -1115,22 +1394,24 @@ cfg_if! {
+ let third = ((0xFF00_0000_0000_0000usize & second_word) >> 8) |
+ ((0x00FF_0000_0000_0000usize & second_word) >> 16) |
+ ((0x0000_FF00_0000_0000usize & second_word) >> 24) |
+ ((0x0000_00FF_0000_0000usize & second_word) >> 32);
+ let fourth = ((0x0000_0000_FF00_0000usize & second_word) << 24) |
+ ((0x0000_0000_00FF_0000usize & second_word) << 16) |
+ ((0x0000_0000_0000_FF00usize & second_word) << 8) |
+ (0x0000_0000_0000_00FFusize & second_word);
++ // Safety: fn invariant used here
+ *dst = first;
+ *(dst.add(1)) = second;
+ *(dst.add(2)) = third;
+ *(dst.add(3)) = fourth;
+ }
+
++ /// Safety: dst must point to valid space for writing two `usize`s
+ #[inline(always)]
+ unsafe fn pack_alu(first: usize, second: usize, third: usize, fourth: usize, dst: *mut usize) {
+ let word = ((0x00FF0000_00000000usize & first) << 8) |
+ ((0x000000FF_00000000usize & first) << 16) |
+ ((0x00000000_00FF0000usize & first) << 24) |
+ ((0x00000000_000000FFusize & first) << 32) |
+ ((0x00FF0000_00000000usize & second) >> 24) |
+ ((0x000000FF_00000000usize & second) >> 16) |
+@@ -1139,67 +1420,80 @@ cfg_if! {
+ let second_word = ((0x00FF0000_00000000usize & third) << 8) |
+ ((0x000000FF_00000000usize & third) << 16) |
+ ((0x00000000_00FF0000usize & third) << 24) |
+ ((0x00000000_000000FFusize & third) << 32) |
+ ((0x00FF0000_00000000usize & fourth) >> 24) |
+ ((0x000000FF_00000000usize & fourth) >> 16) |
+ ((0x00000000_00FF0000usize & fourth) >> 8) |
+ (0x00000000_000000FFusize & fourth);
++ // Safety: fn invariant used here
+ *dst = word;
+ *(dst.add(1)) = second_word;
+ }
+ } else if #[cfg(all(target_endian = "big", target_pointer_width = "32"))] {
+ // Aligned ALU word, big-endian, 32-bit
+
++ /// Safety invariant: this is the amount of bytes consumed by
++ /// unpack_alu. This will be twice the pointer width, as it consumes two usizes.
++ /// This is also the number of bytes produced by pack_alu.
++ /// This is also the number of u16 code units produced/consumed by unpack_alu/pack_alu respectively.
+ pub const ALU_STRIDE_SIZE: usize = 8;
+
+ pub const MAX_STRIDE_SIZE: usize = 8;
+
++ // Safety invariant: this is the pointer width in bytes
+ pub const ALU_ALIGNMENT: usize = 4;
+
++ // Safety invariant: this is a mask for getting the bits of a pointer not aligned to ALU_ALIGNMENT
+ pub const ALU_ALIGNMENT_MASK: usize = 3;
+
++ /// Safety: dst must point to valid space for writing four `usize`s
+ #[inline(always)]
+ unsafe fn unpack_alu(word: usize, second_word: usize, dst: *mut usize) {
+ let first = ((0xFF00_0000usize & word) >> 8) |
+ ((0x00FF_0000usize & word) >> 16);
+ let second = ((0x0000_FF00usize & word) << 8) |
+ (0x0000_00FFusize & word);
+ let third = ((0xFF00_0000usize & second_word) >> 8) |
+ ((0x00FF_0000usize & second_word) >> 16);
+ let fourth = ((0x0000_FF00usize & second_word) << 8) |
+ (0x0000_00FFusize & second_word);
++ // Safety: fn invariant used here
+ *dst = first;
+ *(dst.add(1)) = second;
+ *(dst.add(2)) = third;
+ *(dst.add(3)) = fourth;
+ }
+
++ /// Safety: dst must point to valid space for writing two `usize`s
+ #[inline(always)]
+ unsafe fn pack_alu(first: usize, second: usize, third: usize, fourth: usize, dst: *mut usize) {
+ let word = ((0x00FF_0000usize & first) << 8) |
+ ((0x0000_00FFusize & first) << 16) |
+ ((0x00FF_0000usize & second) >> 8) |
+ (0x0000_00FFusize & second);
+ let second_word = ((0x00FF_0000usize & third) << 8) |
+ ((0x0000_00FFusize & third) << 16) |
+ ((0x00FF_0000usize & fourth) >> 8) |
+ (0x0000_00FFusize & fourth);
++ // Safety: fn invariant used here
+ *dst = word;
+ *(dst.add(1)) = second_word;
+ }
+ } else {
+ ascii_naive!(ascii_to_ascii, u8, u8);
+ ascii_naive!(ascii_to_basic_latin, u8, u16);
+ ascii_naive!(basic_latin_to_ascii, u16, u8);
+ }
+ }
+
+ cfg_if! {
++ // Safety-usable invariant: this counts the zeroes from the "first byte" of utf-8 data packed into a usize
++ // with the target endianness
+ if #[cfg(target_endian = "little")] {
+ #[allow(dead_code)]
+ #[inline(always)]
+ fn count_zeros(word: usize) -> u32 {
+ word.trailing_zeros()
+ }
+ } else {
+ #[allow(dead_code)]
+@@ -1207,208 +1501,272 @@ cfg_if! {
+ fn count_zeros(word: usize) -> u32 {
+ word.leading_zeros()
+ }
+ }
+ }
+
+ cfg_if! {
+ if #[cfg(all(feature = "simd-accel", target_endian = "little", target_arch = "disabled"))] {
++ /// Safety-usable invariant: Will return the value and position of the first non-ASCII byte in the slice in a Some if found.
++ /// In other words, the first element of the Some is always `> 127`
+ #[inline(always)]
+ pub fn validate_ascii(slice: &[u8]) -> Option<(u8, usize)> {
+ let src = slice.as_ptr();
+ let len = slice.len();
+ let mut offset = 0usize;
++ // Safety: if this check succeeds we're valid for reading/writing at least `stride` elements.
+ if SIMD_STRIDE_SIZE <= len {
+ let len_minus_stride = len - SIMD_STRIDE_SIZE;
+ loop {
++ // Safety: src at offset is valid for a `SIMD_STRIDE_SIZE` read
+ let simd = unsafe { load16_unaligned(src.add(offset)) };
+ if !simd_is_ascii(simd) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // This is `offset > len - SIMD_STRIDE_SIZE` which means we always have at least `SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ while offset < len {
+ let code_unit = slice[offset];
+ if code_unit > 127 {
++ // Safety: Safety-usable invariant upheld here
+ return Some((code_unit, offset));
+ }
+ offset += 1;
+ }
+ None
+ }
+ } else if #[cfg(all(feature = "simd-accel", target_feature = "sse2"))] {
++ /// Safety-usable invariant: will return Some() when it encounters non-ASCII, with the first element in the Some being
++ /// guaranteed to be non-ASCII (> 127), and the second being the offset where it is found
+ #[inline(always)]
+ pub fn validate_ascii(slice: &[u8]) -> Option<(u8, usize)> {
+ let src = slice.as_ptr();
+ let len = slice.len();
+ let mut offset = 0usize;
++ // Safety: if this check succeeds we're valid for reading at least `stride` elements.
+ if SIMD_STRIDE_SIZE <= len {
+ // First, process one unaligned vector
++ // Safety: src is valid for a `SIMD_STRIDE_SIZE` read
+ let simd = unsafe { load16_unaligned(src) };
+ let mask = mask_ascii(simd);
+ if mask != 0 {
+ offset = mask.trailing_zeros() as usize;
+ let non_ascii = unsafe { *src.add(offset) };
+ return Some((non_ascii, offset));
+ }
+ offset = SIMD_STRIDE_SIZE;
++ // Safety: Now that offset has changed we don't yet know how much it is valid for
+
+ // We have now seen 16 ASCII bytes. Let's guess that
+ // there will be enough more to justify more expense
+ // in the case of non-ASCII.
+ // Use aligned reads for the sake of old microachitectures.
++ // Safety: this correctly calculates the number of src_units that need to be read before the remaining list is aligned.
++ // This is by definition less than SIMD_ALIGNMENT, which is defined to be equal to SIMD_STRIDE_SIZE.
+ let until_alignment = unsafe { (SIMD_ALIGNMENT - ((src.add(offset) as usize) & SIMD_ALIGNMENT_MASK)) & SIMD_ALIGNMENT_MASK };
+ // This addition won't overflow, because even in the 32-bit PAE case the
+ // address space holds enough code that the slice length can't be that
+ // close to address space size.
+ // offset now equals SIMD_STRIDE_SIZE, hence times 3 below.
++ //
++ // Safety: if this check succeeds we're valid for reading at least `2 * SIMD_STRIDE_SIZE` elements plus `until_alignment`.
++ // The extra SIMD_STRIDE_SIZE in the condition is because `offset` is already `SIMD_STRIDE_SIZE`.
+ if until_alignment + (SIMD_STRIDE_SIZE * 3) <= len {
+ if until_alignment != 0 {
++ // Safety: this is safe to call since we're valid for this read (and more), and don't care about alignment
++ // This will copy over bytes that get decoded twice since it's not incrementing `offset` by SIMD_STRIDE_SIZE. This is fine.
+ let simd = unsafe { load16_unaligned(src.add(offset)) };
+ let mask = mask_ascii(simd);
+ if mask != 0 {
+ offset += mask.trailing_zeros() as usize;
+ let non_ascii = unsafe { *src.add(offset) };
+ return Some((non_ascii, offset));
+ }
+ offset += until_alignment;
+ }
++ // Safety: At this point we're valid for reading 2*SIMD_STRIDE_SIZE elements
++ // Safety: Now `offset` is aligned for `src`
+ let len_minus_stride_times_two = len - (SIMD_STRIDE_SIZE * 2);
+ loop {
++ // Safety: We were valid for this read, and were aligned.
+ let first = unsafe { load16_aligned(src.add(offset)) };
+ let second = unsafe { load16_aligned(src.add(offset + SIMD_STRIDE_SIZE)) };
+ if !simd_is_ascii(first | second) {
++ // Safety: mask_ascii produces a mask of all the high bits.
+ let mask_first = mask_ascii(first);
+ if mask_first != 0 {
++ // Safety: on little endian systems this will be the number of ascii bytes
++ // before the first non-ascii, i.e. valid for indexing src
++ // TODO SAFETY: What about big-endian systems?
+ offset += mask_first.trailing_zeros() as usize;
+ } else {
+ let mask_second = mask_ascii(second);
++ // Safety: on little endian systems this will be the number of ascii bytes
++ // before the first non-ascii, i.e. valid for indexing src
+ offset += SIMD_STRIDE_SIZE + mask_second.trailing_zeros() as usize;
+ }
++ // Safety: We know this is non-ASCII, and can uphold the safety-usable invariant here
+ let non_ascii = unsafe { *src.add(offset) };
++
+ return Some((non_ascii, offset));
+ }
+ offset += SIMD_STRIDE_SIZE * 2;
++ // Safety: This is `offset > len - 2 * SIMD_STRIDE_SIZE` which means we always have at least `2 * SIMD_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride_times_two {
+ break;
+ }
+ }
++ // Safety: if this check succeeds we're valid for reading at least `SIMD_STRIDE_SIZE`
+ if offset + SIMD_STRIDE_SIZE <= len {
+- let simd = unsafe { load16_aligned(src.add(offset)) };
+- let mask = mask_ascii(simd);
++ // Safety: We were valid for this read, and were aligned.
++ let simd = unsafe { load16_aligned(src.add(offset)) };
++ // Safety: mask_ascii produces a mask of all the high bits.
++ let mask = mask_ascii(simd);
+ if mask != 0 {
++ // Safety: on little endian systems this will be the number of ascii bytes
++ // before the first non-ascii, i.e. valid for indexing src
+ offset += mask.trailing_zeros() as usize;
+ let non_ascii = unsafe { *src.add(offset) };
++ // Safety: We know this is non-ASCII, and can uphold the safety-usable invariant here
+ return Some((non_ascii, offset));
+ }
+ offset += SIMD_STRIDE_SIZE;
+ }
+ } else {
++ // Safety: this is the unaligned branch
+ // At most two iterations, so unroll
++ // Safety: if this check succeeds we're valid for reading at least `SIMD_STRIDE_SIZE`
+ if offset + SIMD_STRIDE_SIZE <= len {
++ // Safety: We're valid for this read but must use an unaligned read
+ let simd = unsafe { load16_unaligned(src.add(offset)) };
+ let mask = mask_ascii(simd);
+ if mask != 0 {
+ offset += mask.trailing_zeros() as usize;
+ let non_ascii = unsafe { *src.add(offset) };
++ // Safety-usable invariant upheld here (same as above)
+ return Some((non_ascii, offset));
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: if this check succeeds we're valid for reading at least `SIMD_STRIDE_SIZE`
+ if offset + SIMD_STRIDE_SIZE <= len {
++ // Safety: We're valid for this read but must use an unaligned read
+ let simd = unsafe { load16_unaligned(src.add(offset)) };
+ let mask = mask_ascii(simd);
+ if mask != 0 {
+ offset += mask.trailing_zeros() as usize;
+ let non_ascii = unsafe { *src.add(offset) };
++ // Safety-usable invariant upheld here (same as above)
+ return Some((non_ascii, offset));
+ }
+ offset += SIMD_STRIDE_SIZE;
+ }
+ }
+ }
+ }
+ while offset < len {
++ // Safety: relies straightforwardly on the `len` invariant
+ let code_unit = unsafe { *(src.add(offset)) };
+ if code_unit > 127 {
++ // Safety-usable invariant upheld here
+ return Some((code_unit, offset));
+ }
+ offset += 1;
+ }
+ None
+ }
+ } else {
++ // Safety-usable invariant: returns byte index of first non-ascii byte
+ #[inline(always)]
+ fn find_non_ascii(word: usize, second_word: usize) -> Option<usize> {
+ let word_masked = word & ASCII_MASK;
+ let second_masked = second_word & ASCII_MASK;
+ if (word_masked | second_masked) == 0 {
++ // Both are ascii, invariant upheld
+ return None;
+ }
+ if word_masked != 0 {
+ let zeros = count_zeros(word_masked);
+- // `zeros` now contains 7 (for the seven bits of non-ASCII)
++ // `zeros` now contains 0 to 7 (for the seven bits of masked ASCII in little endian,
++ // or up to 7 bits of non-ASCII in big endian if the first byte is non-ASCII)
+ // plus 8 times the number of ASCII in text order before the
+ // non-ASCII byte in the little-endian case or 8 times the number of ASCII in
+ // text order before the non-ASCII byte in the big-endian case.
+ let num_ascii = (zeros >> 3) as usize;
++ // Safety-usable invariant upheld here
+ return Some(num_ascii);
+ }
+ let zeros = count_zeros(second_masked);
+- // `zeros` now contains 7 (for the seven bits of non-ASCII)
++ // `zeros` now contains 0 to 7 (for the seven bits of masked ASCII in little endian,
++ // or up to 7 bits of non-ASCII in big endian if the first byte is non-ASCII)
+ // plus 8 times the number of ASCII in text order before the
+ // non-ASCII byte in the little-endian case or 8 times the number of ASCII in
+ // text order before the non-ASCII byte in the big-endian case.
+ let num_ascii = (zeros >> 3) as usize;
++ // Safety-usable invariant upheld here
+ Some(ALU_ALIGNMENT + num_ascii)
+ }
+
++ /// Safety: `src` must be valid for the reads of two `usize`s
++ ///
++ /// Safety-usable invariant: will return byte index of first non-ascii byte
+ #[inline(always)]
+ unsafe fn validate_ascii_stride(src: *const usize) -> Option<usize> {
+ let word = *src;
+ let second_word = *(src.add(1));
+ find_non_ascii(word, second_word)
+ }
+
++ /// Safety-usable invariant: will return Some() when it encounters non-ASCII, with the first element in the Some being
++ /// guaranteed to be non-ASCII (> 127), and the second being the offset where it is found
+ #[cfg_attr(feature = "cargo-clippy", allow(cast_ptr_alignment))]
+ #[inline(always)]
+ pub fn validate_ascii(slice: &[u8]) -> Option<(u8, usize)> {
+ let src = slice.as_ptr();
+ let len = slice.len();
+ let mut offset = 0usize;
+ let mut until_alignment = (ALU_ALIGNMENT - ((src as usize) & ALU_ALIGNMENT_MASK)) & ALU_ALIGNMENT_MASK;
++ // Safety: If this check fails we're valid to read `until_alignment + ALU_STRIDE_SIZE` elements
+ if until_alignment + ALU_STRIDE_SIZE <= len {
+ while until_alignment != 0 {
+ let code_unit = slice[offset];
+ if code_unit > 127 {
++ // Safety-usable invairant upheld here
+ return Some((code_unit, offset));
+ }
+ offset += 1;
+ until_alignment -= 1;
+ }
++ // Safety: At this point we have read until_alignment elements and
++ // are valid for `ALU_STRIDE_SIZE` more.
+ let len_minus_stride = len - ALU_STRIDE_SIZE;
+ loop {
++ // Safety: we were valid for this read
+ let ptr = unsafe { src.add(offset) as *const usize };
+ if let Some(num_ascii) = unsafe { validate_ascii_stride(ptr) } {
+ offset += num_ascii;
++ // Safety-usable invairant upheld here using the invariant from validate_ascii_stride()
+ return Some((unsafe { *(src.add(offset)) }, offset));
+ }
+ offset += ALU_STRIDE_SIZE;
++ // Safety: This is `offset > ALU_STRIDE_SIZE` which means we always have at least `2 * ALU_STRIDE_SIZE` elements to munch next time.
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ while offset < len {
+ let code_unit = slice[offset];
+ if code_unit > 127 {
++ // Safety-usable invairant upheld here
+ return Some((code_unit, offset));
+ }
+ offset += 1;
+ }
+ None
+ }
+
+ }
+@@ -1423,70 +1781,88 @@ cfg_if! {
+ // vector reads without vector writes.
+
+ pub const ALU_STRIDE_SIZE: usize = 8;
+
+ pub const ALU_ALIGNMENT: usize = 4;
+
+ pub const ALU_ALIGNMENT_MASK: usize = 3;
+ } else {
++ // Safety: src points to two valid `usize`s, dst points to four valid `usize`s
+ #[inline(always)]
+ unsafe fn unpack_latin1_stride_alu(src: *const usize, dst: *mut usize) {
++ // Safety: src safety invariant used here
+ let word = *src;
+ let second_word = *(src.add(1));
++ // Safety: dst safety invariant passed down
+ unpack_alu(word, second_word, dst);
+ }
+
++ // Safety: src points to four valid `usize`s, dst points to two valid `usize`s
+ #[inline(always)]
+ unsafe fn pack_latin1_stride_alu(src: *const usize, dst: *mut usize) {
++ // Safety: src safety invariant used here
+ let first = *src;
+ let second = *(src.add(1));
+ let third = *(src.add(2));
+ let fourth = *(src.add(3));
++ // Safety: dst safety invariant passed down
+ pack_alu(first, second, third, fourth, dst);
+ }
+
++ // Safety: src points to two valid `usize`s, dst points to four valid `usize`s
+ #[inline(always)]
+ unsafe fn ascii_to_basic_latin_stride_alu(src: *const usize, dst: *mut usize) -> bool {
++ // Safety: src safety invariant used here
+ let word = *src;
+ let second_word = *(src.add(1));
+ // Check if the words contains non-ASCII
+ if (word & ASCII_MASK) | (second_word & ASCII_MASK) != 0 {
+ return false;
+ }
++ // Safety: dst safety invariant passed down
+ unpack_alu(word, second_word, dst);
+ true
+ }
+
++ // Safety: src points four valid `usize`s, dst points to two valid `usize`s
+ #[inline(always)]
+ unsafe fn basic_latin_to_ascii_stride_alu(src: *const usize, dst: *mut usize) -> bool {
++ // Safety: src safety invariant used here
+ let first = *src;
+ let second = *(src.add(1));
+ let third = *(src.add(2));
+ let fourth = *(src.add(3));
+ if (first & BASIC_LATIN_MASK) | (second & BASIC_LATIN_MASK) | (third & BASIC_LATIN_MASK) | (fourth & BASIC_LATIN_MASK) != 0 {
+ return false;
+ }
++ // Safety: dst safety invariant passed down
+ pack_alu(first, second, third, fourth, dst);
+ true
+ }
+
++ // Safety: src, dst both point to two valid `usize`s each
++ // Safety-usable invariant: Will return byte index of first non-ascii byte.
+ #[inline(always)]
+ unsafe fn ascii_to_ascii_stride(src: *const usize, dst: *mut usize) -> Option<usize> {
++ // Safety: src safety invariant used here
+ let word = *src;
+ let second_word = *(src.add(1));
++ // Safety: src safety invariant used here
+ *dst = word;
+ *(dst.add(1)) = second_word;
++ // Relies on safety-usable invariant here
+ find_non_ascii(word, second_word)
+ }
+
+ basic_latin_alu!(ascii_to_basic_latin, u8, u16, ascii_to_basic_latin_stride_alu);
+ basic_latin_alu!(basic_latin_to_ascii, u16, u8, basic_latin_to_ascii_stride_alu);
+ latin1_alu!(unpack_latin1, u8, u16, unpack_latin1_stride_alu);
+ latin1_alu!(pack_latin1, u16, u8, pack_latin1_stride_alu);
++ // Safety invariant upheld: ascii_to_ascii_stride will return byte index of first non-ascii if found
+ ascii_alu!(ascii_to_ascii, u8, u8, ascii_to_ascii_stride);
+ }
+ }
+
+ pub fn ascii_valid_up_to(bytes: &[u8]) -> usize {
+ match validate_ascii(bytes) {
+ None => bytes.len(),
+ Some((_, num_valid)) => num_valid,
+diff --git a/third_party/rust/encoding_rs/src/handles.rs b/third_party/rust/encoding_rs/src/handles.rs
+--- third_party/rust/encoding_rs/src/handles.rs
++++ third_party/rust/encoding_rs/src/handles.rs
+@@ -29,17 +29,17 @@ use crate::simd_funcs::*;
+ #[cfg(all(
+ feature = "simd-accel",
+ any(
+ target_feature = "sse2",
+ all(target_endian = "little", target_arch = "aarch64"),
+ all(target_endian = "little", target_feature = "neon")
+ )
+ ))]
+-use packed_simd::u16x8;
++use core::simd::u16x8;
+
+ use super::DecoderResult;
+ use super::EncoderResult;
+ use crate::ascii::*;
+ use crate::utf_8::convert_utf8_to_utf16_up_to_invalid;
+ use crate::utf_8::utf8_valid_up_to;
+
+ pub enum Space<T> {
+@@ -85,84 +85,100 @@ impl Endian for LittleEndian {
+ const OPPOSITE_ENDIAN: bool = false;
+
+ #[cfg(target_endian = "big")]
+ const OPPOSITE_ENDIAN: bool = true;
+ }
+
+ #[derive(Debug, Copy, Clone)]
+ struct UnalignedU16Slice {
++ // Safety invariant: ptr must be valid for reading 2*len bytes
+ ptr: *const u8,
+ len: usize,
+ }
+
+ impl UnalignedU16Slice {
++ /// Safety: ptr must be valid for reading 2*len bytes
+ #[inline(always)]
+ pub unsafe fn new(ptr: *const u8, len: usize) -> UnalignedU16Slice {
++ // Safety: field invariant passed up to caller here
+ UnalignedU16Slice { ptr, len }
+ }
+
+ #[inline(always)]
+ pub fn trim_last(&mut self) {
+ assert!(self.len > 0);
++ // Safety: invariant upheld here: a slice is still valid with a shorter len
+ self.len -= 1;
+ }
+
+ #[inline(always)]
+ pub fn at(&self, i: usize) -> u16 {
+ use core::mem::MaybeUninit;
+
+ assert!(i < self.len);
+ unsafe {
+ let mut u: MaybeUninit<u16> = MaybeUninit::uninit();
++ // Safety: i is at most len - 1, which works here
+ ::core::ptr::copy_nonoverlapping(self.ptr.add(i * 2), u.as_mut_ptr() as *mut u8, 2);
++ // Safety: valid read above lets us do this
+ u.assume_init()
+ }
+ }
+
+ #[cfg(feature = "simd-accel")]
+ #[inline(always)]
+ pub fn simd_at(&self, i: usize) -> u16x8 {
++ // Safety: i/len are on the scale of u16s, each one corresponds to 2 u8s
+ assert!(i + SIMD_STRIDE_SIZE / 2 <= self.len);
+ let byte_index = i * 2;
++ // Safety: load16_unaligned needs SIMD_STRIDE_SIZE=16 u8 elements to read,
++ // or 16/2 = 8 u16 elements to read.
++ // We have checked that we have at least that many above.
++
+ unsafe { to_u16_lanes(load16_unaligned(self.ptr.add(byte_index))) }
+ }
+
+ #[inline(always)]
+ pub fn len(&self) -> usize {
+ self.len
+ }
+
+ #[inline(always)]
+ pub fn tail(&self, from: usize) -> UnalignedU16Slice {
+ // XXX the return value should be restricted not to
+ // outlive self.
+ assert!(from <= self.len);
++ // Safety: This upholds the same invariant: `from` is in bounds and we're returning a shorter slice
+ unsafe { UnalignedU16Slice::new(self.ptr.add(from * 2), self.len - from) }
+ }
+
+ #[cfg(feature = "simd-accel")]
+ #[inline(always)]
+ pub fn copy_bmp_to<E: Endian>(&self, other: &mut [u16]) -> Option<(u16, usize)> {
+ assert!(self.len <= other.len());
+ let mut offset = 0;
++ // Safety: SIMD_STRIDE_SIZE is measured in bytes, whereas len is in u16s. We check we can
++ // munch SIMD_STRIDE_SIZE / 2 u16s which means we can write SIMD_STRIDE_SIZE u8s
+ if SIMD_STRIDE_SIZE / 2 <= self.len {
+ let len_minus_stride = self.len - SIMD_STRIDE_SIZE / 2;
+ loop {
+ let mut simd = self.simd_at(offset);
+ if E::OPPOSITE_ENDIAN {
+ simd = simd_byte_swap(simd);
+ }
++ // Safety: we have enough space on the other side to write this
+ unsafe {
+ store8_unaligned(other.as_mut_ptr().add(offset), simd);
+ }
+ if contains_surrogates(simd) {
+ break;
+ }
+ offset += SIMD_STRIDE_SIZE / 2;
++ // Safety: This ensures we still have space for writing SIMD_STRIDE_SIZE u8s
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ while offset < self.len {
+ let unit = swap_if_opposite_endian::<E>(self.at(offset));
+ other[offset] = unit;
+@@ -231,33 +247,37 @@ fn copy_unaligned_basic_latin_to_ascii<E
+ #[cfg(feature = "simd-accel")]
+ #[inline(always)]
+ fn copy_unaligned_basic_latin_to_ascii<E: Endian>(
+ src: UnalignedU16Slice,
+ dst: &mut [u8],
+ ) -> CopyAsciiResult<usize, (u16, usize)> {
+ let len = ::core::cmp::min(src.len(), dst.len());
+ let mut offset = 0;
++ // Safety: This check ensures we are able to read/write at least SIMD_STRIDE_SIZE elements
+ if SIMD_STRIDE_SIZE <= len {
+ let len_minus_stride = len - SIMD_STRIDE_SIZE;
+ loop {
+ let mut first = src.simd_at(offset);
+ let mut second = src.simd_at(offset + (SIMD_STRIDE_SIZE / 2));
+ if E::OPPOSITE_ENDIAN {
+ first = simd_byte_swap(first);
+ second = simd_byte_swap(second);
+ }
+ if !simd_is_basic_latin(first | second) {
+ break;
+ }
+ let packed = simd_pack(first, second);
++ // Safety: We are able to write SIMD_STRIDE_SIZE elements in this iteration
+ unsafe {
+ store16_unaligned(dst.as_mut_ptr().add(offset), packed);
+ }
+ offset += SIMD_STRIDE_SIZE;
++ // Safety: This is `offset > len - SIMD_STRIDE_SIZE`, which ensures that we can write at least SIMD_STRIDE_SIZE elements
++ // in the next iteration
+ if offset > len_minus_stride {
+ break;
+ }
+ }
+ }
+ copy_unaligned_basic_latin_to_ascii_alu::<E>(src.tail(offset), &mut dst[offset..], offset)
+ }
+
+@@ -632,94 +652,106 @@ impl<'a> Utf16Destination<'a> {
+ #[inline(always)]
+ fn write_astral(&mut self, astral: u32) {
+ debug_assert!(astral > 0xFFFF);
+ debug_assert!(astral <= 0x10_FFFF);
+ self.write_code_unit((0xD7C0 + (astral >> 10)) as u16);
+ self.write_code_unit((0xDC00 + (astral & 0x3FF)) as u16);
+ }
+ #[inline(always)]
+- pub fn write_surrogate_pair(&mut self, high: u16, low: u16) {
++ fn write_surrogate_pair(&mut self, high: u16, low: u16) {
+ self.write_code_unit(high);
+ self.write_code_unit(low);
+ }
+ #[inline(always)]
+ fn write_big5_combination(&mut self, combined: u16, combining: u16) {
+ self.write_bmp_excl_ascii(combined);
+ self.write_bmp_excl_ascii(combining);
+ }
++ // Safety-usable invariant: CopyAsciiResult::GoOn will only contain bytes >=0x80
+ #[inline(always)]
+ pub fn copy_ascii_from_check_space_bmp<'b>(
+ &'b mut self,
+ source: &mut ByteSource,
+ ) -> CopyAsciiResult<(DecoderResult, usize, usize), (u8, Utf16BmpHandle<'b, 'a>)> {
+ let non_ascii_ret = {
+ let src_remaining = &source.slice[source.pos..];
+ let dst_remaining = &mut self.slice[self.pos..];
+ let (pending, length) = if dst_remaining.len() < src_remaining.len() {
+ (DecoderResult::OutputFull, dst_remaining.len())
+ } else {
+ (DecoderResult::InputEmpty, src_remaining.len())
+ };
++ // Safety: This function is documented as needing valid pointers for src/dest and len, which
++ // is true since we've passed the minumum length of the two
+ match unsafe {
+ ascii_to_basic_latin(src_remaining.as_ptr(), dst_remaining.as_mut_ptr(), length)
+ } {
+ None => {
+ source.pos += length;
+ self.pos += length;
+ return CopyAsciiResult::Stop((pending, source.pos, self.pos));
+ }
++ // Safety: the function is documented as returning bytes >=0x80 in the Some
+ Some((non_ascii, consumed)) => {
+ source.pos += consumed;
+ self.pos += consumed;
+ source.pos += 1; // +1 for non_ascii
++ // Safety: non-ascii bubbled out here
+ non_ascii
+ }
+ }
+ };
++ // Safety: non-ascii returned here
+ CopyAsciiResult::GoOn((non_ascii_ret, Utf16BmpHandle::new(self)))
+ }
++ // Safety-usable invariant: CopyAsciiResult::GoOn will only contain bytes >=0x80
+ #[inline(always)]
+ pub fn copy_ascii_from_check_space_astral<'b>(
+ &'b mut self,
+ source: &mut ByteSource,
+ ) -> CopyAsciiResult<(DecoderResult, usize, usize), (u8, Utf16AstralHandle<'b, 'a>)> {
+ let non_ascii_ret = {
+ let dst_len = self.slice.len();
+ let src_remaining = &source.slice[source.pos..];
+ let dst_remaining = &mut self.slice[self.pos..];
+ let (pending, length) = if dst_remaining.len() < src_remaining.len() {
+ (DecoderResult::OutputFull, dst_remaining.len())
+ } else {
+ (DecoderResult::InputEmpty, src_remaining.len())
+ };
++ // Safety: This function is documented as needing valid pointers for src/dest and len, which
++ // is true since we've passed the minumum length of the two
+ match unsafe {
+ ascii_to_basic_latin(src_remaining.as_ptr(), dst_remaining.as_mut_ptr(), length)
+ } {
+ None => {
+ source.pos += length;
+ self.pos += length;
+ return CopyAsciiResult::Stop((pending, source.pos, self.pos));
+ }
++ // Safety: the function is documented as returning bytes >=0x80 in the Some
+ Some((non_ascii, consumed)) => {
+ source.pos += consumed;
+ self.pos += consumed;
+ if self.pos + 1 < dst_len {
+ source.pos += 1; // +1 for non_ascii
++ // Safety: non-ascii bubbled out here
+ non_ascii
+ } else {
+ return CopyAsciiResult::Stop((
+ DecoderResult::OutputFull,
+ source.pos,
+ self.pos,
+ ));
+ }
+ }
+ }
+ };
++ // Safety: non-ascii returned here
+ CopyAsciiResult::GoOn((non_ascii_ret, Utf16AstralHandle::new(self)))
+ }
+ #[inline(always)]
+ pub fn copy_utf8_up_to_invalid_from(&mut self, source: &mut ByteSource) {
+ let src_remaining = &source.slice[source.pos..];
+ let dst_remaining = &mut self.slice[self.pos..];
+ let (read, written) = convert_utf8_to_utf16_up_to_invalid(src_remaining, dst_remaining);
+ source.pos += read;
+diff --git a/third_party/rust/encoding_rs/src/lib.rs b/third_party/rust/encoding_rs/src/lib.rs
+--- third_party/rust/encoding_rs/src/lib.rs
++++ third_party/rust/encoding_rs/src/lib.rs
+@@ -684,37 +684,26 @@
+ //! <tr><td>TIS-620</td><td>windows-874</td></tr>
+ //! </tbody>
+ //! </table>
+ //!
+ //! See the section [_UTF-16LE, UTF-16BE and Unicode Encoding Schemes_](#utf-16le-utf-16be-and-unicode-encoding-schemes)
+ //! for discussion about the UTF-16 family.
+
+ #![no_std]
+-#![cfg_attr(feature = "simd-accel", feature(core_intrinsics))]
++#![cfg_attr(feature = "simd-accel", feature(core_intrinsics, portable_simd))]
+
+ #[cfg(feature = "alloc")]
+ #[cfg_attr(test, macro_use)]
+ extern crate alloc;
+
+ extern crate core;
+ #[macro_use]
+ extern crate cfg_if;
+
+-#[cfg(all(
+- feature = "simd-accel",
+- any(
+- target_feature = "sse2",
+- all(target_endian = "little", target_arch = "aarch64"),
+- all(target_endian = "little", target_feature = "neon")
+- )
+-))]
+-#[macro_use(shuffle)]
+-extern crate packed_simd;
+-
+ #[cfg(feature = "serde")]
+ extern crate serde;
+
+ #[cfg(all(test, feature = "serde"))]
+ extern crate bincode;
+ #[cfg(all(test, feature = "serde"))]
+ #[macro_use]
+ extern crate serde_derive;
+diff --git a/third_party/rust/encoding_rs/src/mem.rs b/third_party/rust/encoding_rs/src/mem.rs
+--- third_party/rust/encoding_rs/src/mem.rs
++++ third_party/rust/encoding_rs/src/mem.rs
+@@ -111,16 +111,21 @@ macro_rules! by_unit_check_alu {
+ until_alignment -= 1;
+ }
+ if accu >= $bound {
+ return false;
+ }
+ }
+ let len_minus_stride = len - ALU_ALIGNMENT / unit_size;
+ if offset + (4 * (ALU_ALIGNMENT / unit_size)) <= len {
++ // Safety: the above check lets us perform 4 consecutive reads of
++ // length ALU_ALIGNMENT / unit_size. ALU_ALIGNMENT is the size of usize, and unit_size
++ // is the size of the `src` pointer, so this is equal to performing four usize reads.
++ //
++ // This invariant is upheld on all loop iterations
+ let len_minus_unroll = len - (4 * (ALU_ALIGNMENT / unit_size));
+ loop {
+ let unroll_accu = unsafe { *(src.add(offset) as *const usize) }
+ | unsafe {
+ *(src.add(offset + (ALU_ALIGNMENT / unit_size)) as *const usize)
+ }
+ | unsafe {
+ *(src.add(offset + (2 * (ALU_ALIGNMENT / unit_size)))
+@@ -129,22 +134,24 @@ macro_rules! by_unit_check_alu {
+ | unsafe {
+ *(src.add(offset + (3 * (ALU_ALIGNMENT / unit_size)))
+ as *const usize)
+ };
+ if unroll_accu & $mask != 0 {
+ return false;
+ }
+ offset += 4 * (ALU_ALIGNMENT / unit_size);
++ // Safety: this check lets us continue to perform the 4 reads earlier
+ if offset > len_minus_unroll {
+ break;
+ }
+ }
+ }
+ while offset <= len_minus_stride {
++ // Safety: the above check lets us perform one usize read.
+ accu |= unsafe { *(src.add(offset) as *const usize) };
+ offset += ALU_ALIGNMENT / unit_size;
+ }
+ }
+ }
+ for &unit in &buffer[offset..] {
+ accu |= unit as usize;
+ }
+@@ -184,16 +191,21 @@ macro_rules! by_unit_check_simd {
+ until_alignment -= 1;
+ }
+ if accu >= $bound {
+ return false;
+ }
+ }
+ let len_minus_stride = len - SIMD_STRIDE_SIZE / unit_size;
+ if offset + (4 * (SIMD_STRIDE_SIZE / unit_size)) <= len {
++ // Safety: the above check lets us perform 4 consecutive reads of
++ // length SIMD_STRIDE_SIZE / unit_size. SIMD_STRIDE_SIZE is the size of $simd_ty, and unit_size
++ // is the size of the `src` pointer, so this is equal to performing four $simd_ty reads.
++ //
++ // This invariant is upheld on all loop iterations
+ let len_minus_unroll = len - (4 * (SIMD_STRIDE_SIZE / unit_size));
+ loop {
+ let unroll_accu = unsafe { *(src.add(offset) as *const $simd_ty) }
+ | unsafe {
+ *(src.add(offset + (SIMD_STRIDE_SIZE / unit_size))
+ as *const $simd_ty)
+ }
+ | unsafe {
+@@ -203,23 +215,25 @@ macro_rules! by_unit_check_simd {
+ | unsafe {
+ *(src.add(offset + (3 * (SIMD_STRIDE_SIZE / unit_size)))
+ as *const $simd_ty)
+ };
+ if !$func(unroll_accu) {
+ return false;
+ }
+ offset += 4 * (SIMD_STRIDE_SIZE / unit_size);
++ // Safety: this check lets us continue to perform the 4 reads earlier
+ if offset > len_minus_unroll {
+ break;
+ }
+ }
+ }
+ let mut simd_accu = $splat;
+ while offset <= len_minus_stride {
++ // Safety: the above check lets us perform one $simd_ty read.
+ simd_accu = simd_accu | unsafe { *(src.add(offset) as *const $simd_ty) };
+ offset += SIMD_STRIDE_SIZE / unit_size;
+ }
+ if !$func(simd_accu) {
+ return false;
+ }
+ }
+ }
+@@ -229,18 +243,18 @@ macro_rules! by_unit_check_simd {
+ accu < $bound
+ }
+ };
+ }
+
+ cfg_if! {
+ if #[cfg(all(feature = "simd-accel", any(target_feature = "sse2", all(target_endian = "little", target_arch = "aarch64"), all(target_endian = "little", target_feature = "neon"))))] {
+ use crate::simd_funcs::*;
+- use packed_simd::u8x16;
+- use packed_simd::u16x8;
++ use core::simd::u8x16;
++ use core::simd::u16x8;
+
+ const SIMD_ALIGNMENT: usize = 16;
+
+ const SIMD_ALIGNMENT_MASK: usize = 15;
+
+ by_unit_check_simd!(is_ascii_impl, u8, u8x16::splat(0), u8x16, 0x80, simd_is_ascii);
+ by_unit_check_simd!(is_basic_latin_impl, u16, u16x8::splat(0), u16x8, 0x80, simd_is_basic_latin);
+ by_unit_check_simd!(is_utf16_latin1_impl, u16, u16x8::splat(0), u16x8, 0x100, simd_is_latin1);
+diff --git a/third_party/rust/encoding_rs/src/simd_funcs.rs b/third_party/rust/encoding_rs/src/simd_funcs.rs
+--- third_party/rust/encoding_rs/src/simd_funcs.rs
++++ third_party/rust/encoding_rs/src/simd_funcs.rs
+@@ -2,65 +2,84 @@
+ // file at the top-level directory of this distribution.
+ //
+ // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+ // https://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+ // <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your
+ // option. This file may not be copied, modified, or distributed
+ // except according to those terms.
+
+-use packed_simd::u16x8;
+-use packed_simd::u8x16;
+-use packed_simd::IntoBits;
++use any_all_workaround::all_mask16x8;
++use any_all_workaround::all_mask8x16;
++use any_all_workaround::any_mask16x8;
++use any_all_workaround::any_mask8x16;
++use core::simd::cmp::SimdPartialEq;
++use core::simd::cmp::SimdPartialOrd;
++use core::simd::mask16x8;
++use core::simd::mask8x16;
++use core::simd::simd_swizzle;
++use core::simd::u16x8;
++use core::simd::u8x16;
++use core::simd::ToBytes;
+
+ // TODO: Migrate unaligned access to stdlib code if/when the RFC
+ // https://github.com/rust-lang/rfcs/pull/1725 is implemented.
+
++/// Safety invariant: ptr must be valid for an unaligned read of 16 bytes
+ #[inline(always)]
+ pub unsafe fn load16_unaligned(ptr: *const u8) -> u8x16 {
+- let mut simd = ::core::mem::uninitialized();
+- ::core::ptr::copy_nonoverlapping(ptr, &mut simd as *mut u8x16 as *mut u8, 16);
+- simd
++ let mut simd = ::core::mem::MaybeUninit::<u8x16>::uninit();
++ ::core::ptr::copy_nonoverlapping(ptr, simd.as_mut_ptr() as *mut u8, 16);
++ // Safety: copied 16 bytes of initialized memory into this, it is now initialized
++ simd.assume_init()
+ }
+
++/// Safety invariant: ptr must be valid for an aligned-for-u8x16 read of 16 bytes
+ #[allow(dead_code)]
+ #[inline(always)]
+ pub unsafe fn load16_aligned(ptr: *const u8) -> u8x16 {
+ *(ptr as *const u8x16)
+ }
+
++/// Safety invariant: ptr must be valid for an unaligned store of 16 bytes
+ #[inline(always)]
+ pub unsafe fn store16_unaligned(ptr: *mut u8, s: u8x16) {
+ ::core::ptr::copy_nonoverlapping(&s as *const u8x16 as *const u8, ptr, 16);
+ }
+
++/// Safety invariant: ptr must be valid for an aligned-for-u8x16 store of 16 bytes
+ #[allow(dead_code)]
+ #[inline(always)]
+ pub unsafe fn store16_aligned(ptr: *mut u8, s: u8x16) {
+ *(ptr as *mut u8x16) = s;
+ }
+
++/// Safety invariant: ptr must be valid for an unaligned read of 16 bytes
+ #[inline(always)]
+ pub unsafe fn load8_unaligned(ptr: *const u16) -> u16x8 {
+- let mut simd = ::core::mem::uninitialized();
+- ::core::ptr::copy_nonoverlapping(ptr as *const u8, &mut simd as *mut u16x8 as *mut u8, 16);
+- simd
++ let mut simd = ::core::mem::MaybeUninit::<u16x8>::uninit();
++ ::core::ptr::copy_nonoverlapping(ptr as *const u8, simd.as_mut_ptr() as *mut u8, 16);
++ // Safety: copied 16 bytes of initialized memory into this, it is now initialized
++ simd.assume_init()
+ }
+
++/// Safety invariant: ptr must be valid for an aligned-for-u16x8 read of 16 bytes
+ #[allow(dead_code)]
+ #[inline(always)]
+ pub unsafe fn load8_aligned(ptr: *const u16) -> u16x8 {
+ *(ptr as *const u16x8)
+ }
+
++/// Safety invariant: ptr must be valid for an unaligned store of 16 bytes
+ #[inline(always)]
+ pub unsafe fn store8_unaligned(ptr: *mut u16, s: u16x8) {
+ ::core::ptr::copy_nonoverlapping(&s as *const u16x8 as *const u8, ptr as *mut u8, 16);
+ }
+
++/// Safety invariant: ptr must be valid for an aligned-for-u16x8 store of 16 bytes
+ #[allow(dead_code)]
+ #[inline(always)]
+ pub unsafe fn store8_aligned(ptr: *mut u16, s: u16x8) {
+ *(ptr as *mut u16x8) = s;
+ }
+
+ cfg_if! {
+ if #[cfg(all(target_feature = "sse2", target_arch = "x86_64"))] {
+@@ -95,234 +114,241 @@ cfg_if! {
+ pub fn simd_byte_swap(s: u16x8) -> u16x8 {
+ let left = s << 8;
+ let right = s >> 8;
+ left | right
+ }
+
+ #[inline(always)]
+ pub fn to_u16_lanes(s: u8x16) -> u16x8 {
+- s.into_bits()
++ u16x8::from_ne_bytes(s)
+ }
+
+ cfg_if! {
+ if #[cfg(target_feature = "sse2")] {
+
+ // Expose low-level mask instead of higher-level conclusion,
+ // because the non-ASCII case would perform less well otherwise.
++ // Safety-usable invariant: This returned value is whether each high bit is set
+ #[inline(always)]
+ pub fn mask_ascii(s: u8x16) -> i32 {
+ unsafe {
+- _mm_movemask_epi8(s.into_bits())
++ _mm_movemask_epi8(s.into())
+ }
+ }
+
+ } else {
+
+ }
+ }
+
+ cfg_if! {
+ if #[cfg(target_feature = "sse2")] {
+ #[inline(always)]
+ pub fn simd_is_ascii(s: u8x16) -> bool {
+ unsafe {
+- _mm_movemask_epi8(s.into_bits()) == 0
++ // Safety: We have cfg()d the correct platform
++ _mm_movemask_epi8(s.into()) == 0
+ }
+ }
+ } else if #[cfg(target_arch = "aarch64")]{
+ #[inline(always)]
+ pub fn simd_is_ascii(s: u8x16) -> bool {
+ unsafe {
+- vmaxvq_u8(s.into_bits()) < 0x80
++ // Safety: We have cfg()d the correct platform
++ vmaxvq_u8(s.into()) < 0x80
+ }
+ }
+ } else {
+ #[inline(always)]
+ pub fn simd_is_ascii(s: u8x16) -> bool {
+ // This optimizes better on ARM than
+ // the lt formulation.
+ let highest_ascii = u8x16::splat(0x7F);
+- !s.gt(highest_ascii).any()
++ !any_mask8x16(s.simd_gt(highest_ascii))
+ }
+ }
+ }
+
+ cfg_if! {
+ if #[cfg(target_feature = "sse2")] {
+ #[inline(always)]
+ pub fn simd_is_str_latin1(s: u8x16) -> bool {
+ if simd_is_ascii(s) {
+ return true;
+ }
+ let above_str_latin1 = u8x16::splat(0xC4);
+- s.lt(above_str_latin1).all()
++ s.simd_lt(above_str_latin1).all()
+ }
+ } else if #[cfg(target_arch = "aarch64")]{
+ #[inline(always)]
+ pub fn simd_is_str_latin1(s: u8x16) -> bool {
+ unsafe {
+- vmaxvq_u8(s.into_bits()) < 0xC4
++ // Safety: We have cfg()d the correct platform
++ vmaxvq_u8(s.into()) < 0xC4
+ }
+ }
+ } else {
+ #[inline(always)]
+ pub fn simd_is_str_latin1(s: u8x16) -> bool {
+ let above_str_latin1 = u8x16::splat(0xC4);
+- s.lt(above_str_latin1).all()
++ all_mask8x16(s.simd_lt(above_str_latin1))
+ }
+ }
+ }
+
+ cfg_if! {
+ if #[cfg(target_arch = "aarch64")]{
+ #[inline(always)]
+ pub fn simd_is_basic_latin(s: u16x8) -> bool {
+ unsafe {
+- vmaxvq_u16(s.into_bits()) < 0x80
++ // Safety: We have cfg()d the correct platform
++ vmaxvq_u16(s.into()) < 0x80
+ }
+ }
+
+ #[inline(always)]
+ pub fn simd_is_latin1(s: u16x8) -> bool {
+ unsafe {
+- vmaxvq_u16(s.into_bits()) < 0x100
++ // Safety: We have cfg()d the correct platform
++ vmaxvq_u16(s.into()) < 0x100
+ }
+ }
+ } else {
+ #[inline(always)]
+ pub fn simd_is_basic_latin(s: u16x8) -> bool {
+ let above_ascii = u16x8::splat(0x80);
+- s.lt(above_ascii).all()
++ all_mask16x8(s.simd_lt(above_ascii))
+ }
+
+ #[inline(always)]
+ pub fn simd_is_latin1(s: u16x8) -> bool {
+ // For some reason, on SSE2 this formulation
+ // seems faster in this case while the above
+ // function is better the other way round...
+ let highest_latin1 = u16x8::splat(0xFF);
+- !s.gt(highest_latin1).any()
++ !any_mask16x8(s.simd_gt(highest_latin1))
+ }
+ }
+ }
+
+ #[inline(always)]
+ pub fn contains_surrogates(s: u16x8) -> bool {
+ let mask = u16x8::splat(0xF800);
+ let surrogate_bits = u16x8::splat(0xD800);
+- (s & mask).eq(surrogate_bits).any()
++ any_mask16x8((s & mask).simd_eq(surrogate_bits))
+ }
+
+ cfg_if! {
+ if #[cfg(target_arch = "aarch64")]{
+ macro_rules! aarch64_return_false_if_below_hebrew {
+ ($s:ident) => ({
+ unsafe {
+- if vmaxvq_u16($s.into_bits()) < 0x0590 {
++ // Safety: We have cfg()d the correct platform
++ if vmaxvq_u16($s.into()) < 0x0590 {
+ return false;
+ }
+ }
+ })
+ }
+
+ macro_rules! non_aarch64_return_false_if_all {
+ ($s:ident) => ()
+ }
+ } else {
+ macro_rules! aarch64_return_false_if_below_hebrew {
+ ($s:ident) => ()
+ }
+
+ macro_rules! non_aarch64_return_false_if_all {
+ ($s:ident) => ({
+- if $s.all() {
++ if all_mask16x8($s) {
+ return false;
+ }
+ })
+ }
+ }
+ }
+
+ macro_rules! in_range16x8 {
+ ($s:ident, $start:expr, $end:expr) => {{
+ // SIMD sub is wrapping
+- ($s - u16x8::splat($start)).lt(u16x8::splat($end - $start))
++ ($s - u16x8::splat($start)).simd_lt(u16x8::splat($end - $start))
+ }};
+ }
+
+ #[inline(always)]
+ pub fn is_u16x8_bidi(s: u16x8) -> bool {
+ // We try to first quickly refute the RTLness of the vector. If that
+ // fails, we do the real RTL check, so in that case we end up wasting
+ // the work for the up-front quick checks. Even the quick-check is
+ // two-fold in order to return `false` ASAP if everything is below
+ // Hebrew.
+
+ aarch64_return_false_if_below_hebrew!(s);
+
+- let below_hebrew = s.lt(u16x8::splat(0x0590));
++ let below_hebrew = s.simd_lt(u16x8::splat(0x0590));
+
+ non_aarch64_return_false_if_all!(below_hebrew);
+
+- if (below_hebrew | in_range16x8!(s, 0x0900, 0x200F) | in_range16x8!(s, 0x2068, 0xD802)).all() {
++ if all_mask16x8(
++ below_hebrew | in_range16x8!(s, 0x0900, 0x200F) | in_range16x8!(s, 0x2068, 0xD802),
++ ) {
+ return false;
+ }
+
+ // Quick refutation failed. Let's do the full check.
+
+- (in_range16x8!(s, 0x0590, 0x0900)
+- | in_range16x8!(s, 0xFB1D, 0xFE00)
+- | in_range16x8!(s, 0xFE70, 0xFEFF)
+- | in_range16x8!(s, 0xD802, 0xD804)
+- | in_range16x8!(s, 0xD83A, 0xD83C)
+- | s.eq(u16x8::splat(0x200F))
+- | s.eq(u16x8::splat(0x202B))
+- | s.eq(u16x8::splat(0x202E))
+- | s.eq(u16x8::splat(0x2067)))
+- .any()
++ any_mask16x8(
++ (in_range16x8!(s, 0x0590, 0x0900)
++ | in_range16x8!(s, 0xFB1D, 0xFE00)
++ | in_range16x8!(s, 0xFE70, 0xFEFF)
++ | in_range16x8!(s, 0xD802, 0xD804)
++ | in_range16x8!(s, 0xD83A, 0xD83C)
++ | s.simd_eq(u16x8::splat(0x200F))
++ | s.simd_eq(u16x8::splat(0x202B))
++ | s.simd_eq(u16x8::splat(0x202E))
++ | s.simd_eq(u16x8::splat(0x2067))),
++ )
+ }
+
+ #[inline(always)]
+ pub fn simd_unpack(s: u8x16) -> (u16x8, u16x8) {
+- unsafe {
+- let first: u8x16 = shuffle!(
+- s,
+- u8x16::splat(0),
+- [0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23]
+- );
+- let second: u8x16 = shuffle!(
+- s,
+- u8x16::splat(0),
+- [8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31]
+- );
+- (first.into_bits(), second.into_bits())
+- }
++ let first: u8x16 = simd_swizzle!(
++ s,
++ u8x16::splat(0),
++ [0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23]
++ );
++ let second: u8x16 = simd_swizzle!(
++ s,
++ u8x16::splat(0),
++ [8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31]
++ );
++ (u16x8::from_ne_bytes(first), u16x8::from_ne_bytes(second))
+ }
+
+ cfg_if! {
+ if #[cfg(target_feature = "sse2")] {
+ #[inline(always)]
+ pub fn simd_pack(a: u16x8, b: u16x8) -> u8x16 {
+ unsafe {
+- _mm_packus_epi16(a.into_bits(), b.into_bits()).into_bits()
++ // Safety: We have cfg()d the correct platform
++ _mm_packus_epi16(a.into(), b.into()).into()
+ }
+ }
+ } else {
+ #[inline(always)]
+ pub fn simd_pack(a: u16x8, b: u16x8) -> u8x16 {
+- unsafe {
+- let first: u8x16 = a.into_bits();
+- let second: u8x16 = b.into_bits();
+- shuffle!(
+- first,
+- second,
+- [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]
+- )
+- }
++ let first: u8x16 = a.to_ne_bytes();
++ let second: u8x16 = b.to_ne_bytes();
++ simd_swizzle!(
++ first,
++ second,
++ [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]
++ )
+ }
+ }
+ }
+
+ #[cfg(test)]
+ mod tests {
+ use super::*;
+ use alloc::vec::Vec;
+diff --git a/third_party/rust/encoding_rs/src/single_byte.rs b/third_party/rust/encoding_rs/src/single_byte.rs
+--- third_party/rust/encoding_rs/src/single_byte.rs
++++ third_party/rust/encoding_rs/src/single_byte.rs
+@@ -48,16 +48,19 @@ impl SingleByteDecoder {
+ CopyAsciiResult::GoOn((mut non_ascii, mut handle)) => 'middle: loop {
+ // Start non-boilerplate
+ //
+ // Since the non-ASCIIness of `non_ascii` is hidden from
+ // the optimizer, it can't figure out that it's OK to
+ // statically omit the bound check when accessing
+ // `[u16; 128]` with an index
+ // `non_ascii as usize - 0x80usize`.
++ //
++ // Safety: `non_ascii` is a u8 byte >=0x80, from the invariants
++ // on Utf8Destination::copy_ascii_from_check_space_bmp()
+ let mapped =
+ unsafe { *(self.table.get_unchecked(non_ascii as usize - 0x80usize)) };
+ // let mapped = self.table[non_ascii as usize - 0x80usize];
+ if mapped == 0u16 {
+ return (
+ DecoderResult::Malformed(1, 0),
+ source.consumed(),
+ handle.written(),
+@@ -146,82 +149,103 @@ impl SingleByteDecoder {
+ dst: &mut [u16],
+ _last: bool,
+ ) -> (DecoderResult, usize, usize) {
+ let (pending, length) = if dst.len() < src.len() {
+ (DecoderResult::OutputFull, dst.len())
+ } else {
+ (DecoderResult::InputEmpty, src.len())
+ };
++ // Safety invariant: converted <= length. Quite often we have `converted < length`
++ // which will be separately marked.
+ let mut converted = 0usize;
+ 'outermost: loop {
+ match unsafe {
++ // Safety: length is the minimum length, `src/dst + x` will always be valid for reads/writes of `len - x`
+ ascii_to_basic_latin(
+ src.as_ptr().add(converted),
+ dst.as_mut_ptr().add(converted),
+ length - converted,
+ )
+ } {
+ None => {
+ return (pending, length, length);
+ }
+ Some((mut non_ascii, consumed)) => {
++ // Safety invariant: `converted <= length` upheld, since this can only consume
++ // up to `length - converted` bytes.
++ //
++ // Furthermore, in this context,
++ // we can assume `converted < length` since this branch is only ever hit when
++ // ascii_to_basic_latin fails to consume the entire slice
+ converted += consumed;
+ 'middle: loop {
+ // `converted` doesn't count the reading of `non_ascii` yet.
+ // Since the non-ASCIIness of `non_ascii` is hidden from
+ // the optimizer, it can't figure out that it's OK to
+ // statically omit the bound check when accessing
+ // `[u16; 128]` with an index
+ // `non_ascii as usize - 0x80usize`.
++ //
++ // Safety: We can rely on `non_ascii` being between `0x80` and `0xFF` due to
++ // the invariants of `ascii_to_basic_latin()`, and our table has enough space for that.
+ let mapped =
+ unsafe { *(self.table.get_unchecked(non_ascii as usize - 0x80usize)) };
+ // let mapped = self.table[non_ascii as usize - 0x80usize];
+ if mapped == 0u16 {
+ return (
+ DecoderResult::Malformed(1, 0),
+ converted + 1, // +1 `for non_ascii`
+ converted,
+ );
+ }
+ unsafe {
+- // The bound check has already been performed
++ // Safety: As mentioned above, `converted < length`
+ *(dst.get_unchecked_mut(converted)) = mapped;
+ }
++ // Safety: `converted <= length` upheld, since `converted < length` before this
+ converted += 1;
+ // Next, handle ASCII punctuation and non-ASCII without
+ // going back to ASCII acceleration. Non-ASCII scripts
+ // use ASCII punctuation, so this avoid going to
+ // acceleration just for punctuation/space and then
+ // failing. This is a significant boost to non-ASCII
+ // scripts.
+ // TODO: Split out Latin converters without this part
+ // this stuff makes Latin script-conversion slower.
+ if converted == length {
+ return (pending, length, length);
+ }
++ // Safety: We are back to `converted < length` because of the == above
++ // and can perform this check.
+ let mut b = unsafe { *(src.get_unchecked(converted)) };
++ // Safety: `converted < length` is upheld for this loop
+ 'innermost: loop {
+ if b > 127 {
+ non_ascii = b;
+ continue 'middle;
+ }
+ // Testing on Haswell says that we should write the
+ // byte unconditionally instead of trying to unread it
+ // to make it part of the next SIMD stride.
+ unsafe {
++ // Safety: `converted < length` is true for this loop
+ *(dst.get_unchecked_mut(converted)) = u16::from(b);
+ }
++ // Safety: We are now at `converted <= length`. We should *not* `continue`
++ // the loop without reverifying
+ converted += 1;
+ if b < 60 {
+ // We've got punctuation
+ if converted == length {
+ return (pending, length, length);
+ }
++ // Safety: we're back to `converted <= length` because of the == above
+ b = unsafe { *(src.get_unchecked(converted)) };
++ // Safety: The loop continues as `converted < length`
+ continue 'innermost;
+ }
+ // We've got markup or ASCII text
+ continue 'outermost;
+ }
+ }
+ }
+ }
+@@ -229,16 +253,18 @@ impl SingleByteDecoder {
+ }
+
+ pub fn latin1_byte_compatible_up_to(&self, buffer: &[u8]) -> usize {
+ let mut bytes = buffer;
+ let mut total = 0;
+ loop {
+ if let Some((non_ascii, offset)) = validate_ascii(bytes) {
+ total += offset;
++ // Safety: We can rely on `non_ascii` being between `0x80` and `0xFF` due to
++ // the invariants of `ascii_to_basic_latin()`, and our table has enough space for that.
+ let mapped = unsafe { *(self.table.get_unchecked(non_ascii as usize - 0x80usize)) };
+ if mapped != u16::from(non_ascii) {
+ return total;
+ }
+ total += 1;
+ bytes = &bytes[offset + 1..];
+ } else {
+ return total;
+@@ -379,64 +405,89 @@ impl SingleByteEncoder {
+ dst: &mut [u8],
+ _last: bool,
+ ) -> (EncoderResult, usize, usize) {
+ let (pending, length) = if dst.len() < src.len() {
+ (EncoderResult::OutputFull, dst.len())
+ } else {
+ (EncoderResult::InputEmpty, src.len())
+ };
++ // Safety invariant: converted <= length. Quite often we have `converted < length`
++ // which will be separately marked.
+ let mut converted = 0usize;
+ 'outermost: loop {
+ match unsafe {
++ // Safety: length is the minimum length, `src/dst + x` will always be valid for reads/writes of `len - x`
+ basic_latin_to_ascii(
+ src.as_ptr().add(converted),
+ dst.as_mut_ptr().add(converted),
+ length - converted,
+ )
+ } {
+ None => {
+ return (pending, length, length);
+ }
+ Some((mut non_ascii, consumed)) => {
++ // Safety invariant: `converted <= length` upheld, since this can only consume
++ // up to `length - converted` bytes.
++ //
++ // Furthermore, in this context,
++ // we can assume `converted < length` since this branch is only ever hit when
++ // ascii_to_basic_latin fails to consume the entire slice
+ converted += consumed;
+ 'middle: loop {
+ // `converted` doesn't count the reading of `non_ascii` yet.
+ match self.encode_u16(non_ascii) {
+ Some(byte) => {
+ unsafe {
++ // Safety: we're allowed this access since `converted < length`
+ *(dst.get_unchecked_mut(converted)) = byte;
+ }
+ converted += 1;
++ // `converted <= length` now
+ }
+ None => {
+ // At this point, we need to know if we
+ // have a surrogate.
+ let high_bits = non_ascii & 0xFC00u16;
+ if high_bits == 0xD800u16 {
+ // high surrogate
+ if converted + 1 == length {
+ // End of buffer. This surrogate is unpaired.
+ return (
+ EncoderResult::Unmappable('\u{FFFD}'),
+ converted + 1, // +1 `for non_ascii`
+ converted,
+ );
+ }
++ // Safety: convered < length from outside the match, and `converted + 1 != length`,
++ // So `converted + 1 < length` as well. We're in bounds
+ let second =
+ u32::from(unsafe { *src.get_unchecked(converted + 1) });
+ if second & 0xFC00u32 != 0xDC00u32 {
+ return (
+ EncoderResult::Unmappable('\u{FFFD}'),
+ converted + 1, // +1 `for non_ascii`
+ converted,
+ );
+ }
+ // The next code unit is a low surrogate.
+ let astral: char = unsafe {
++ // Safety: We can rely on non_ascii being 0xD800-0xDBFF since the high bits are 0xD800
++ // Then, (non_ascii << 10 - 0xD800 << 10) becomes between (0 to 0x3FF) << 10, which is between
++ // 0x400 to 0xffc00. Adding the 0x10000 gives a range of 0x10400 to 0x10fc00. Subtracting the 0xDC00
++ // gives 0x2800 to 0x102000
++ // The second term is between 0xDC00 and 0xDFFF from the check above. This gives a maximum
++ // possible range of (0x10400 + 0xDC00) to (0x102000 + 0xDFFF) which is 0x1E000 to 0x10ffff.
++ // This is in range.
++ //
++ // From a Unicode principles perspective this can also be verified as we have checked that `non_ascii` is a high surrogate
++ // (0xD800..=0xDBFF), and that `second` is a low surrogate (`0xDC00..=0xDFFF`), and we are applying reverse of the UTC16 transformation
++ // algorithm <https://en.wikipedia.org/wiki/UTF-16#Code_points_from_U+010000_to_U+10FFFF>, by applying the high surrogate - 0xD800 to the
++ // high ten bits, and the low surrogate - 0xDc00 to the low ten bits, and then adding 0x10000
+ ::core::char::from_u32_unchecked(
+ (u32::from(non_ascii) << 10) + second
+ - (((0xD800u32 << 10) - 0x1_0000u32) + 0xDC00u32),
+ )
+ };
+ return (
+ EncoderResult::Unmappable(astral),
+ converted + 2, // +2 `for non_ascii` and `second`
+@@ -451,52 +502,63 @@ impl SingleByteEncoder {
+ converted,
+ );
+ }
+ return (
+ EncoderResult::unmappable_from_bmp(non_ascii),
+ converted + 1, // +1 `for non_ascii`
+ converted,
+ );
++ // Safety: This branch diverges, so no need to uphold invariants on `converted`
+ }
+ }
+ // Next, handle ASCII punctuation and non-ASCII without
+ // going back to ASCII acceleration. Non-ASCII scripts
+ // use ASCII punctuation, so this avoid going to
+ // acceleration just for punctuation/space and then
+ // failing. This is a significant boost to non-ASCII
+ // scripts.
+ // TODO: Split out Latin converters without this part
+ // this stuff makes Latin script-conversion slower.
+ if converted == length {
+ return (pending, length, length);
+ }
++ // Safety: we're back to `converted < length` due to the == above and can perform
++ // the unchecked read
+ let mut unit = unsafe { *(src.get_unchecked(converted)) };
+ 'innermost: loop {
++ // Safety: This loop always begins with `converted < length`, see
++ // the invariant outside and the comment on the continue below
+ if unit > 127 {
+ non_ascii = unit;
+ continue 'middle;
+ }
+ // Testing on Haswell says that we should write the
+ // byte unconditionally instead of trying to unread it
+ // to make it part of the next SIMD stride.
+ unsafe {
++ // Safety: Can rely on converted < length
+ *(dst.get_unchecked_mut(converted)) = unit as u8;
+ }
+ converted += 1;
++ // `converted <= length` here
+ if unit < 60 {
+ // We've got punctuation
+ if converted == length {
+ return (pending, length, length);
+ }
++ // Safety: `converted < length` due to the == above. The read is safe.
+ unit = unsafe { *(src.get_unchecked(converted)) };
++ // Safety: This only happens if `converted < length`, maintaining it
+ continue 'innermost;
+ }
+ // We've got markup or ASCII text
+ continue 'outermost;
++ // Safety: All other routes to here diverge so the continue is the only
++ // way to run the innermost loop.
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+diff --git a/third_party/rust/encoding_rs/src/x_user_defined.rs b/third_party/rust/encoding_rs/src/x_user_defined.rs
+--- third_party/rust/encoding_rs/src/x_user_defined.rs
++++ third_party/rust/encoding_rs/src/x_user_defined.rs
+@@ -9,22 +9,23 @@
+
+ use super::*;
+ use crate::handles::*;
+ use crate::variant::*;
+
+ cfg_if! {
+ if #[cfg(feature = "simd-accel")] {
+ use simd_funcs::*;
+- use packed_simd::u16x8;
++ use core::simd::u16x8;
++ use core::simd::cmp::SimdPartialOrd;
+
+ #[inline(always)]
+ fn shift_upper(unpacked: u16x8) -> u16x8 {
+ let highest_ascii = u16x8::splat(0x7F);
+- unpacked + unpacked.gt(highest_ascii).select(u16x8::splat(0xF700), u16x8::splat(0)) }
++ unpacked + unpacked.simd_gt(highest_ascii).select(u16x8::splat(0xF700), u16x8::splat(0)) }
+ } else {
+ }
+ }
+
+ pub struct UserDefinedDecoder;
+
+ impl UserDefinedDecoder {
+ pub fn new() -> VariantDecoder {
+@@ -111,20 +112,25 @@ impl UserDefinedDecoder {
+ } else {
+ (DecoderResult::InputEmpty, src.len())
+ };
+ // Not bothering with alignment
+ let tail_start = length & !0xF;
+ let simd_iterations = length >> 4;
+ let src_ptr = src.as_ptr();
+ let dst_ptr = dst.as_mut_ptr();
++ // Safety: This is `for i in 0..length / 16`
+ for i in 0..simd_iterations {
++ // Safety: This is in bounds: length is the minumum valid length for both src/dst
++ // and i ranges to length/16, so multiplying by 16 will always be `< length` and can do
++ // a 16 byte read
+ let input = unsafe { load16_unaligned(src_ptr.add(i * 16)) };
+ let (first, second) = simd_unpack(input);
+ unsafe {
++ // Safety: same as above, but this is two consecutive 8-byte reads
+ store8_unaligned(dst_ptr.add(i * 16), shift_upper(first));
+ store8_unaligned(dst_ptr.add((i * 16) + 8), shift_upper(second));
+ }
+ }
+ let src_tail = &src[tail_start..length];
+ let dst_tail = &mut dst[tail_start..length];
+ src_tail
+ .iter()
+
+diff --git a/third_party/rust/encoding_rs/.cargo-checksum.json b/third_party/rust/encoding_rs/.cargo-checksum.json
+--- third_party/rust/encoding_rs/.cargo-checksum.json
++++ third_party/rust/encoding_rs/.cargo-checksum.json
+@@ -1 +1 @@
+-{"files":{"CONTRIBUTING.md":"ca1901f3e8532fb4cec894fd3664f0eaa898c0c4b961d1b992d1ed54eacf362a","COPYRIGHT":"11789f45bb180841cd362a5eee6789c68ddb573a11105e30768c308a6add0190","Cargo.toml":"42fa83322aa9fd6723b77d35d0cacb92cbb6e7f573ce11c55f5225292866f8f4","Ideas.md":"b7452893f500163868d8de52c09addaf91e1632454ed02e892c467ed7ec39dbd","LICENSE-APACHE":"cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30","LICENSE-MIT":"3fa4ca83dcc9237839b1bdeb2e6d16bdfb5ec0c5ce42b24694d8bbf0dcbef72c","LICENSE-WHATWG":"838118388fe5c2e7f1dbbaeed13e1c7f3ebf88be91319c7c1d77c18e987d1a50","README.md":"d938e8ab0b9ab67e74a1a4f48f23fdce956d0ad3a3f6147ae7612a92763c88d5","ci/miri.sh":"43cb8d82f49e3bfe2d2274b6ccd6f0714a4188ccef0cecc040829883cfdbee25","doc/Big5.txt":"f73a2edc5cb6c2d140ba6e07f4542e1c4a234950378acde1df93480f0ca0be0b","doc/EUC-JP.txt":"ee2818b907d0137f40a9ab9fd525fc700a44dbdddb6cf0c157a656566bae4bf1","doc/EUC-KR.txt":"71d9e2ccf3b124e8bdfb433c8cf2773fd878077038d0cec3c7237a50f4a78a30","doc/GBK.txt":"c1b522b5a799884e5001da661f42c5a8f4d0acb9ef1d74b206f22b5f65365606","doc/IBM866.txt":"a5a433e804d0f83af785015179fbc1d9b0eaf1f7960efcd04093e136b51fbd0e","doc/ISO-2022-JP.txt":"af86684f5a8f0e2868d7b2c292860140c3d2e5527530ca091f1b28198e8e2fe6","doc/ISO-8859-10.txt":"6d3949ad7c81ca176895101ed81a1db7df1060d64e262880b94bd31bb344ab4d","doc/ISO-8859-13.txt":"3951dd89cf93f7729148091683cf8511f4529388b7dc8dcd0d62eaed55be93fa","doc/ISO-8859-14.txt":"3d330784a0374fd255a38b47949675cc7168c800530534b0a01cac6edc623adc","doc/ISO-8859-15.txt":"24b1084aab5127a85aab99153f86e24694d0a3615f53b5ce23683f97cf66c47a","doc/ISO-8859-16.txt":"ce0272559b92ba76d7a7e476f6424ae4a5cc72e75b183611b08392e44add4d25","doc/ISO-8859-2.txt":"18ceff88c13d1b5ba455a3919b1e3de489045c4c3d2dd7e8527c125c75d54aad","doc/ISO-8859-3.txt":"21798404c68f4f5db59223362f24999da96968c0628427321fccce7d2849a130","doc/ISO-8859-4.txt":"d27f6520c6c5bfbcc19176b71d081cdb3bccde1622bb3e420d5680e812632d53","doc/ISO-8859-5.txt":"a10ec8d6ea7a78ad15da7275f6cb1a3365118527e28f9af6d0d5830501303f3a","doc/ISO-8859-6.txt":"ccda8a2efc96115336bdd77776637b9712425e44fbcf745353b9057fbef144e7","doc/ISO-8859-7.txt":"17900fa1f27a445958f0a77d7d9056be375a6bd7ee4492aa680c7c1500bab85e","doc/ISO-8859-8-I.txt":"8357555646d54265a9b9ffa3e68b08d132312f1561c60108ff9b8b1167b6ecf2","doc/ISO-8859-8.txt":"72cd6f3afb7b4a9c16a66a362473315770b7755d72c86c870e52fc3eba86c8af","doc/KOI8-R.txt":"839cf19a38da994488004ed7814b1f6151640156a9a2af02bf2efca745fb5966","doc/KOI8-U.txt":"0cc76624ed1f024183e2298b7e019957da2c70c8ca06e0fc4e6f353f50a5054f","doc/Shift_JIS.txt":"34c49141818cb9ddbcf59cc858f78a79be8ad148d563f26415108ae1f148443f","doc/UTF-16BE.txt":"e2e280d8acbaa6d2a6b3569d60e17500a285f2baa0df3363dd85537cd5a1ef8f","doc/UTF-16LE.txt":"70bdc170e3fc5298ba68f10125fb5eeb8b077036cc96bb4416c4de396f6d76c1","doc/UTF-8.txt":"ea7bae742e613010ced002cf4b601a737d2203fad65e115611451bc4428f548a","doc/gb18030.txt":"dc71378a8f07a2d8659f69ee81fb8791fef56ba86f124b429978285237bb4a7b","doc/macintosh.txt":"57491e53866711b4672d9b9ff35380b9dac9e0d8e3d6c20bdd6140603687c023","doc/replacement.txt":"4b6c3bbd7999d9d4108a281594bd02d13607e334a95465afff8c2c08d395f0e4","doc/windows-1250.txt":"61296bb6a21cdab602300d32ecfba434cb82de5ac3bc88d58710d2f125e28d39","doc/windows-1251.txt":"7deea1c61dea1485c8ff02db2c7d578db7a9aab63ab1cfd02ec04b515864689e","doc/windows-1252.txt":"933ef3bdddfce5ee132b9f1a1aa8b47423d2587bbe475b19028d0a6d38e180b6","doc/windows-1253.txt":"1a38748b88e99071a5c7b3d5456ead4caedeabab50d50d658be105bc113714de","doc/windows-1254.txt":"f8372f86c6f8d642563cd6ddc025260553292a39423df1683a98670bd7bf2b47","doc/windows-1255.txt":"4e5852494730054e2da258a74e1b9d780abbcdd8ce22ebc218ca2efe9e90493d","doc/windows-1256.txt":"c0879c5172abedead302a406e8f60d9cd9598694a0ffa4fd288ffe4fef7b8ea1","doc/windows-1257.txt":"c28a0c9f964fcb2b46d21f537c402446501a2800670481d6abf9fd9e9018d523","doc/windows-1258.txt":"5019ae4d61805c79aacbf17c93793342dbb098d65a1837783bc3e2c6d6a23602","doc/windows-874.txt":"4ef0e4501c5feba8b17aee1818602ed44b36ca8475db771ce2fc16d392cabecc","doc/x-mac-cyrillic.txt":"58be154d8a888ca3d484b83b44f749823ef339ab27f14d90ca9a856f5050a8bd","doc/x-user-defined.txt":"f9cd07c4321bf5cfb0be4bdddd251072999b04a6cf7a6f5bc63709a84e2c1ffc","generate-encoding-data.py":"be989dd25c6b946e3e8745fdc8e8a80fcf24b3be99ad0b4b78153ba3f6ab6310","rustfmt.toml":"85c1a3b4382fd89e991cbb81b70fb52780472edc064c963943cdaaa56e0a2030","src/ascii.rs":"c44c002641adb5ebc4368707a8cc0a076d2f33e6a5c27b1b69988eb515f5653d","src/big5.rs":"ec6e2913011a38e9a3e825a1731f139a7ca1d5b264fefae51a3cc1a68a57cef9","src/data.rs":"8a617cc57032092d65850eb27e00de687c80aea3299e839a1f58b42d0b35abf3","src/euc_jp.rs":"32047f5b540188c4cb19c07165f846b9786a09f18e315ed3e9bda1293dae52aa","src/euc_kr.rs":"9b25afc72d9378700eecfac58d55ad1c5946d6cd0ccde2c29c08200ef2de6bb9","src/gb18030.rs":"808587168d73f0c80f8520f0ca9b161866ed2efeb17a05e85fdf3b8efe7ba28a","src/handles.rs":"cc83dc0754751d67f5688a65c5e0191cba02f6bacce81a0813a243cba55eef7a","src/iso_2022_jp.rs":"9bb485e82574f4b7d4b2364f0ff276acb6a0bc111758420a3b0ec5e04c196652","src/lib.rs":"1dc07b818e45846b16ddcaf0de46c8862dd7df8099123ec38b95c3f8ad9c91ec","src/macros.rs":"200997f8870de8bfd8cdc475e92115df42108c0df661e49d3d1cbc32056e1d99","src/mem.rs":"0bf34103e0ad1b842a13a082dee2b920b05cf4fb0f145c9ee7f608f4cb4a544f","src/replacement.rs":"7660b34a53f8c1ca2bdfa0e51e843ec28326950952ad8bc96569feb93ac62308","src/shift_jis.rs":"6951ae67e36b1a12fa3a30734957f444d8b1b4ae0e2bde52060b29bd0f16d9d9","src/simd_funcs.rs":"2612aba86e1d201096d7e47a859bc3444f85934cc82d8adc6d39a4304d9eecfc","src/single_byte.rs":"3c9e9c1f946ae622c725ba9421240c1faa9a05e95fa10dd4642a25cb276a1edc","src/test_data/big5_in.txt":"4c5a8691f8dc717311889c63894026d2fb62725a86c4208ca274a9cc8d42a503","src/test_data/big5_in_ref.txt":"99d399e17750cf9c7cf30bb253dbfe35b81c4fcbdead93cfa48b1429213473c7","src/test_data/big5_out.txt":"6193ca97c297aa20e09396038d18e938bb7ea331c26f0f2454097296723a0b13","src/test_data/big5_out_ref.txt":"36567691f557df144f6cc520015a87038dfa156f296fcf103b56ae9a718be1fc","src/test_data/euc_kr_in.txt":"c86a7224f3215fa0d04e685622a752fdc72763e8ae076230c7fd62de57ec4074","src/test_data/euc_kr_in_ref.txt":"1f419f4ca47d708b54c73c461545a022ae2e20498fdbf8005a483d752a204883","src/test_data/euc_kr_out.txt":"e7f32e026f70be1e1b58e0047baf7d3d2c520269c4f9b9992e158b4decb0a1a3","src/test_data/euc_kr_out_ref.txt":"c9907857980b20b8e9e3b584482ed6567a2be6185d72237b6322f0404944924e","src/test_data/gb18030_in.txt":"ab7231b2d3e9afacdbd7d7f3b9e5361a7ff9f7e1cfdb4f3bd905b9362b309e53","src/test_data/gb18030_in_ref.txt":"dc5069421adca2043c55f5012b55a76fdff651d22e6e699fd0978f8d5706815c","src/test_data/gb18030_out.txt":"f0208d527f5ca63de7d9a0323be8d5cf12d8a104b2943d92c2701f0c3364dac1","src/test_data/gb18030_out_ref.txt":"6819fe47627e4ea01027003fc514b9f21a1322e732d7f1fb92cc6c5455bc6c07","src/test_data/iso_2022_jp_in.txt":"cd24bbdcb1834e25db54646fbf4c41560a13dc7540f6be3dba4f5d97d44513af","src/test_data/iso_2022_jp_in_ref.txt":"3dc4e6a5e06471942d086b16c9440945e78415f6f3f47e43717e4bc2eac2cdf5","src/test_data/iso_2022_jp_out.txt":"9b6f015329dda6c3f9ee5ce6dbd6fa9c89acc21283e886836c78b8d833480c21","src/test_data/iso_2022_jp_out_ref.txt":"78cb260093a20116ad9a42f43b05d1848c5ab100b6b9a850749809e943884b35","src/test_data/jis0208_in.txt":"6df3030553ffb0a6615bb33dc8ea9dca6d9623a9028e2ffec754ce3c3da824cc","src/test_data/jis0208_in_ref.txt":"3dc4e6a5e06471942d086b16c9440945e78415f6f3f47e43717e4bc2eac2cdf5","src/test_data/jis0208_out.txt":"4ec24477e1675ce750733bdc3c5add1cd27b6bd4ce1f09289564646e9654e857","src/test_data/jis0208_out_ref.txt":"c3e1cef5032b2b1d93a406f31ff940c4e2dfe8859b8b17ca2761fee7a75a0e48","src/test_data/jis0212_in.txt":"c011f0dd72bd7c8cd922df9374ef8d2769a77190514c77f6c62b415852eeb9fe","src/test_data/jis0212_in_ref.txt":"7d9458b3d2f73e7092a7f505c08ce1d233dde18aa679fbcf9889256239cc9e06","src/test_data/shift_jis_in.txt":"02e389ccef0dd2122e63f503899402cb7f797912c2444cc80ab93131116c5524","src/test_data/shift_jis_in_ref.txt":"512f985950ca902e643c88682dba9708b7c38d3c5ec2925168ab00ac94ab19f9","src/test_data/shift_jis_out.txt":"5fbc44da7bf639bf6cfe0fa1fd3eba7102b88f81919c9ea991302712f69426fb","src/test_data/shift_jis_out_ref.txt":"466322c6fed8286c64582731755290c2296508efdd258826e6279686649b481f","src/test_labels_names.rs":"23a2e11b02b3b8d15fb5613a625e3edb2c61e70e3c581abfd638719a4088200d","src/testing.rs":"f59e671e95a98a56f6b573e8c6be4d71e670bf52f7e20eb1605d990aafa1894e","src/utf_16.rs":"c071a147fad38d750c2c247e141b76b929a48007b99f26b2922b9caecdaf2f25","src/utf_8.rs":"7b7d887b347f1aefa03246b028a36a72758a4ce76c28f3b45c19467851aa7839","src/variant.rs":"1fab5363588a1554a7169de8731ea9cded7ac63ea35caabdd1c27a8dde68c27b","src/x_user_defined.rs":"c9c010730dfb9f141d4fed19350c08a21af240913a54bb64f5ca89ff93b6b7d1"},"package":"7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"}
+\ No newline at end of file
++{"files":{"CONTRIBUTING.md":"ca1901f3e8532fb4cec894fd3664f0eaa898c0c4b961d1b992d1ed54eacf362a","COPYRIGHT":"11789f45bb180841cd362a5eee6789c68ddb573a11105e30768c308a6add0190","Cargo.toml":"22a4d210c92dae9f32c6944ef340ee8fdd027f99c081577e8907123e2a93383e","Ideas.md":"b7452893f500163868d8de52c09addaf91e1632454ed02e892c467ed7ec39dbd","LICENSE-APACHE":"cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30","LICENSE-MIT":"3fa4ca83dcc9237839b1bdeb2e6d16bdfb5ec0c5ce42b24694d8bbf0dcbef72c","LICENSE-WHATWG":"838118388fe5c2e7f1dbbaeed13e1c7f3ebf88be91319c7c1d77c18e987d1a50","README.md":"1d08aefcb92afa81b18154049c9abbcad4540a23f7172e9f9bbed5af33f1a087","ci/miri.sh":"43cb8d82f49e3bfe2d2274b6ccd6f0714a4188ccef0cecc040829883cfdbee25","doc/Big5.txt":"f73a2edc5cb6c2d140ba6e07f4542e1c4a234950378acde1df93480f0ca0be0b","doc/EUC-JP.txt":"ee2818b907d0137f40a9ab9fd525fc700a44dbdddb6cf0c157a656566bae4bf1","doc/EUC-KR.txt":"71d9e2ccf3b124e8bdfb433c8cf2773fd878077038d0cec3c7237a50f4a78a30","doc/GBK.txt":"c1b522b5a799884e5001da661f42c5a8f4d0acb9ef1d74b206f22b5f65365606","doc/IBM866.txt":"a5a433e804d0f83af785015179fbc1d9b0eaf1f7960efcd04093e136b51fbd0e","doc/ISO-2022-JP.txt":"af86684f5a8f0e2868d7b2c292860140c3d2e5527530ca091f1b28198e8e2fe6","doc/ISO-8859-10.txt":"6d3949ad7c81ca176895101ed81a1db7df1060d64e262880b94bd31bb344ab4d","doc/ISO-8859-13.txt":"3951dd89cf93f7729148091683cf8511f4529388b7dc8dcd0d62eaed55be93fa","doc/ISO-8859-14.txt":"3d330784a0374fd255a38b47949675cc7168c800530534b0a01cac6edc623adc","doc/ISO-8859-15.txt":"24b1084aab5127a85aab99153f86e24694d0a3615f53b5ce23683f97cf66c47a","doc/ISO-8859-16.txt":"ce0272559b92ba76d7a7e476f6424ae4a5cc72e75b183611b08392e44add4d25","doc/ISO-8859-2.txt":"18ceff88c13d1b5ba455a3919b1e3de489045c4c3d2dd7e8527c125c75d54aad","doc/ISO-8859-3.txt":"21798404c68f4f5db59223362f24999da96968c0628427321fccce7d2849a130","doc/ISO-8859-4.txt":"d27f6520c6c5bfbcc19176b71d081cdb3bccde1622bb3e420d5680e812632d53","doc/ISO-8859-5.txt":"a10ec8d6ea7a78ad15da7275f6cb1a3365118527e28f9af6d0d5830501303f3a","doc/ISO-8859-6.txt":"ccda8a2efc96115336bdd77776637b9712425e44fbcf745353b9057fbef144e7","doc/ISO-8859-7.txt":"17900fa1f27a445958f0a77d7d9056be375a6bd7ee4492aa680c7c1500bab85e","doc/ISO-8859-8-I.txt":"8357555646d54265a9b9ffa3e68b08d132312f1561c60108ff9b8b1167b6ecf2","doc/ISO-8859-8.txt":"72cd6f3afb7b4a9c16a66a362473315770b7755d72c86c870e52fc3eba86c8af","doc/KOI8-R.txt":"839cf19a38da994488004ed7814b1f6151640156a9a2af02bf2efca745fb5966","doc/KOI8-U.txt":"0cc76624ed1f024183e2298b7e019957da2c70c8ca06e0fc4e6f353f50a5054f","doc/Shift_JIS.txt":"34c49141818cb9ddbcf59cc858f78a79be8ad148d563f26415108ae1f148443f","doc/UTF-16BE.txt":"e2e280d8acbaa6d2a6b3569d60e17500a285f2baa0df3363dd85537cd5a1ef8f","doc/UTF-16LE.txt":"70bdc170e3fc5298ba68f10125fb5eeb8b077036cc96bb4416c4de396f6d76c1","doc/UTF-8.txt":"ea7bae742e613010ced002cf4b601a737d2203fad65e115611451bc4428f548a","doc/gb18030.txt":"dc71378a8f07a2d8659f69ee81fb8791fef56ba86f124b429978285237bb4a7b","doc/macintosh.txt":"57491e53866711b4672d9b9ff35380b9dac9e0d8e3d6c20bdd6140603687c023","doc/replacement.txt":"4b6c3bbd7999d9d4108a281594bd02d13607e334a95465afff8c2c08d395f0e4","doc/windows-1250.txt":"61296bb6a21cdab602300d32ecfba434cb82de5ac3bc88d58710d2f125e28d39","doc/windows-1251.txt":"7deea1c61dea1485c8ff02db2c7d578db7a9aab63ab1cfd02ec04b515864689e","doc/windows-1252.txt":"933ef3bdddfce5ee132b9f1a1aa8b47423d2587bbe475b19028d0a6d38e180b6","doc/windows-1253.txt":"1a38748b88e99071a5c7b3d5456ead4caedeabab50d50d658be105bc113714de","doc/windows-1254.txt":"f8372f86c6f8d642563cd6ddc025260553292a39423df1683a98670bd7bf2b47","doc/windows-1255.txt":"4e5852494730054e2da258a74e1b9d780abbcdd8ce22ebc218ca2efe9e90493d","doc/windows-1256.txt":"c0879c5172abedead302a406e8f60d9cd9598694a0ffa4fd288ffe4fef7b8ea1","doc/windows-1257.txt":"c28a0c9f964fcb2b46d21f537c402446501a2800670481d6abf9fd9e9018d523","doc/windows-1258.txt":"5019ae4d61805c79aacbf17c93793342dbb098d65a1837783bc3e2c6d6a23602","doc/windows-874.txt":"4ef0e4501c5feba8b17aee1818602ed44b36ca8475db771ce2fc16d392cabecc","doc/x-mac-cyrillic.txt":"58be154d8a888ca3d484b83b44f749823ef339ab27f14d90ca9a856f5050a8bd","doc/x-user-defined.txt":"f9cd07c4321bf5cfb0be4bdddd251072999b04a6cf7a6f5bc63709a84e2c1ffc","generate-encoding-data.py":"be989dd25c6b946e3e8745fdc8e8a80fcf24b3be99ad0b4b78153ba3f6ab6310","rustfmt.toml":"85c1a3b4382fd89e991cbb81b70fb52780472edc064c963943cdaaa56e0a2030","src/ascii.rs":"588e38b01e666d5e7462617ea7e90a108d608dec9e016f3d273ac0744af2e05d","src/big5.rs":"ec6e2913011a38e9a3e825a1731f139a7ca1d5b264fefae51a3cc1a68a57cef9","src/data.rs":"8a617cc57032092d65850eb27e00de687c80aea3299e839a1f58b42d0b35abf3","src/euc_jp.rs":"32047f5b540188c4cb19c07165f846b9786a09f18e315ed3e9bda1293dae52aa","src/euc_kr.rs":"9b25afc72d9378700eecfac58d55ad1c5946d6cd0ccde2c29c08200ef2de6bb9","src/gb18030.rs":"808587168d73f0c80f8520f0ca9b161866ed2efeb17a05e85fdf3b8efe7ba28a","src/handles.rs":"b08cef1f5785bb6a4822f2e844c6df1b046b737b7a075e4593eaa8c4208e9fe2","src/iso_2022_jp.rs":"9bb485e82574f4b7d4b2364f0ff276acb6a0bc111758420a3b0ec5e04c196652","src/lib.rs":"834f44b670ec48ee82c0e12223d1567313fdd9f88bca5f4b117c82c1828f559f","src/macros.rs":"200997f8870de8bfd8cdc475e92115df42108c0df661e49d3d1cbc32056e1d99","src/mem.rs":"948571137d3b151df8db4fb2c733e74ae595d055cdf0ad83abcab9341d6adabe","src/replacement.rs":"7660b34a53f8c1ca2bdfa0e51e843ec28326950952ad8bc96569feb93ac62308","src/shift_jis.rs":"6951ae67e36b1a12fa3a30734957f444d8b1b4ae0e2bde52060b29bd0f16d9d9","src/simd_funcs.rs":"05c6e77af74bfe73cd39a752067c11425d6b46e5da419910f54bf75a5c02a984","src/single_byte.rs":"3ad87116fb339434a4b58e8f2b15485f2b66b9f7814d708f16194ed08f6d6ccf","src/test_data/big5_in.txt":"4c5a8691f8dc717311889c63894026d2fb62725a86c4208ca274a9cc8d42a503","src/test_data/big5_in_ref.txt":"99d399e17750cf9c7cf30bb253dbfe35b81c4fcbdead93cfa48b1429213473c7","src/test_data/big5_out.txt":"6193ca97c297aa20e09396038d18e938bb7ea331c26f0f2454097296723a0b13","src/test_data/big5_out_ref.txt":"36567691f557df144f6cc520015a87038dfa156f296fcf103b56ae9a718be1fc","src/test_data/euc_kr_in.txt":"c86a7224f3215fa0d04e685622a752fdc72763e8ae076230c7fd62de57ec4074","src/test_data/euc_kr_in_ref.txt":"1f419f4ca47d708b54c73c461545a022ae2e20498fdbf8005a483d752a204883","src/test_data/euc_kr_out.txt":"e7f32e026f70be1e1b58e0047baf7d3d2c520269c4f9b9992e158b4decb0a1a3","src/test_data/euc_kr_out_ref.txt":"c9907857980b20b8e9e3b584482ed6567a2be6185d72237b6322f0404944924e","src/test_data/gb18030_in.txt":"ab7231b2d3e9afacdbd7d7f3b9e5361a7ff9f7e1cfdb4f3bd905b9362b309e53","src/test_data/gb18030_in_ref.txt":"dc5069421adca2043c55f5012b55a76fdff651d22e6e699fd0978f8d5706815c","src/test_data/gb18030_out.txt":"f0208d527f5ca63de7d9a0323be8d5cf12d8a104b2943d92c2701f0c3364dac1","src/test_data/gb18030_out_ref.txt":"6819fe47627e4ea01027003fc514b9f21a1322e732d7f1fb92cc6c5455bc6c07","src/test_data/iso_2022_jp_in.txt":"cd24bbdcb1834e25db54646fbf4c41560a13dc7540f6be3dba4f5d97d44513af","src/test_data/iso_2022_jp_in_ref.txt":"3dc4e6a5e06471942d086b16c9440945e78415f6f3f47e43717e4bc2eac2cdf5","src/test_data/iso_2022_jp_out.txt":"9b6f015329dda6c3f9ee5ce6dbd6fa9c89acc21283e886836c78b8d833480c21","src/test_data/iso_2022_jp_out_ref.txt":"78cb260093a20116ad9a42f43b05d1848c5ab100b6b9a850749809e943884b35","src/test_data/jis0208_in.txt":"6df3030553ffb0a6615bb33dc8ea9dca6d9623a9028e2ffec754ce3c3da824cc","src/test_data/jis0208_in_ref.txt":"3dc4e6a5e06471942d086b16c9440945e78415f6f3f47e43717e4bc2eac2cdf5","src/test_data/jis0208_out.txt":"4ec24477e1675ce750733bdc3c5add1cd27b6bd4ce1f09289564646e9654e857","src/test_data/jis0208_out_ref.txt":"c3e1cef5032b2b1d93a406f31ff940c4e2dfe8859b8b17ca2761fee7a75a0e48","src/test_data/jis0212_in.txt":"c011f0dd72bd7c8cd922df9374ef8d2769a77190514c77f6c62b415852eeb9fe","src/test_data/jis0212_in_ref.txt":"7d9458b3d2f73e7092a7f505c08ce1d233dde18aa679fbcf9889256239cc9e06","src/test_data/shift_jis_in.txt":"02e389ccef0dd2122e63f503899402cb7f797912c2444cc80ab93131116c5524","src/test_data/shift_jis_in_ref.txt":"512f985950ca902e643c88682dba9708b7c38d3c5ec2925168ab00ac94ab19f9","src/test_data/shift_jis_out.txt":"5fbc44da7bf639bf6cfe0fa1fd3eba7102b88f81919c9ea991302712f69426fb","src/test_data/shift_jis_out_ref.txt":"466322c6fed8286c64582731755290c2296508efdd258826e6279686649b481f","src/test_labels_names.rs":"23a2e11b02b3b8d15fb5613a625e3edb2c61e70e3c581abfd638719a4088200d","src/testing.rs":"f59e671e95a98a56f6b573e8c6be4d71e670bf52f7e20eb1605d990aafa1894e","src/utf_16.rs":"c071a147fad38d750c2c247e141b76b929a48007b99f26b2922b9caecdaf2f25","src/utf_8.rs":"7b7d887b347f1aefa03246b028a36a72758a4ce76c28f3b45c19467851aa7839","src/variant.rs":"1fab5363588a1554a7169de8731ea9cded7ac63ea35caabdd1c27a8dde68c27b","src/x_user_defined.rs":"9456ca46168ef86c98399a2536f577ef7be3cdde90c0c51392d8ac48519d3fae"},"package":"b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"}
diff --git a/www/tor-browser/files/patch-rust-1.78.0-arm b/www/tor-browser/files/patch-rust-1.78.0-arm
new file mode 100644
index 000000000000..7db8038cfaeb
--- /dev/null
+++ b/www/tor-browser/files/patch-rust-1.78.0-arm
@@ -0,0 +1,64 @@
+Relevant bug report: https://bugzilla.mozilla.org/show_bug.cgi?id=1882291
+
+
+diff --git a/Cargo.lock b/Cargo.lock
+--- Cargo.lock
++++ Cargo.lock
+@@ -4274,10 +4274,11 @@
+ [[package]]
+ name = "qcms"
+ version = "0.2.0"
+ dependencies = [
+ "libc",
++ "version_check",
+ ]
+
+ [[package]]
+ name = "qlog"
+ version = "0.4.0"
+diff --git a/gfx/qcms/Cargo.toml b/gfx/qcms/Cargo.toml
+--- gfx/qcms/Cargo.toml
++++ gfx/qcms/Cargo.toml
+@@ -18,5 +18,8 @@
+ iccv4-enabled = []
+ cmyk = []
+
+ [dependencies]
+ libc = {version = "0.2", optional = true }
++
++[build-dependencies]
++version_check = "0.9"
+diff --git a/gfx/qcms/build.rs b/gfx/qcms/build.rs
+new file mode 100644
+--- /dev/null
++++ gfx/qcms/build.rs
+@@ -0,0 +1,7 @@
++extern crate version_check as rustc;
++
++fn main() {
++ if rustc::is_min_version("1.78.0").unwrap_or(false) {
++ println!("cargo:rustc-cfg=stdsimd_split");
++ }
++}
+diff --git a/gfx/qcms/src/lib.rs b/gfx/qcms/src/lib.rs
+--- gfx/qcms/src/lib.rs
++++ gfx/qcms/src/lib.rs
+@@ -5,13 +5,15 @@
+ #![allow(non_camel_case_types)]
+ #![allow(non_snake_case)]
+ #![allow(non_upper_case_globals)]
+ // These are needed for the neon SIMD code and can be removed once the MSRV supports the
+ // instrinsics we use
+-#![cfg_attr(feature = "neon", feature(stdsimd))]
++#![cfg_attr(all(stdsimd_split, target_arch = "arm", feature = "neon"), feature(stdarch_arm_neon_intrinsics))]
++#![cfg_attr(all(stdsimd_split, target_arch = "arm", feature = "neon"), feature(stdarch_arm_feature_detection))]
++#![cfg_attr(all(not(stdsimd_split), target_arch = "arm", feature = "neon"), feature(stdsimd))]
+ #![cfg_attr(
+- feature = "neon",
++ all(target_arch = "arm", feature = "neon"),
+ feature(arm_target_feature, raw_ref_op)
+
+ )]
+
+ /// These values match the Rendering Intent values from the ICC spec
+
diff --git a/www/tor-browser/files/patch-toolkit_components_processtools_procinfo__bsd.c b/www/tor-browser/files/patch-toolkit_components_processtools_procinfo__bsd.c
new file mode 100644
index 000000000000..e2e9a3cc88f4
--- /dev/null
+++ b/www/tor-browser/files/patch-toolkit_components_processtools_procinfo__bsd.c
@@ -0,0 +1,104 @@
+diff --git toolkit/components/processtools/ProcInfo_bsd.cpp toolkit/components/processtools/ProcInfo_bsd.cpp
+index a6ff4881940c..f041ed5e50ce 100644
+--- toolkit/components/processtools/ProcInfo_bsd.cpp
++++ toolkit/components/processtools/ProcInfo_bsd.cpp
+@@ -18,6 +18,9 @@
+ #include <cstdio>
+ #include <cstring>
+ #include <unistd.h>
++#ifdef __FreeBSD__
++#include <sys/user.h>
++#endif
+
+ namespace mozilla {
+
+@@ -50,25 +53,39 @@ ProcInfoPromise::ResolveOrRejectValue GetProcInfoSync(
+ }
+ for (const auto& request : aRequests) {
+ size_t size;
++#ifdef __FreeBSD__
++ int mib[4];
++ int mibsize = 4;
++ mib[0] = CTL_KERN;
++ mib[1] = KERN_PROC;
++ mib[2] = KERN_PROC_PID | KERN_PROC_INC_THREAD;
++ mib[3] = request.pid;
++#else
+ int mib[6];
++ int mibsize = 6;
+ mib[0] = CTL_KERN;
+ mib[1] = KERN_PROC;
+ mib[2] = KERN_PROC_PID | KERN_PROC_SHOW_THREADS;
+ mib[3] = request.pid;
+ mib[4] = sizeof(kinfo_proc);
+ mib[5] = 0;
+- if (sysctl(mib, 6, nullptr, &size, nullptr, 0) == -1) {
++#endif
++ if (sysctl(mib, mibsize, nullptr, &size, nullptr, 0) == -1) {
+ // Can't get info for this process. Skip it.
+ continue;
+ }
+
++#ifdef __FreeBSD__
++ auto procs = MakeUniqueFallible<kinfo_proc[]>(size / sizeof(kinfo_proc));
++#else
+ mib[5] = size / sizeof(kinfo_proc);
+ auto procs = MakeUniqueFallible<kinfo_proc[]>(mib[5]);
++#endif
+ if (!procs) {
+ result.SetReject(NS_ERROR_OUT_OF_MEMORY);
+ return result;
+ }
+- if (sysctl(mib, 6, procs.get(), &size, nullptr, 0) == -1 &&
++ if (sysctl(mib, mibsize, procs.get(), &size, nullptr, 0) == -1 &&
+ errno != ENOMEM) {
+ continue;
+ }
+@@ -84,19 +101,34 @@ ProcInfoPromise::ResolveOrRejectValue GetProcInfoSync(
+ bool found = false;
+ for (size_t i = 0; i < size / sizeof(kinfo_proc); i++) {
+ const auto& p = procs[i];
++#ifdef __FreeBSD__
++ if (i == 0) {
++#else
+ if (p.p_tid == -1) {
++#endif
+ // This is the process.
+ found = true;
++#ifdef __FreeBSD__
++ info.cpuTime = uint64_t(p.ki_runtime) * 1'000u;
++ info.memory = (p.ki_tsize + p.ki_dsize + p.ki_ssize) * getpagesize();
++#else
+ info.cpuTime = uint64_t(p.p_rtime_sec) * 1'000'000'000u +
+ uint64_t(p.p_rtime_usec) * 1'000u;
+ info.memory =
+ (p.p_vm_tsize + p.p_vm_dsize + p.p_vm_ssize) * getpagesize();
++#endif
++
+ } else {
+ // This is one of its threads.
+ ThreadInfo threadInfo;
++#ifdef __FreeBSD__
++ threadInfo.tid = p.ki_tid;
++ threadInfo.cpuTime = uint64_t(p.ki_runtime) * 1'000u;
++#else
+ threadInfo.tid = p.p_tid;
+ threadInfo.cpuTime = uint64_t(p.p_rtime_sec) * 1'000'000'000u +
+ uint64_t(p.p_rtime_usec) * 1'000u;
++#endif
+ info.threads.AppendElement(threadInfo);
+ }
+ }
+diff --git toolkit/components/processtools/moz.build toolkit/components/processtools/moz.build
+index b7c164c1b0ac..a41dad52c343 100644
+--- toolkit/components/processtools/moz.build
++++ toolkit/components/processtools/moz.build
+@@ -39,7 +39,7 @@ BROWSER_CHROME_MANIFESTS += ["tests/browser/browser.ini"]
+ # Platform-specific implementations of `ProcInfo`.
+ toolkit = CONFIG["MOZ_WIDGET_TOOLKIT"]
+ if toolkit == "gtk" or toolkit == "android":
+- if CONFIG["OS_TARGET"] == "OpenBSD":
++ if CONFIG["OS_TARGET"] == "FreeBSD" or CONFIG["OS_TARGET"] == "OpenBSD":
+ UNIFIED_SOURCES += ["ProcInfo_bsd.cpp"]
+ else:
+ UNIFIED_SOURCES += ["ProcInfo_linux.cpp"]
diff --git a/www/tor-browser/files/patch-toolkit_components_tor-launcher_TorProcess.sys.mjs b/www/tor-browser/files/patch-toolkit_components_tor-launcher_TorProcess.sys.mjs
new file mode 100644
index 000000000000..247ead0c3c9a
--- /dev/null
+++ b/www/tor-browser/files/patch-toolkit_components_tor-launcher_TorProcess.sys.mjs
@@ -0,0 +1,34 @@
+Let geoip/geoip6 file paths be set by prefs like everything else and let
+the new getTorFile() deal with it.
+
+Index: toolkit/components/tor-launcher/TorProcess.sys.mjs
+--- toolkit/components/tor-launcher/TorProcess.sys.mjs.orig 2024-04-22 21:47:56 UTC
++++ toolkit/components/tor-launcher/TorProcess.sys.mjs
+@@ -216,6 +216,7 @@ export class TorProcess {
+ }
+
+ this.#args = [];
++ this.#args.push("--ignore-missing-torrc");
+ this.#args.push("-f", torrcFile.path);
+ this.#args.push("DataDirectory", this.#dataDir.path);
+ this.#args.push("ClientOnionAuthDir", onionAuthDir.path);
+@@ -230,11 +231,15 @@ export class TorProcess {
+ // The geoip and geoip6 files are in the same directory as torrc-defaults.
+ // TODO: Change TorFile to return the generic path to these files to make
+ // them independent from the torrc-defaults.
+- const geoipFile = torrcDefaultsFile.clone();
+- geoipFile.leafName = "geoip";
++ // const geoipFile = torrcDefaultsFile.clone();
++ // geoipFile.leafName = "geoip";
++ // this.#args.push("GeoIPFile", geoipFile.path);
++ // const geoip6File = torrcDefaultsFile.clone();
++ // geoip6File.leafName = "geoip6";
++ // this.#args.push("GeoIPv6File", geoip6File.path);
++ const geoipFile = lazy.TorLauncherUtil.getTorFile("geoip", false);
++ const geoip6File = lazy.TorLauncherUtil.getTorFile("geoip6", false);
+ this.#args.push("GeoIPFile", geoipFile.path);
+- const geoip6File = torrcDefaultsFile.clone();
+- geoip6File.leafName = "geoip6";
+ this.#args.push("GeoIPv6File", geoip6File.path);
+ } else {
+ logger.warn(
diff --git a/www/tor-browser/files/patch-toolkit_components_tor-launcher_TorProcess_sys_mjs b/www/tor-browser/files/patch-toolkit_components_tor-launcher_TorProcess_sys_mjs
deleted file mode 100644
index ec2731f31d1f..000000000000
--- a/www/tor-browser/files/patch-toolkit_components_tor-launcher_TorProcess_sys_mjs
+++ /dev/null
@@ -1,26 +0,0 @@
-Let geoip/geoip6 file paths be set by prefs like everything else and let
-the new getTorFile() deal with it.
-
-Index: toolkit/components/tor-launcher/TorProcess.sys.mjs
---- toolkit/components/tor-launcher/TorProcess.sys.mjs.orig
-+++ toolkit/components/tor-launcher/TorProcess.sys.mjs
-@@ -254,16 +254,14 @@ export class TorProcess {
- "torrc-defaults",
- false
- );
-- // The geoip and geoip6 files are in the same directory as torrc-defaults.
-- const geoipFile = torrcDefaultsFile.clone();
-- geoipFile.leafName = "geoip";
-- const geoip6File = torrcDefaultsFile.clone();
-- geoip6File.leafName = "geoip6";
-+ const geoipFile = lazy.TorLauncherUtil.getTorFile("geoip", false);
-+ const geoip6File = lazy.TorLauncherUtil.getTorFile("geoip6", false);
-
- this.#args = [];
- if (torrcDefaultsFile) {
- this.#args.push("--defaults-torrc", torrcDefaultsFile.path);
- }
-+ this.#args.push("--ignore-missing-torrc");
- this.#args.push("-f", torrcFile.path);
- this.#args.push("DataDirectory", this.#dataDir.path);
- this.#args.push("ClientOnionAuthDir", onionAuthDir.path);
diff --git a/www/trac-accountmanager/Makefile b/www/trac-accountmanager/Makefile
index 0b02ed97aade..926d58be2f4d 100644
--- a/www/trac-accountmanager/Makefile
+++ b/www/trac-accountmanager/Makefile
@@ -1,5 +1,5 @@
PORTNAME= accountmanager
-PORTVERSION= 0.5.${REV}
+PORTVERSION= 0.6.${REV}
CATEGORIES= www devel python
MASTER_SITES= https://trac-hacks.org/browser/accountmanagerplugin/
PKGNAMEPREFIX= trac-
@@ -14,7 +14,7 @@ LICENSE_FILE= ${WRKSRC}/COPYING
RUN_DEPENDS= tracd:www/trac
FETCH_BEFORE_ARGS= -o ${DISTFILES}
-REV= 18614
+REV= 18634
WRKSRC= ${WRKDIR}/trunk
USES= python zip
USE_PYTHON= distutils autoplist
diff --git a/www/trac-accountmanager/distinfo b/www/trac-accountmanager/distinfo
index 86eb8547c56d..1952fc640131 100644
--- a/www/trac-accountmanager/distinfo
+++ b/www/trac-accountmanager/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1704757155
-SHA256 (accountmanager-0.5.18614.zip) = 8fbccab4d8cfc55616def01a42af75947037a8f054958b4e4e1eb57b8989303a
-SIZE (accountmanager-0.5.18614.zip) = 558095
+TIMESTAMP = 1713876395
+SHA256 (accountmanager-0.6.18634.zip) = 99a1c55690e91fe1355818c445c18dd4c7e18934b4854a0bb9180693bd9fd32e
+SIZE (accountmanager-0.6.18634.zip) = 558626
diff --git a/www/trac/Makefile b/www/trac/Makefile
index 76c75200cb0f..70fd402b2014 100644
--- a/www/trac/Makefile
+++ b/www/trac/Makefile
@@ -1,6 +1,6 @@
PORTNAME= trac
DISTVERSION= 1.6
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= www devel python
MASTER_SITES= http://ftp.edgewall.com/pub/trac/ \
ftp://ftp.edgewall.com/pub/trac/
diff --git a/www/trac/files/patch-trac_util_datefmt.py b/www/trac/files/patch-trac_util_datefmt.py
new file mode 100644
index 000000000000..e4788ec355b6
--- /dev/null
+++ b/www/trac/files/patch-trac_util_datefmt.py
@@ -0,0 +1,143 @@
+--- trac/util/datefmt.py.orig 2023-09-22 23:00:43 UTC
++++ trac/util/datefmt.py
+@@ -34,6 +34,7 @@ else:
+ from babel import Locale
+ from babel.core import LOCALE_ALIASES, UnknownLocaleError
+ from babel.dates import (
++ DateTimeFormat,
+ format_datetime as babel_format_datetime,
+ format_date as babel_format_date,
+ format_time as babel_format_time,
+@@ -44,8 +45,9 @@ else:
+ )
+ # 'context' parameter was added in Babel 2.3.1
+ if 'context' in inspect.signature(babel_get_period_names).parameters:
+- def get_period_names(locale=None):
+- return babel_get_period_names(context='format', locale=locale)
++ def get_period_names(width='wide', locale=None):
++ return babel_get_period_names(width=width, context='format',
++ locale=locale)
+ else:
+ get_period_names = babel_get_period_names
+
+@@ -292,16 +294,40 @@ def _format_datetime(t, format, tzinfo, locale, hint):
+ hint = _STRFTIME_HINTS[format]
+ format = 'medium'
+ if format in ('short', 'medium', 'long', 'full'):
+- if hint == 'datetime':
+- return babel_format_datetime(t, format, None, locale)
+- if hint == 'date':
+- return babel_format_date(t, format, locale)
+- if hint == 'time':
+- return babel_format_time(t, format, None, locale)
++ return _format_datetime_babel(t, format, locale, hint)
+
+ format = _BABEL_FORMATS[hint].get(format, format)
+ return _format_datetime_without_babel(t, format)
+
++if babel:
++ class _DateTimeFormatFixup(DateTimeFormat):
++ def __getitem__(self, name):
++ if name.startswith(('b', 'B')):
++ return self.format_period('a', len(name))
++ else:
++ return super().__getitem__(name)
++
++def _format_datetime_babel(t, format, locale, hint):
++ if hint in ('datetime', 'date'):
++ datepart = babel_format_date(t, format, locale)
++ if hint == 'date':
++ return datepart
++ if hint in ('datetime', 'time'):
++ time_format = get_time_format(format, locale)
++ # Use `a` period instead of `b` and `B` periods because `parse_date`
++ # and jQuery timepicker addon don't support the periods
++ if '%(b' in time_format.format or '%(B' in time_format.format:
++ timepart = time_format.format % _DateTimeFormatFixup(t, locale)
++ else:
++ timepart = babel_format_time(t, format, None, locale)
++ if hint == 'time':
++ return timepart
++ if hint == 'datetime':
++ return get_datetime_format(format, locale=locale) \
++ .replace("'", '') \
++ .replace('{0}', timepart) \
++ .replace('{1}', datepart)
++
+ def format_datetime(t=None, format='%x %X', tzinfo=None, locale=None):
+ """Format the `datetime` object `t` into a `str` string
+
+@@ -439,24 +465,29 @@ def get_time_format_jquery_ui(locale):
+ """Get the time format for the jQuery UI timepicker addon."""
+ if locale == 'iso8601':
+ return 'HH:mm:ssZ'
++
++ t = datetime(1999, 10, 29, 23, 59, 58, tzinfo=utc)
+ if babel and locale:
+ values = {'h': 'h', 'hh': 'hh', 'H': 'H', 'HH': 'HH',
+ 'm': 'm', 'mm': 'mm', 's': 's', 'ss': 'ss'}
+- f = get_time_format('medium', locale=locale).format
+- if '%(a)s' in f:
+- t = datetime(1999, 10, 29, 23, 59, 58, tzinfo=utc)
++ # Use `a` period instead of `b` and `B` periods, because jQuery
++ # timepicker addon doesn't support the periods.
++ tmpl = babel_format_time(t, tzinfo=utc, locale=locale)
++ if '23' not in tmpl:
+ ampm = babel_format_datetime(t, 'a', None, locale)
+- values['a'] = 'TT' if ampm[0].isupper() else 'tt'
++ ampm = 'TT' if ampm[0].isupper() else 'tt'
++ values.update((period * n, ampm) for period in ('a', 'b', 'B')
++ for n in range(1, 6))
++ f = get_time_format('medium', locale=locale).format
+ return f % values
++ else:
++ tmpl = format_time(t, tzinfo=utc)
++ ampm = format_time(t, '%p', tzinfo=utc)
++ if ampm:
++ tmpl = tmpl.replace(ampm, 'TT' if ampm[0].isupper() else 'tt', 1)
++ return tmpl.replace('23', 'HH', 1).replace('11', 'hh', 1) \
++ .replace('59', 'mm', 1).replace('58', 'ss', 1)
+
+- t = datetime(1999, 10, 29, 23, 59, 58, tzinfo=utc)
+- tmpl = format_time(t, tzinfo=utc)
+- ampm = format_time(t, '%p', tzinfo=utc)
+- if ampm:
+- tmpl = tmpl.replace(ampm, 'TT' if ampm[0].isupper() else 'tt', 1)
+- return tmpl.replace('23', 'HH', 1).replace('11', 'hh', 1) \
+- .replace('59', 'mm', 1).replace('58', 'ss', 1)
+-
+ def get_timezone_list_jquery_ui(t=None):
+ """Get timezone list for jQuery timepicker addon"""
+ def utcoffset(tz, t): # in minutes
+@@ -701,20 +732,21 @@ def _i18n_parse_date_pattern(locale):
+ if name:
+ period_names[name.lower()] = period
+ else:
+- if formats[0].find('%(MMM)s') != -1:
+- for width in ('wide', 'abbreviated'):
+- names = get_month_names(width, locale=locale)
+- month_names.update((name.lower(), num)
+- for num, name in names.items())
+- if formats[0].find('%(a)s') != -1:
+- names = get_period_names(locale=locale)
++ for width in ('wide', 'abbreviated'):
++ names = get_month_names(width=width, locale=locale)
++ month_names.update((name.lower(), num)
++ for num, name in names.items())
++ names = get_period_names(width=width, locale=locale)
+ period_names.update((name.lower(), period)
+ for period, name in names.items()
+ if period in ('am', 'pm'))
+
+- regexp = ['[0-9]+']
+- regexp.extend(re.escape(name) for name in month_names)
+- regexp.extend(re.escape(name) for name in period_names)
++ regexp = []
++ regexp.extend(month_names)
++ regexp.extend(period_names)
++ regexp.sort(key=lambda v: len(v), reverse=True)
++ regexp = list(map(re.escape, regexp))
++ regexp.append('[0-9]+')
+
+ return {
+ 'orders': orders,
diff --git a/www/trunk/Makefile b/www/trunk/Makefile
index 0919bce58345..95e4f8e0b36d 100644
--- a/www/trunk/Makefile
+++ b/www/trunk/Makefile
@@ -1,6 +1,7 @@
PORTNAME= trunk
DISTVERSIONPREFIX= v
-DISTVERSION= 0.19.2
+DISTVERSION= 0.20.1
+PORTREVISION= 1
CATEGORIES= www devel
MAINTAINER= yuri@FreeBSD.org
@@ -19,58 +20,62 @@ USES= cargo
USE_GITHUB= yes
GH_ACCOUNT= thedodd
+RUSTFLAGS= ${ARCH:S/i386/YES/:C/^[a-z].*//:S/YES/-C target-feature=+sse,+sse2/} # add sse sse2 target-features only on i386
+
CARGO_CRATES= addr2line-0.21.0 \
adler-1.0.2 \
aes-0.8.4 \
ahash-0.7.8 \
ahash-0.8.11 \
aho-corasick-0.7.20 \
- aho-corasick-1.1.2 \
- aligned-0.4.1 \
+ aho-corasick-1.1.3 \
+ aligned-0.4.2 \
ansi_term-0.12.1 \
- anstream-0.6.13 \
- anstyle-1.0.6 \
- anstyle-parse-0.2.3 \
- anstyle-query-1.0.2 \
- anstyle-wincon-3.0.2 \
- anyhow-1.0.80 \
- arc-swap-1.7.0 \
+ anstream-0.6.14 \
+ anstyle-1.0.7 \
+ anstyle-parse-0.2.4 \
+ anstyle-query-1.0.3 \
+ anstyle-wincon-3.0.3 \
+ anyhow-1.0.82 \
+ arc-swap-1.7.1 \
as-slice-0.2.1 \
- async-recursion-1.0.5 \
- async-trait-0.1.77 \
- autocfg-1.1.0 \
- axum-0.6.20 \
- axum-core-0.3.4 \
- axum-server-0.5.1 \
- backtrace-0.3.69 \
+ async-recursion-1.1.1 \
+ async-trait-0.1.80 \
+ autocfg-1.2.0 \
+ axum-0.7.5 \
+ axum-core-0.4.3 \
+ axum-server-0.6.0 \
+ backtrace-0.3.71 \
base64-0.21.7 \
+ base64-0.22.1 \
base64-simd-0.7.0 \
base64ct-1.6.0 \
bitflags-1.3.2 \
- bitflags-2.4.2 \
+ bitflags-2.5.0 \
bitvec-1.0.1 \
block-buffer-0.10.4 \
- bumpalo-3.15.4 \
+ bumpalo-3.16.0 \
bytecheck-0.6.12 \
bytecheck_derive-0.6.12 \
- bytemuck-1.14.3 \
+ bytemuck-1.15.0 \
byteorder-1.5.0 \
- bytes-1.5.0 \
+ bytes-1.6.0 \
bzip2-0.4.4 \
bzip2-sys-0.1.11+1.0.8 \
camino-1.1.6 \
cargo-lock-9.0.0 \
- cargo-platform-0.1.7 \
+ cargo-platform-0.1.8 \
cargo_metadata-0.18.1 \
- cc-1.0.90 \
+ cc-1.0.96 \
cfg-if-1.0.0 \
- chrono-0.4.35 \
+ chrono-0.4.38 \
cipher-0.4.4 \
- clap-4.5.2 \
+ clap-4.5.4 \
clap_builder-4.5.2 \
- clap_derive-4.5.0 \
+ clap_derive-4.5.4 \
clap_lex-0.7.0 \
- colorchoice-1.0.0 \
+ clap_mangen-0.2.20 \
+ colorchoice-1.0.1 \
console-0.15.8 \
const-str-0.3.2 \
const-str-proc-macro-0.3.2 \
@@ -79,7 +84,7 @@ CARGO_CRATES= addr2line-0.21.0 \
core-foundation-0.9.4 \
core-foundation-sys-0.8.6 \
cpufeatures-0.2.12 \
- crates_io_api-0.9.0 \
+ crates_io_api-0.11.0 \
crc32fast-1.4.0 \
crossbeam-channel-0.5.12 \
crossbeam-deque-0.8.5 \
@@ -92,7 +97,7 @@ CARGO_CRATES= addr2line-0.21.0 \
cssparser-macros-0.6.1 \
cvt-0.1.2 \
dashmap-5.5.3 \
- data-encoding-2.5.0 \
+ data-encoding-2.6.0 \
data-url-0.1.1 \
deranged-0.3.11 \
derive_more-0.99.17 \
@@ -102,18 +107,18 @@ CARGO_CRATES= addr2line-0.21.0 \
dtoa-1.0.9 \
dtoa-short-0.3.4 \
dunce-1.0.4 \
- either-1.10.0 \
+ either-1.11.0 \
encode_unicode-0.3.6 \
- encoding_rs-0.8.33 \
- enum-as-inner-0.6.0 \
- env_logger-0.10.2 \
+ encoding_rs-0.8.34 \
+ env_filter-0.1.0 \
+ env_logger-0.11.3 \
envy-0.4.2 \
equivalent-1.0.1 \
errno-0.3.8 \
- fastrand-2.0.1 \
+ fastrand-2.1.0 \
file-id-0.2.1 \
filetime-0.2.23 \
- flate2-1.0.28 \
+ flate2-1.0.30 \
fnv-1.0.7 \
foreign-types-0.3.2 \
foreign-types-shared-0.1.1 \
@@ -121,7 +126,6 @@ CARGO_CRATES= addr2line-0.21.0 \
fs_at-0.1.10 \
fsevent-sys-4.1.0 \
funty-2.0.0 \
- futf-0.1.5 \
futures-0.3.30 \
futures-channel-0.3.30 \
futures-core-0.3.30 \
@@ -130,72 +134,69 @@ CARGO_CRATES= addr2line-0.21.0 \
futures-macro-0.3.30 \
futures-sink-0.3.30 \
futures-task-0.3.30 \
+ futures-timer-3.0.3 \
futures-util-0.3.30 \
fxhash-0.2.1 \
generic-array-0.14.7 \
getrandom-0.1.16 \
- getrandom-0.2.12 \
+ getrandom-0.2.14 \
gimli-0.28.1 \
glob-0.3.1 \
- h2-0.3.24 \
+ h2-0.4.4 \
hashbrown-0.12.3 \
hashbrown-0.13.2 \
- hashbrown-0.14.3 \
+ hashbrown-0.14.5 \
heck-0.4.1 \
+ heck-0.5.0 \
hermit-abi-0.3.9 \
hmac-0.12.1 \
home-0.5.9 \
- hostname-0.3.1 \
- html5ever-0.25.2 \
htmlescape-0.3.1 \
- http-0.2.12 \
- http-body-0.4.6 \
- http-range-header-0.3.1 \
+ http-1.1.0 \
+ http-body-1.0.0 \
+ http-body-util-0.1.1 \
+ http-range-header-0.4.0 \
httparse-1.8.0 \
httpdate-1.0.3 \
humantime-2.1.0 \
humantime-serde-1.1.1 \
- hyper-0.14.28 \
- hyper-rustls-0.24.2 \
- hyper-tls-0.5.0 \
- idna-0.4.0 \
+ hyper-1.3.1 \
+ hyper-rustls-0.26.0 \
+ hyper-tls-0.6.0 \
+ hyper-util-0.1.3 \
idna-0.5.0 \
- indexmap-2.2.5 \
+ indexmap-2.2.6 \
inotify-0.9.6 \
inotify-sys-0.1.5 \
inout-0.1.3 \
- ipconfig-0.3.2 \
ipnet-2.9.0 \
is-docker-0.2.0 \
- is-terminal-0.4.12 \
is-wsl-0.4.0 \
+ is_terminal_polyfill-1.70.0 \
itertools-0.10.5 \
itertools-0.12.1 \
itoa-0.4.8 \
- itoa-1.0.10 \
- jobserver-0.1.28 \
+ itoa-1.0.11 \
+ jobserver-0.1.31 \
js-sys-0.3.69 \
kqueue-1.0.8 \
kqueue-sys-1.0.4 \
lazy_static-1.4.0 \
- libc-0.2.153 \
- libdeflate-sys-1.19.3 \
- libdeflater-1.19.3 \
- libredox-0.0.1 \
- lightningcss-1.0.0-alpha.54 \
- linked-hash-map-0.5.6 \
+ lazycell-1.3.0 \
+ libc-0.2.154 \
+ libdeflate-sys-1.20.0 \
+ libdeflater-1.20.0 \
+ libredox-0.1.3 \
+ lightningcss-1.0.0-alpha.55 \
linux-raw-sys-0.4.13 \
local-ip-address-0.6.1 \
- lock_api-0.4.11 \
+ lock_api-0.4.12 \
log-0.4.21 \
- lru-cache-0.1.2 \
- mac-0.1.1 \
- markup5ever-0.10.1 \
- match_cfg-0.1.0 \
+ lol_html-1.2.1 \
matchers-0.1.0 \
matches-0.1.10 \
matchit-0.7.3 \
- memchr-2.7.1 \
+ memchr-2.7.2 \
mime-0.3.17 \
mime_guess-2.0.4 \
minify-html-0.15.0 \
@@ -206,8 +207,6 @@ CARGO_CRATES= addr2line-0.21.0 \
native-tls-0.2.11 \
neli-0.6.4 \
neli-proc-macros-0.1.3 \
- new_debug_unreachable-1.0.4 \
- nipper-0.1.9 \
nix-0.26.4 \
nodrop-0.1.14 \
normpath-1.2.0 \
@@ -223,15 +222,15 @@ CARGO_CRATES= addr2line-0.21.0 \
openssl-0.10.64 \
openssl-macros-0.1.1 \
openssl-probe-0.1.5 \
- openssl-sys-0.9.101 \
+ openssl-sys-0.9.102 \
option-ext-0.2.0 \
outref-0.1.0 \
overload-0.1.1 \
- oxipng-9.0.0 \
+ oxipng-9.1.1 \
parcel_selectors-0.26.4 \
parcel_sourcemap-2.1.1 \
- parking_lot-0.12.1 \
- parking_lot_core-0.9.9 \
+ parking_lot-0.12.2 \
+ parking_lot_core-0.9.10 \
parse-js-0.17.0 \
password-hash-0.4.2 \
paste-1.0.14 \
@@ -253,18 +252,17 @@ CARGO_CRATES= addr2line-0.21.0 \
phf_shared-0.11.2 \
pin-project-1.1.5 \
pin-project-internal-1.1.5 \
- pin-project-lite-0.2.13 \
+ pin-project-lite-0.2.14 \
pin-utils-0.1.0 \
pkg-config-0.3.30 \
powerfmt-0.2.0 \
ppv-lite86-0.2.17 \
precomputed-hash-0.1.1 \
proc-macro-hack-0.5.20+deprecated \
- proc-macro2-1.0.78 \
+ proc-macro2-1.0.81 \
ptr_meta-0.1.4 \
ptr_meta_derive-0.1.4 \
- quick-error-1.2.3 \
- quote-1.0.35 \
+ quote-1.0.36 \
radium-0.7.0 \
rand-0.7.3 \
rand-0.8.5 \
@@ -274,103 +272,106 @@ CARGO_CRATES= addr2line-0.21.0 \
rand_core-0.6.4 \
rand_hc-0.2.0 \
rand_pcg-0.2.1 \
- rayon-1.9.0 \
+ rayon-1.10.0 \
rayon-core-1.12.1 \
redox_syscall-0.4.1 \
- redox_users-0.4.4 \
- regex-1.10.3 \
+ redox_syscall-0.5.1 \
+ redox_users-0.4.5 \
+ regex-1.10.4 \
regex-automata-0.1.10 \
regex-automata-0.4.6 \
regex-syntax-0.6.29 \
- regex-syntax-0.8.2 \
+ regex-syntax-0.8.3 \
+ relative-path-1.9.2 \
remove_dir_all-0.8.2 \
rend-0.4.2 \
- reqwest-0.11.24 \
- resolv-conf-0.7.0 \
+ reqwest-0.12.4 \
rgb-0.8.37 \
ring-0.17.8 \
rkyv-0.7.44 \
rkyv_derive-0.7.44 \
+ roff-0.2.1 \
+ rstest-0.19.0 \
+ rstest_macros-0.19.0 \
rustc-demangle-0.1.23 \
rustc-hash-1.1.0 \
rustc_version-0.4.0 \
- rustix-0.38.31 \
- rustls-0.21.10 \
- rustls-native-certs-0.6.3 \
- rustls-pemfile-1.0.4 \
+ rustix-0.38.34 \
+ rustls-0.21.12 \
+ rustls-0.22.4 \
+ rustls-native-certs-0.7.0 \
+ rustls-pemfile-2.1.2 \
+ rustls-pki-types-1.5.0 \
rustls-webpki-0.101.7 \
- rustversion-1.0.14 \
+ rustls-webpki-0.102.3 \
+ rustversion-1.0.15 \
ryu-1.0.17 \
same-file-1.0.6 \
schannel-0.1.23 \
scopeguard-1.2.0 \
sct-0.7.1 \
seahash-4.1.0 \
- security-framework-2.9.2 \
- security-framework-sys-2.9.1 \
+ security-framework-2.10.0 \
+ security-framework-sys-2.10.0 \
selectors-0.22.0 \
semver-1.0.22 \
- serde-1.0.197 \
- serde_derive-1.0.197 \
- serde_json-1.0.114 \
- serde_path_to_error-0.1.15 \
+ serde-1.0.200 \
+ serde_derive-1.0.200 \
+ serde_json-1.0.116 \
+ serde_path_to_error-0.1.16 \
serde_spanned-0.6.5 \
serde_urlencoded-0.7.1 \
servo_arc-0.1.1 \
sha1-0.10.6 \
sha2-0.10.8 \
sharded-slab-0.1.7 \
- signal-hook-registry-1.4.1 \
+ signal-hook-registry-1.4.2 \
simd-abstraction-0.7.1 \
simd-adler32-0.3.7 \
simdutf8-0.1.4 \
siphasher-0.3.11 \
slab-0.4.9 \
- smallvec-1.13.1 \
- socket2-0.5.6 \
+ smallvec-1.13.2 \
+ socket2-0.5.7 \
spin-0.9.8 \
stable_deref_trait-1.2.0 \
- string_cache-0.8.7 \
- string_cache_codegen-0.5.2 \
- strsim-0.11.0 \
- strum-0.26.1 \
- strum_macros-0.26.1 \
+ strsim-0.11.1 \
+ strum-0.26.2 \
+ strum_macros-0.26.2 \
subtle-2.5.0 \
syn-1.0.109 \
- syn-2.0.52 \
+ syn-2.0.60 \
sync_wrapper-0.1.2 \
- system-configuration-0.5.1 \
- system-configuration-sys-0.5.0 \
+ sync_wrapper-1.0.1 \
tap-1.0.1 \
tar-0.4.40 \
tempfile-3.10.1 \
- tendril-0.4.3 \
- termcolor-1.4.1 \
terminal_size-0.3.0 \
thin-slice-0.1.1 \
- thiserror-1.0.57 \
- thiserror-impl-1.0.57 \
+ thiserror-1.0.59 \
+ thiserror-impl-1.0.59 \
thread_local-1.1.8 \
- time-0.3.34 \
+ time-0.3.36 \
time-core-0.1.2 \
- time-macros-0.2.17 \
+ time-macros-0.2.18 \
tinyvec-1.6.0 \
tinyvec_macros-0.1.1 \
- tokio-1.36.0 \
+ tokio-1.37.0 \
tokio-macros-2.2.0 \
tokio-native-tls-0.3.1 \
tokio-openssl-0.6.4 \
tokio-rustls-0.24.1 \
- tokio-stream-0.1.14 \
- tokio-tungstenite-0.20.1 \
+ tokio-rustls-0.25.0 \
+ tokio-stream-0.1.15 \
+ tokio-tungstenite-0.21.0 \
tokio-util-0.7.10 \
toml-0.7.8 \
- toml-0.8.10 \
+ toml-0.8.12 \
toml_datetime-0.6.5 \
toml_edit-0.19.15 \
- toml_edit-0.22.6 \
+ toml_edit-0.22.12 \
tower-0.4.13 \
- tower-http-0.4.4 \
+ tower-http-0.5.2 \
tower-layer-0.3.2 \
tower-service-0.3.2 \
tracing-0.1.40 \
@@ -378,22 +379,20 @@ CARGO_CRATES= addr2line-0.21.0 \
tracing-core-0.1.32 \
tracing-log-0.2.0 \
tracing-subscriber-0.3.18 \
- trust-dns-proto-0.23.2 \
- trust-dns-resolver-0.23.2 \
try-lock-0.2.5 \
- tungstenite-0.20.1 \
+ tungstenite-0.21.0 \
typed-arena-2.0.2 \
typenum-1.17.0 \
unicase-2.7.0 \
unicode-bidi-0.3.15 \
unicode-ident-1.0.12 \
unicode-normalization-0.1.23 \
- unicode-width-0.1.11 \
+ unicode-width-0.1.12 \
untrusted-0.9.0 \
url-2.5.0 \
utf-8-0.7.6 \
utf8parse-0.2.1 \
- uuid-1.7.0 \
+ uuid-1.8.0 \
valuable-0.1.0 \
vcpkg-0.2.15 \
version_check-0.9.4 \
@@ -410,52 +409,54 @@ CARGO_CRATES= addr2line-0.21.0 \
wasm-bindgen-shared-0.2.92 \
wasm-streams-0.4.0 \
web-sys-0.3.69 \
- webpki-roots-0.25.4 \
- which-6.0.0 \
- widestring-1.0.2 \
+ webpki-roots-0.26.1 \
+ which-6.0.1 \
winapi-0.3.9 \
winapi-i686-pc-windows-gnu-0.4.0 \
- winapi-util-0.1.6 \
+ winapi-util-0.1.8 \
winapi-x86_64-pc-windows-gnu-0.4.0 \
windows-sys-0.45.0 \
windows-sys-0.48.0 \
windows-sys-0.52.0 \
windows-targets-0.42.2 \
windows-targets-0.48.5 \
- windows-targets-0.52.4 \
+ windows-targets-0.52.5 \
windows_aarch64_gnullvm-0.42.2 \
windows_aarch64_gnullvm-0.48.5 \
- windows_aarch64_gnullvm-0.52.4 \
+ windows_aarch64_gnullvm-0.52.5 \
windows_aarch64_msvc-0.42.2 \
windows_aarch64_msvc-0.48.5 \
- windows_aarch64_msvc-0.52.4 \
+ windows_aarch64_msvc-0.52.5 \
windows_i686_gnu-0.42.2 \
windows_i686_gnu-0.48.5 \
- windows_i686_gnu-0.52.4 \
+ windows_i686_gnu-0.52.5 \
+ windows_i686_gnullvm-0.52.5 \
windows_i686_msvc-0.42.2 \
windows_i686_msvc-0.48.5 \
- windows_i686_msvc-0.52.4 \
+ windows_i686_msvc-0.52.5 \
windows_x86_64_gnu-0.42.2 \
windows_x86_64_gnu-0.48.5 \
- windows_x86_64_gnu-0.52.4 \
+ windows_x86_64_gnu-0.52.5 \
windows_x86_64_gnullvm-0.42.2 \
windows_x86_64_gnullvm-0.48.5 \
- windows_x86_64_gnullvm-0.52.4 \
+ windows_x86_64_gnullvm-0.52.5 \
windows_x86_64_msvc-0.42.2 \
windows_x86_64_msvc-0.48.5 \
- windows_x86_64_msvc-0.52.4 \
+ windows_x86_64_msvc-0.52.5 \
winnow-0.5.40 \
- winnow-0.6.5 \
- winreg-0.50.0 \
+ winnow-0.6.7 \
+ winreg-0.52.0 \
+ winsafe-0.0.19 \
wyz-0.5.1 \
xattr-1.3.1 \
zerocopy-0.7.32 \
zerocopy-derive-0.7.32 \
+ zeroize-1.7.0 \
zip-0.6.6 \
zopfli-0.8.0 \
zstd-0.11.2+zstd.1.5.2 \
zstd-safe-5.0.2+zstd.1.5.2 \
- zstd-sys-2.0.9+zstd.1.5.5
+ zstd-sys-2.0.10+zstd.1.5.6
OPENSSLINC= /usr/include
OPENSSLLIB= /usr/lib
diff --git a/www/trunk/distinfo b/www/trunk/distinfo
index 6fd42714330d..15705b572e62 100644
--- a/www/trunk/distinfo
+++ b/www/trunk/distinfo
@@ -1,4 +1,4 @@
-TIMESTAMP = 1712894838
+TIMESTAMP = 1715436315
SHA256 (rust/crates/addr2line-0.21.0.crate) = 8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb
SIZE (rust/crates/addr2line-0.21.0.crate) = 40807
SHA256 (rust/crates/adler-1.0.2.crate) = f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe
@@ -11,68 +11,70 @@ SHA256 (rust/crates/ahash-0.8.11.crate) = e89da841a80418a9b391ebaea17f5c112ffaaa
SIZE (rust/crates/ahash-0.8.11.crate) = 43607
SHA256 (rust/crates/aho-corasick-0.7.20.crate) = cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac
SIZE (rust/crates/aho-corasick-0.7.20.crate) = 111440
-SHA256 (rust/crates/aho-corasick-1.1.2.crate) = b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0
-SIZE (rust/crates/aho-corasick-1.1.2.crate) = 183136
-SHA256 (rust/crates/aligned-0.4.1.crate) = 80a21b9440a626c7fc8573a9e3d3a06b75c7c97754c2949bc7857b90353ca655
-SIZE (rust/crates/aligned-0.4.1.crate) = 8532
+SHA256 (rust/crates/aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916
+SIZE (rust/crates/aho-corasick-1.1.3.crate) = 183311
+SHA256 (rust/crates/aligned-0.4.2.crate) = 377e4c0ba83e4431b10df45c1d4666f178ea9c552cac93e60c3a88bf32785923
+SIZE (rust/crates/aligned-0.4.2.crate) = 8519
SHA256 (rust/crates/ansi_term-0.12.1.crate) = d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2
SIZE (rust/crates/ansi_term-0.12.1.crate) = 24838
-SHA256 (rust/crates/anstream-0.6.13.crate) = d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb
-SIZE (rust/crates/anstream-0.6.13.crate) = 30928
-SHA256 (rust/crates/anstyle-1.0.6.crate) = 8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc
-SIZE (rust/crates/anstyle-1.0.6.crate) = 14604
-SHA256 (rust/crates/anstyle-parse-0.2.3.crate) = c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c
-SIZE (rust/crates/anstyle-parse-0.2.3.crate) = 24699
-SHA256 (rust/crates/anstyle-query-1.0.2.crate) = e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648
-SIZE (rust/crates/anstyle-query-1.0.2.crate) = 8739
-SHA256 (rust/crates/anstyle-wincon-3.0.2.crate) = 1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7
-SIZE (rust/crates/anstyle-wincon-3.0.2.crate) = 11272
-SHA256 (rust/crates/anyhow-1.0.80.crate) = 5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1
-SIZE (rust/crates/anyhow-1.0.80.crate) = 45138
-SHA256 (rust/crates/arc-swap-1.7.0.crate) = 7b3d0060af21e8d11a926981cc00c6c1541aa91dd64b9f881985c3da1094425f
-SIZE (rust/crates/arc-swap-1.7.0.crate) = 68468
+SHA256 (rust/crates/anstream-0.6.14.crate) = 418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b
+SIZE (rust/crates/anstream-0.6.14.crate) = 29160
+SHA256 (rust/crates/anstyle-1.0.7.crate) = 038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b
+SIZE (rust/crates/anstyle-1.0.7.crate) = 15709
+SHA256 (rust/crates/anstyle-parse-0.2.4.crate) = c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4
+SIZE (rust/crates/anstyle-parse-0.2.4.crate) = 23069
+SHA256 (rust/crates/anstyle-query-1.0.3.crate) = a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5
+SIZE (rust/crates/anstyle-query-1.0.3.crate) = 9742
+SHA256 (rust/crates/anstyle-wincon-3.0.3.crate) = 61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19
+SIZE (rust/crates/anstyle-wincon-3.0.3.crate) = 12179
+SHA256 (rust/crates/anyhow-1.0.82.crate) = f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519
+SIZE (rust/crates/anyhow-1.0.82.crate) = 45361
+SHA256 (rust/crates/arc-swap-1.7.1.crate) = 69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457
+SIZE (rust/crates/arc-swap-1.7.1.crate) = 68512
SHA256 (rust/crates/as-slice-0.2.1.crate) = 516b6b4f0e40d50dcda9365d53964ec74560ad4284da2e7fc97122cd83174516
SIZE (rust/crates/as-slice-0.2.1.crate) = 6942
-SHA256 (rust/crates/async-recursion-1.0.5.crate) = 5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0
-SIZE (rust/crates/async-recursion-1.0.5.crate) = 11890
-SHA256 (rust/crates/async-trait-0.1.77.crate) = c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9
-SIZE (rust/crates/async-trait-0.1.77.crate) = 29986
-SHA256 (rust/crates/autocfg-1.1.0.crate) = d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa
-SIZE (rust/crates/autocfg-1.1.0.crate) = 13272
-SHA256 (rust/crates/axum-0.6.20.crate) = 3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf
-SIZE (rust/crates/axum-0.6.20.crate) = 146227
-SHA256 (rust/crates/axum-core-0.3.4.crate) = 759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c
-SIZE (rust/crates/axum-core-0.3.4.crate) = 21088
-SHA256 (rust/crates/axum-server-0.5.1.crate) = 447f28c85900215cc1bea282f32d4a2f22d55c5a300afdfbc661c8d6a632e063
-SIZE (rust/crates/axum-server-0.5.1.crate) = 37642
-SHA256 (rust/crates/backtrace-0.3.69.crate) = 2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837
-SIZE (rust/crates/backtrace-0.3.69.crate) = 77299
+SHA256 (rust/crates/async-recursion-1.1.1.crate) = 3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11
+SIZE (rust/crates/async-recursion-1.1.1.crate) = 14874
+SHA256 (rust/crates/async-trait-0.1.80.crate) = c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca
+SIZE (rust/crates/async-trait-0.1.80.crate) = 28775
+SHA256 (rust/crates/autocfg-1.2.0.crate) = f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80
+SIZE (rust/crates/autocfg-1.2.0.crate) = 14808
+SHA256 (rust/crates/axum-0.7.5.crate) = 3a6c9af12842a67734c9a2e355436e5d03b22383ed60cf13cd0c18fbfe3dcbcf
+SIZE (rust/crates/axum-0.7.5.crate) = 151429
+SHA256 (rust/crates/axum-core-0.4.3.crate) = a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3
+SIZE (rust/crates/axum-core-0.4.3.crate) = 21877
+SHA256 (rust/crates/axum-server-0.6.0.crate) = c1ad46c3ec4e12f4a4b6835e173ba21c25e484c9d02b49770bf006ce5367c036
+SIZE (rust/crates/axum-server-0.6.0.crate) = 36772
+SHA256 (rust/crates/backtrace-0.3.71.crate) = 26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d
+SIZE (rust/crates/backtrace-0.3.71.crate) = 86553
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/base64-simd-0.7.0.crate) = 781dd20c3aff0bd194fe7d2a977dd92f21c173891f3a03b677359e5fa457e5d5
SIZE (rust/crates/base64-simd-0.7.0.crate) = 9966
SHA256 (rust/crates/base64ct-1.6.0.crate) = 8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b
SIZE (rust/crates/base64ct-1.6.0.crate) = 28870
SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
SIZE (rust/crates/bitflags-1.3.2.crate) = 23021
-SHA256 (rust/crates/bitflags-2.4.2.crate) = ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf
-SIZE (rust/crates/bitflags-2.4.2.crate) = 42602
+SHA256 (rust/crates/bitflags-2.5.0.crate) = cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1
+SIZE (rust/crates/bitflags-2.5.0.crate) = 43821
SHA256 (rust/crates/bitvec-1.0.1.crate) = 1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c
SIZE (rust/crates/bitvec-1.0.1.crate) = 224375
SHA256 (rust/crates/block-buffer-0.10.4.crate) = 3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71
SIZE (rust/crates/block-buffer-0.10.4.crate) = 10538
-SHA256 (rust/crates/bumpalo-3.15.4.crate) = 7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa
-SIZE (rust/crates/bumpalo-3.15.4.crate) = 85028
+SHA256 (rust/crates/bumpalo-3.16.0.crate) = 79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c
+SIZE (rust/crates/bumpalo-3.16.0.crate) = 85677
SHA256 (rust/crates/bytecheck-0.6.12.crate) = 23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2
SIZE (rust/crates/bytecheck-0.6.12.crate) = 8202
SHA256 (rust/crates/bytecheck_derive-0.6.12.crate) = 3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659
SIZE (rust/crates/bytecheck_derive-0.6.12.crate) = 5415
-SHA256 (rust/crates/bytemuck-1.14.3.crate) = a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f
-SIZE (rust/crates/bytemuck-1.14.3.crate) = 47032
+SHA256 (rust/crates/bytemuck-1.15.0.crate) = 5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15
+SIZE (rust/crates/bytemuck-1.15.0.crate) = 47672
SHA256 (rust/crates/byteorder-1.5.0.crate) = 1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b
SIZE (rust/crates/byteorder-1.5.0.crate) = 23288
-SHA256 (rust/crates/bytes-1.5.0.crate) = a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223
-SIZE (rust/crates/bytes-1.5.0.crate) = 58909
+SHA256 (rust/crates/bytes-1.6.0.crate) = 514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9
+SIZE (rust/crates/bytes-1.6.0.crate) = 60605
SHA256 (rust/crates/bzip2-0.4.4.crate) = bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8
SIZE (rust/crates/bzip2-0.4.4.crate) = 34197
SHA256 (rust/crates/bzip2-sys-0.1.11+1.0.8.crate) = 736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc
@@ -81,28 +83,30 @@ SHA256 (rust/crates/camino-1.1.6.crate) = c59e92b5a388f549b863a7bea62612c09f24c8
SIZE (rust/crates/camino-1.1.6.crate) = 30519
SHA256 (rust/crates/cargo-lock-9.0.0.crate) = e11c675378efb449ed3ce8de78d75d0d80542fc98487c26aba28eb3b82feac72
SIZE (rust/crates/cargo-lock-9.0.0.crate) = 40465
-SHA256 (rust/crates/cargo-platform-0.1.7.crate) = 694c8807f2ae16faecc43dc17d74b3eb042482789fd0eb64b39a2e04e087053f
-SIZE (rust/crates/cargo-platform-0.1.7.crate) = 11819
+SHA256 (rust/crates/cargo-platform-0.1.8.crate) = 24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc
+SIZE (rust/crates/cargo-platform-0.1.8.crate) = 11813
SHA256 (rust/crates/cargo_metadata-0.18.1.crate) = 2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037
SIZE (rust/crates/cargo_metadata-0.18.1.crate) = 24535
-SHA256 (rust/crates/cc-1.0.90.crate) = 8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5
-SIZE (rust/crates/cc-1.0.90.crate) = 73954
+SHA256 (rust/crates/cc-1.0.96.crate) = 065a29261d53ba54260972629f9ca6bffa69bac13cd1fed61420f7fa68b9f8bd
+SIZE (rust/crates/cc-1.0.96.crate) = 76576
SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
-SHA256 (rust/crates/chrono-0.4.35.crate) = 8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a
-SIZE (rust/crates/chrono-0.4.35.crate) = 234267
+SHA256 (rust/crates/chrono-0.4.38.crate) = a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401
+SIZE (rust/crates/chrono-0.4.38.crate) = 220559
SHA256 (rust/crates/cipher-0.4.4.crate) = 773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad
SIZE (rust/crates/cipher-0.4.4.crate) = 19073
-SHA256 (rust/crates/clap-4.5.2.crate) = b230ab84b0ffdf890d5a10abdbc8b83ae1c4918275daea1ab8801f71536b2651
-SIZE (rust/crates/clap-4.5.2.crate) = 55385
+SHA256 (rust/crates/clap-4.5.4.crate) = 90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0
+SIZE (rust/crates/clap-4.5.4.crate) = 55401
SHA256 (rust/crates/clap_builder-4.5.2.crate) = ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4
SIZE (rust/crates/clap_builder-4.5.2.crate) = 163566
-SHA256 (rust/crates/clap_derive-4.5.0.crate) = 307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47
-SIZE (rust/crates/clap_derive-4.5.0.crate) = 29042
+SHA256 (rust/crates/clap_derive-4.5.4.crate) = 528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64
+SIZE (rust/crates/clap_derive-4.5.4.crate) = 29159
SHA256 (rust/crates/clap_lex-0.7.0.crate) = 98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce
SIZE (rust/crates/clap_lex-0.7.0.crate) = 11915
-SHA256 (rust/crates/colorchoice-1.0.0.crate) = acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7
-SIZE (rust/crates/colorchoice-1.0.0.crate) = 6857
+SHA256 (rust/crates/clap_mangen-0.2.20.crate) = e1dd95b5ebb5c1c54581dd6346f3ed6a79a3eef95dd372fc2ac13d535535300e
+SIZE (rust/crates/clap_mangen-0.2.20.crate) = 14861
+SHA256 (rust/crates/colorchoice-1.0.1.crate) = 0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422
+SIZE (rust/crates/colorchoice-1.0.1.crate) = 7895
SHA256 (rust/crates/console-0.15.8.crate) = 0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb
SIZE (rust/crates/console-0.15.8.crate) = 36364
SHA256 (rust/crates/const-str-0.3.2.crate) = 21077772762a1002bb421c3af42ac1725fa56066bfc53d9a55bb79905df2aaf3
@@ -119,8 +123,8 @@ SHA256 (rust/crates/core-foundation-sys-0.8.6.crate) = 06ea2b9bc92be3c2baa9334a3
SIZE (rust/crates/core-foundation-sys-0.8.6.crate) = 37629
SHA256 (rust/crates/cpufeatures-0.2.12.crate) = 53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504
SIZE (rust/crates/cpufeatures-0.2.12.crate) = 12837
-SHA256 (rust/crates/crates_io_api-0.9.0.crate) = cb0122a67287f6795360b83a542cf2fbb3eb57a42729966c9ac792598c909902
-SIZE (rust/crates/crates_io_api-0.9.0.crate) = 18902
+SHA256 (rust/crates/crates_io_api-0.11.0.crate) = 200ad30d24892baf2168f2df366939264d02f2fa0be0914f8e2da4bd3407c58c
+SIZE (rust/crates/crates_io_api-0.11.0.crate) = 19023
SHA256 (rust/crates/crc32fast-1.4.0.crate) = b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa
SIZE (rust/crates/crc32fast-1.4.0.crate) = 38665
SHA256 (rust/crates/crossbeam-channel-0.5.12.crate) = ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95
@@ -145,8 +149,8 @@ SHA256 (rust/crates/cvt-0.1.2.crate) = d2ae9bf77fbf2d39ef573205d554d87e86c12f199
SIZE (rust/crates/cvt-0.1.2.crate) = 6214
SHA256 (rust/crates/dashmap-5.5.3.crate) = 978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856
SIZE (rust/crates/dashmap-5.5.3.crate) = 24061
-SHA256 (rust/crates/data-encoding-2.5.0.crate) = 7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5
-SIZE (rust/crates/data-encoding-2.5.0.crate) = 20632
+SHA256 (rust/crates/data-encoding-2.6.0.crate) = e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2
+SIZE (rust/crates/data-encoding-2.6.0.crate) = 20769
SHA256 (rust/crates/data-url-0.1.1.crate) = 3a30bfce702bcfa94e906ef82421f2c0e61c076ad76030c16ee5d2e9a32fe193
SIZE (rust/crates/data-url-0.1.1.crate) = 20039
SHA256 (rust/crates/deranged-0.3.11.crate) = b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4
@@ -165,30 +169,30 @@ SHA256 (rust/crates/dtoa-short-0.3.4.crate) = dbaceec3c6e4211c79e7b1800fb9680527
SIZE (rust/crates/dtoa-short-0.3.4.crate) = 8276
SHA256 (rust/crates/dunce-1.0.4.crate) = 56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b
SIZE (rust/crates/dunce-1.0.4.crate) = 8034
-SHA256 (rust/crates/either-1.10.0.crate) = 11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a
-SIZE (rust/crates/either-1.10.0.crate) = 18334
+SHA256 (rust/crates/either-1.11.0.crate) = a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2
+SIZE (rust/crates/either-1.11.0.crate) = 18973
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.33.crate) = 7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1
-SIZE (rust/crates/encoding_rs-0.8.33.crate) = 1370071
-SHA256 (rust/crates/enum-as-inner-0.6.0.crate) = 5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a
-SIZE (rust/crates/enum-as-inner-0.6.0.crate) = 12079
-SHA256 (rust/crates/env_logger-0.10.2.crate) = 4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580
-SIZE (rust/crates/env_logger-0.10.2.crate) = 36402
+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.0.crate) = a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea
+SIZE (rust/crates/env_filter-0.1.0.crate) = 11553
+SHA256 (rust/crates/env_logger-0.11.3.crate) = 38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9
+SIZE (rust/crates/env_logger-0.11.3.crate) = 29704
SHA256 (rust/crates/envy-0.4.2.crate) = 3f47e0157f2cb54f5ae1bd371b30a2ae4311e1c028f575cd4e81de7353215965
SIZE (rust/crates/envy-0.4.2.crate) = 10985
SHA256 (rust/crates/equivalent-1.0.1.crate) = 5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5
SIZE (rust/crates/equivalent-1.0.1.crate) = 6615
SHA256 (rust/crates/errno-0.3.8.crate) = a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245
SIZE (rust/crates/errno-0.3.8.crate) = 10645
-SHA256 (rust/crates/fastrand-2.0.1.crate) = 25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5
-SIZE (rust/crates/fastrand-2.0.1.crate) = 14664
+SHA256 (rust/crates/fastrand-2.1.0.crate) = 9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a
+SIZE (rust/crates/fastrand-2.1.0.crate) = 14907
SHA256 (rust/crates/file-id-0.2.1.crate) = 6584280525fb2059cba3db2c04abf947a1a29a45ddae89f3870f8281704fafc9
SIZE (rust/crates/file-id-0.2.1.crate) = 10240
SHA256 (rust/crates/filetime-0.2.23.crate) = 1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd
SIZE (rust/crates/filetime-0.2.23.crate) = 14942
-SHA256 (rust/crates/flate2-1.0.28.crate) = 46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e
-SIZE (rust/crates/flate2-1.0.28.crate) = 73690
+SHA256 (rust/crates/flate2-1.0.30.crate) = 5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae
+SIZE (rust/crates/flate2-1.0.30.crate) = 75511
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
@@ -203,8 +207,6 @@ SHA256 (rust/crates/fsevent-sys-4.1.0.crate) = 76ee7a02da4d231650c7cea31349b889b
SIZE (rust/crates/fsevent-sys-4.1.0.crate) = 4620
SHA256 (rust/crates/funty-2.0.0.crate) = e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c
SIZE (rust/crates/funty-2.0.0.crate) = 13160
-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
@@ -221,6 +223,8 @@ SHA256 (rust/crates/futures-sink-0.3.30.crate) = 9fb8e00e87438d937621c1c6269e53f
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-timer-3.0.3.crate) = f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24
+SIZE (rust/crates/futures-timer-3.0.3.crate) = 19739
SHA256 (rust/crates/futures-util-0.3.30.crate) = 3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48
SIZE (rust/crates/futures-util-0.3.30.crate) = 159977
SHA256 (rust/crates/fxhash-0.2.1.crate) = c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c
@@ -229,40 +233,40 @@ SHA256 (rust/crates/generic-array-0.14.7.crate) = 85649ca51fd72272d7821adaf274ad
SIZE (rust/crates/generic-array-0.14.7.crate) = 15950
SHA256 (rust/crates/getrandom-0.1.16.crate) = 8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce
SIZE (rust/crates/getrandom-0.1.16.crate) = 25077
-SHA256 (rust/crates/getrandom-0.2.12.crate) = 190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5
-SIZE (rust/crates/getrandom-0.2.12.crate) = 36163
+SHA256 (rust/crates/getrandom-0.2.14.crate) = 94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c
+SIZE (rust/crates/getrandom-0.2.14.crate) = 37307
SHA256 (rust/crates/gimli-0.28.1.crate) = 4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253
SIZE (rust/crates/gimli-0.28.1.crate) = 270497
SHA256 (rust/crates/glob-0.3.1.crate) = d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b
SIZE (rust/crates/glob-0.3.1.crate) = 18880
-SHA256 (rust/crates/h2-0.3.24.crate) = bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9
-SIZE (rust/crates/h2-0.3.24.crate) = 167814
+SHA256 (rust/crates/h2-0.4.4.crate) = 816ec7294445779408f36fe57bc5b7fc1cf59664059096c65f905c1c61f58069
+SIZE (rust/crates/h2-0.4.4.crate) = 168905
SHA256 (rust/crates/hashbrown-0.12.3.crate) = 8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888
SIZE (rust/crates/hashbrown-0.12.3.crate) = 102968
SHA256 (rust/crates/hashbrown-0.13.2.crate) = 43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e
SIZE (rust/crates/hashbrown-0.13.2.crate) = 105265
-SHA256 (rust/crates/hashbrown-0.14.3.crate) = 290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604
-SIZE (rust/crates/hashbrown-0.14.3.crate) = 141425
+SHA256 (rust/crates/hashbrown-0.14.5.crate) = e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1
+SIZE (rust/crates/hashbrown-0.14.5.crate) = 141498
SHA256 (rust/crates/heck-0.4.1.crate) = 95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8
SIZE (rust/crates/heck-0.4.1.crate) = 11567
+SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea
+SIZE (rust/crates/heck-0.5.0.crate) = 11517
SHA256 (rust/crates/hermit-abi-0.3.9.crate) = d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024
SIZE (rust/crates/hermit-abi-0.3.9.crate) = 16165
SHA256 (rust/crates/hmac-0.12.1.crate) = 6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e
SIZE (rust/crates/hmac-0.12.1.crate) = 42657
SHA256 (rust/crates/home-0.5.9.crate) = e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5
SIZE (rust/crates/home-0.5.9.crate) = 8760
-SHA256 (rust/crates/hostname-0.3.1.crate) = 3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867
-SIZE (rust/crates/hostname-0.3.1.crate) = 9272
-SHA256 (rust/crates/html5ever-0.25.2.crate) = e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148
-SIZE (rust/crates/html5ever-0.25.2.crate) = 72780
SHA256 (rust/crates/htmlescape-0.3.1.crate) = e9025058dae765dee5070ec375f591e2ba14638c63feff74f13805a72e523163
SIZE (rust/crates/htmlescape-0.3.1.crate) = 53226
-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-range-header-0.3.1.crate) = add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f
-SIZE (rust/crates/http-range-header-0.3.1.crate) = 7712
+SHA256 (rust/crates/http-1.1.0.crate) = 21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258
+SIZE (rust/crates/http-1.1.0.crate) = 103144
+SHA256 (rust/crates/http-body-1.0.0.crate) = 1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643
+SIZE (rust/crates/http-body-1.0.0.crate) = 5411
+SHA256 (rust/crates/http-body-util-0.1.1.crate) = 0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d
+SIZE (rust/crates/http-body-util-0.1.1.crate) = 11930
+SHA256 (rust/crates/http-range-header-0.4.0.crate) = 3ce4ef31cda248bbdb6e6820603b82dfcd9e833db65a43e997a0ccec777d11fe
+SIZE (rust/crates/http-range-header-0.4.0.crate) = 8016
SHA256 (rust/crates/httparse-1.8.0.crate) = d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904
SIZE (rust/crates/httparse-1.8.0.crate) = 29954
SHA256 (rust/crates/httpdate-1.0.3.crate) = df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9
@@ -271,44 +275,42 @@ SHA256 (rust/crates/humantime-2.1.0.crate) = 9a3a5bfb195931eeb336b2a7b4d761daec8
SIZE (rust/crates/humantime-2.1.0.crate) = 16749
SHA256 (rust/crates/humantime-serde-1.1.1.crate) = 57a3db5ea5923d99402c94e9feb261dc5ee9b4efa158b0315f788cf549cc200c
SIZE (rust/crates/humantime-serde-1.1.1.crate) = 7886
-SHA256 (rust/crates/hyper-0.14.28.crate) = bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80
-SIZE (rust/crates/hyper-0.14.28.crate) = 197204
-SHA256 (rust/crates/hyper-rustls-0.24.2.crate) = ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590
-SIZE (rust/crates/hyper-rustls-0.24.2.crate) = 30195
-SHA256 (rust/crates/hyper-tls-0.5.0.crate) = d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905
-SIZE (rust/crates/hyper-tls-0.5.0.crate) = 13257
-SHA256 (rust/crates/idna-0.4.0.crate) = 7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c
-SIZE (rust/crates/idna-0.4.0.crate) = 271429
+SHA256 (rust/crates/hyper-1.3.1.crate) = fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d
+SIZE (rust/crates/hyper-1.3.1.crate) = 148763
+SHA256 (rust/crates/hyper-rustls-0.26.0.crate) = a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c
+SIZE (rust/crates/hyper-rustls-0.26.0.crate) = 29538
+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.3.crate) = ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa
+SIZE (rust/crates/hyper-util-0.1.3.crate) = 61647
SHA256 (rust/crates/idna-0.5.0.crate) = 634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6
SIZE (rust/crates/idna-0.5.0.crate) = 271940
-SHA256 (rust/crates/indexmap-2.2.5.crate) = 7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4
-SIZE (rust/crates/indexmap-2.2.5.crate) = 81498
+SHA256 (rust/crates/indexmap-2.2.6.crate) = 168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26
+SIZE (rust/crates/indexmap-2.2.6.crate) = 82420
SHA256 (rust/crates/inotify-0.9.6.crate) = f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff
SIZE (rust/crates/inotify-0.9.6.crate) = 22971
SHA256 (rust/crates/inotify-sys-0.1.5.crate) = e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb
SIZE (rust/crates/inotify-sys-0.1.5.crate) = 6965
SHA256 (rust/crates/inout-0.1.3.crate) = a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5
SIZE (rust/crates/inout-0.1.3.crate) = 10743
-SHA256 (rust/crates/ipconfig-0.3.2.crate) = b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f
-SIZE (rust/crates/ipconfig-0.3.2.crate) = 24468
SHA256 (rust/crates/ipnet-2.9.0.crate) = 8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3
SIZE (rust/crates/ipnet-2.9.0.crate) = 27627
SHA256 (rust/crates/is-docker-0.2.0.crate) = 928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3
SIZE (rust/crates/is-docker-0.2.0.crate) = 2664
-SHA256 (rust/crates/is-terminal-0.4.12.crate) = f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b
-SIZE (rust/crates/is-terminal-0.4.12.crate) = 7470
SHA256 (rust/crates/is-wsl-0.4.0.crate) = 173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5
SIZE (rust/crates/is-wsl-0.4.0.crate) = 3264
+SHA256 (rust/crates/is_terminal_polyfill-1.70.0.crate) = f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800
+SIZE (rust/crates/is_terminal_polyfill-1.70.0.crate) = 7451
SHA256 (rust/crates/itertools-0.10.5.crate) = b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473
SIZE (rust/crates/itertools-0.10.5.crate) = 115354
SHA256 (rust/crates/itertools-0.12.1.crate) = ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569
SIZE (rust/crates/itertools-0.12.1.crate) = 137761
SHA256 (rust/crates/itoa-0.4.8.crate) = b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4
SIZE (rust/crates/itoa-0.4.8.crate) = 11926
-SHA256 (rust/crates/itoa-1.0.10.crate) = b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c
-SIZE (rust/crates/itoa-1.0.10.crate) = 10534
-SHA256 (rust/crates/jobserver-0.1.28.crate) = ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6
-SIZE (rust/crates/jobserver-0.1.28.crate) = 25543
+SHA256 (rust/crates/itoa-1.0.11.crate) = 49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b
+SIZE (rust/crates/itoa-1.0.11.crate) = 10563
+SHA256 (rust/crates/jobserver-0.1.31.crate) = d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e
+SIZE (rust/crates/jobserver-0.1.31.crate) = 27306
SHA256 (rust/crates/js-sys-0.3.69.crate) = 29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d
SIZE (rust/crates/js-sys-0.3.69.crate) = 81083
SHA256 (rust/crates/kqueue-1.0.8.crate) = 7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c
@@ -317,42 +319,36 @@ SHA256 (rust/crates/kqueue-sys-1.0.4.crate) = ed9625ffda8729b85e45cf04090035ac36
SIZE (rust/crates/kqueue-sys-1.0.4.crate) = 7160
SHA256 (rust/crates/lazy_static-1.4.0.crate) = e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646
SIZE (rust/crates/lazy_static-1.4.0.crate) = 10443
-SHA256 (rust/crates/libc-0.2.153.crate) = 9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd
-SIZE (rust/crates/libc-0.2.153.crate) = 740614
-SHA256 (rust/crates/libdeflate-sys-1.19.3.crate) = cc9caa76c8cc6ee8c4efcf8f4514a812ebcad3aa7d3b548efe4d26da1203f177
-SIZE (rust/crates/libdeflate-sys-1.19.3.crate) = 192512
-SHA256 (rust/crates/libdeflater-1.19.3.crate) = 265a985bd31e5f22e2b2ac107cbed44c6ccf40ae236e46963cd00dd213e4bd03
-SIZE (rust/crates/libdeflater-1.19.3.crate) = 24046
-SHA256 (rust/crates/libredox-0.0.1.crate) = 85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8
-SIZE (rust/crates/libredox-0.0.1.crate) = 4212
-SHA256 (rust/crates/lightningcss-1.0.0-alpha.54.crate) = 07d306844e5af1753490c420c0d6ae3d814b00725092d106332762827ca8f0fe
-SIZE (rust/crates/lightningcss-1.0.0-alpha.54.crate) = 7380143
-SHA256 (rust/crates/linked-hash-map-0.5.6.crate) = 0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f
-SIZE (rust/crates/linked-hash-map-0.5.6.crate) = 15049
+SHA256 (rust/crates/lazycell-1.3.0.crate) = 830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55
+SIZE (rust/crates/lazycell-1.3.0.crate) = 12502
+SHA256 (rust/crates/libc-0.2.154.crate) = ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346
+SIZE (rust/crates/libc-0.2.154.crate) = 743304
+SHA256 (rust/crates/libdeflate-sys-1.20.0.crate) = 669ea17f9257bcb48c09c7ee4bef3957777504acffac557263e20c11001977bc
+SIZE (rust/crates/libdeflate-sys-1.20.0.crate) = 199148
+SHA256 (rust/crates/libdeflater-1.20.0.crate) = 8dfd6424f7010ee0a3416f1d796d0450e3ad3ac237a237644f728277c4ded016
+SIZE (rust/crates/libdeflater-1.20.0.crate) = 22114
+SHA256 (rust/crates/libredox-0.1.3.crate) = c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d
+SIZE (rust/crates/libredox-0.1.3.crate) = 6068
+SHA256 (rust/crates/lightningcss-1.0.0-alpha.55.crate) = 3bd5bed3814fb631bfc1e24c2be6f7e86a9837c660909acab79a38374dcb8798
+SIZE (rust/crates/lightningcss-1.0.0-alpha.55.crate) = 7381387
SHA256 (rust/crates/linux-raw-sys-0.4.13.crate) = 01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c
SIZE (rust/crates/linux-raw-sys-0.4.13.crate) = 1493855
SHA256 (rust/crates/local-ip-address-0.6.1.crate) = 136ef34e18462b17bf39a7826f8f3bbc223341f8e83822beb8b77db9a3d49696
SIZE (rust/crates/local-ip-address-0.6.1.crate) = 25630
-SHA256 (rust/crates/lock_api-0.4.11.crate) = 3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45
-SIZE (rust/crates/lock_api-0.4.11.crate) = 27487
+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.21.crate) = 90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c
SIZE (rust/crates/log-0.4.21.crate) = 43442
-SHA256 (rust/crates/lru-cache-0.1.2.crate) = 31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c
-SIZE (rust/crates/lru-cache-0.1.2.crate) = 9307
-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/match_cfg-0.1.0.crate) = ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4
-SIZE (rust/crates/match_cfg-0.1.0.crate) = 7153
+SHA256 (rust/crates/lol_html-1.2.1.crate) = a4629ff9c2deeb7aad9b2d0f379fc41937a02f3b739f007732c46af40339dee5
+SIZE (rust/crates/lol_html-1.2.1.crate) = 544687
SHA256 (rust/crates/matchers-0.1.0.crate) = 8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558
SIZE (rust/crates/matchers-0.1.0.crate) = 6948
SHA256 (rust/crates/matches-0.1.10.crate) = 2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5
SIZE (rust/crates/matches-0.1.10.crate) = 2592
SHA256 (rust/crates/matchit-0.7.3.crate) = 0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94
SIZE (rust/crates/matchit-0.7.3.crate) = 30372
-SHA256 (rust/crates/memchr-2.7.1.crate) = 523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149
-SIZE (rust/crates/memchr-2.7.1.crate) = 96307
+SHA256 (rust/crates/memchr-2.7.2.crate) = 6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d
+SIZE (rust/crates/memchr-2.7.2.crate) = 96220
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.4.crate) = 4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef
@@ -373,10 +369,6 @@ SHA256 (rust/crates/neli-0.6.4.crate) = 1100229e06604150b3becd61a4965d5c70f3be17
SIZE (rust/crates/neli-0.6.4.crate) = 48016
SHA256 (rust/crates/neli-proc-macros-0.1.3.crate) = c168194d373b1e134786274020dae7fc5513d565ea2ebb9bc9ff17ffb69106d4
SIZE (rust/crates/neli-proc-macros-0.1.3.crate) = 10111
-SHA256 (rust/crates/new_debug_unreachable-1.0.4.crate) = e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54
-SIZE (rust/crates/new_debug_unreachable-1.0.4.crate) = 2561
-SHA256 (rust/crates/nipper-0.1.9.crate) = 761382864693f4bb171abf9e8de181a320b00464a83a9a5071059057b1fe0116
-SIZE (rust/crates/nipper-0.1.9.crate) = 222329
SHA256 (rust/crates/nix-0.26.4.crate) = 598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b
SIZE (rust/crates/nix-0.26.4.crate) = 279099
SHA256 (rust/crates/nodrop-0.1.14.crate) = 72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb
@@ -407,24 +399,24 @@ SHA256 (rust/crates/openssl-macros-0.1.1.crate) = a948666b637a0f465e8564c73e89d4
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-sys-0.9.101.crate) = dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff
-SIZE (rust/crates/openssl-sys-0.9.101.crate) = 68568
+SHA256 (rust/crates/openssl-sys-0.9.102.crate) = c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2
+SIZE (rust/crates/openssl-sys-0.9.102.crate) = 68622
SHA256 (rust/crates/option-ext-0.2.0.crate) = 04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d
SIZE (rust/crates/option-ext-0.2.0.crate) = 7345
SHA256 (rust/crates/outref-0.1.0.crate) = 7f222829ae9293e33a9f5e9f440c6760a3d450a64affe1846486b140db81c1f4
SIZE (rust/crates/outref-0.1.0.crate) = 3067
SHA256 (rust/crates/overload-0.1.1.crate) = b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39
SIZE (rust/crates/overload-0.1.1.crate) = 24439
-SHA256 (rust/crates/oxipng-9.0.0.crate) = 28e5c341ef78a228e47a551bfd15ff885d8c501af49f953358763a538c01f14d
-SIZE (rust/crates/oxipng-9.0.0.crate) = 66747
+SHA256 (rust/crates/oxipng-9.1.1.crate) = 3f398c53eb34e0cf71d9e0bc676cfa7c611e3844dd14ab05e92fb7b423c98ecf
+SIZE (rust/crates/oxipng-9.1.1.crate) = 65843
SHA256 (rust/crates/parcel_selectors-0.26.4.crate) = 05d74befe2d076330d9a58bf9ca2da424568724ab278adf15fb5718253133887
SIZE (rust/crates/parcel_selectors-0.26.4.crate) = 58302
SHA256 (rust/crates/parcel_sourcemap-2.1.1.crate) = 485b74d7218068b2b7c0e3ff12fbc61ae11d57cb5d8224f525bd304c6be05bbb
SIZE (rust/crates/parcel_sourcemap-2.1.1.crate) = 9533
-SHA256 (rust/crates/parking_lot-0.12.1.crate) = 3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f
-SIZE (rust/crates/parking_lot-0.12.1.crate) = 40967
-SHA256 (rust/crates/parking_lot_core-0.9.9.crate) = 4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e
-SIZE (rust/crates/parking_lot_core-0.9.9.crate) = 32445
+SHA256 (rust/crates/parking_lot-0.12.2.crate) = 7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb
+SIZE (rust/crates/parking_lot-0.12.2.crate) = 41723
+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/parse-js-0.17.0.crate) = 9ec3b11d443640ec35165ee8f6f0559f1c6f41878d70330fe9187012b5935f02
SIZE (rust/crates/parse-js-0.17.0.crate) = 50713
SHA256 (rust/crates/password-hash-0.4.2.crate) = 7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700
@@ -467,8 +459,8 @@ SHA256 (rust/crates/pin-project-1.1.5.crate) = b6bf43b791c5b9e34c3d182969b4abb52
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.13.crate) = 8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58
-SIZE (rust/crates/pin-project-lite-0.2.13.crate) = 29141
+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-utils-0.1.0.crate) = 8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184
SIZE (rust/crates/pin-utils-0.1.0.crate) = 7580
SHA256 (rust/crates/pkg-config-0.3.30.crate) = d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec
@@ -481,16 +473,14 @@ SHA256 (rust/crates/precomputed-hash-0.1.1.crate) = 925383efa346730478fb4838dbe9
SIZE (rust/crates/precomputed-hash-0.1.1.crate) = 1640
SHA256 (rust/crates/proc-macro-hack-0.5.20+deprecated.crate) = dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068
SIZE (rust/crates/proc-macro-hack-0.5.20+deprecated.crate) = 15045
-SHA256 (rust/crates/proc-macro2-1.0.78.crate) = e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae
-SIZE (rust/crates/proc-macro2-1.0.78.crate) = 47158
+SHA256 (rust/crates/proc-macro2-1.0.81.crate) = 3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba
+SIZE (rust/crates/proc-macro2-1.0.81.crate) = 48233
SHA256 (rust/crates/ptr_meta-0.1.4.crate) = 0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1
SIZE (rust/crates/ptr_meta-0.1.4.crate) = 5754
SHA256 (rust/crates/ptr_meta_derive-0.1.4.crate) = 16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac
SIZE (rust/crates/ptr_meta_derive-0.1.4.crate) = 2302
-SHA256 (rust/crates/quick-error-1.2.3.crate) = a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0
-SIZE (rust/crates/quick-error-1.2.3.crate) = 15066
-SHA256 (rust/crates/quote-1.0.35.crate) = 291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef
-SIZE (rust/crates/quote-1.0.35.crate) = 28136
+SHA256 (rust/crates/quote-1.0.36.crate) = 0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7
+SIZE (rust/crates/quote-1.0.36.crate) = 28507
SHA256 (rust/crates/radium-0.7.0.crate) = dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09
SIZE (rust/crates/radium-0.7.0.crate) = 10906
SHA256 (rust/crates/rand-0.7.3.crate) = 6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03
@@ -509,32 +499,34 @@ 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/rayon-1.9.0.crate) = e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd
-SIZE (rust/crates/rayon-1.9.0.crate) = 177770
+SHA256 (rust/crates/rayon-1.10.0.crate) = b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa
+SIZE (rust/crates/rayon-1.10.0.crate) = 180155
SHA256 (rust/crates/rayon-core-1.12.1.crate) = 1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2
SIZE (rust/crates/rayon-core-1.12.1.crate) = 70701
SHA256 (rust/crates/redox_syscall-0.4.1.crate) = 4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa
SIZE (rust/crates/redox_syscall-0.4.1.crate) = 24858
-SHA256 (rust/crates/redox_users-0.4.4.crate) = a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4
-SIZE (rust/crates/redox_users-0.4.4.crate) = 15438
-SHA256 (rust/crates/regex-1.10.3.crate) = b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15
-SIZE (rust/crates/regex-1.10.3.crate) = 253101
+SHA256 (rust/crates/redox_syscall-0.5.1.crate) = 469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e
+SIZE (rust/crates/redox_syscall-0.5.1.crate) = 22536
+SHA256 (rust/crates/redox_users-0.4.5.crate) = bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891
+SIZE (rust/crates/redox_users-0.4.5.crate) = 15514
+SHA256 (rust/crates/regex-1.10.4.crate) = c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c
+SIZE (rust/crates/regex-1.10.4.crate) = 253191
SHA256 (rust/crates/regex-automata-0.1.10.crate) = 6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132
SIZE (rust/crates/regex-automata-0.1.10.crate) = 114533
SHA256 (rust/crates/regex-automata-0.4.6.crate) = 86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea
SIZE (rust/crates/regex-automata-0.4.6.crate) = 617565
SHA256 (rust/crates/regex-syntax-0.6.29.crate) = f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1
SIZE (rust/crates/regex-syntax-0.6.29.crate) = 299752
-SHA256 (rust/crates/regex-syntax-0.8.2.crate) = c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f
-SIZE (rust/crates/regex-syntax-0.8.2.crate) = 347228
+SHA256 (rust/crates/regex-syntax-0.8.3.crate) = adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56
+SIZE (rust/crates/regex-syntax-0.8.3.crate) = 347497
+SHA256 (rust/crates/relative-path-1.9.2.crate) = e898588f33fdd5b9420719948f9f2a32c922a246964576f71ba7f24f80610fbc
+SIZE (rust/crates/relative-path-1.9.2.crate) = 22420
SHA256 (rust/crates/remove_dir_all-0.8.2.crate) = 23895cfadc1917fed9c6ed76a8c2903615fa3704f7493ff82b364c6540acc02b
SIZE (rust/crates/remove_dir_all-0.8.2.crate) = 19074
SHA256 (rust/crates/rend-0.4.2.crate) = 71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c
SIZE (rust/crates/rend-0.4.2.crate) = 9324
-SHA256 (rust/crates/reqwest-0.11.24.crate) = c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251
-SIZE (rust/crates/reqwest-0.11.24.crate) = 160972
-SHA256 (rust/crates/resolv-conf-0.7.0.crate) = 52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00
-SIZE (rust/crates/resolv-conf-0.7.0.crate) = 17352
+SHA256 (rust/crates/reqwest-0.12.4.crate) = 566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10
+SIZE (rust/crates/reqwest-0.12.4.crate) = 170627
SHA256 (rust/crates/rgb-0.8.37.crate) = 05aaa8004b64fd573fc9d002f4e632d51ad4f026c2b5ba95fcb6c2f32c2c47d8
SIZE (rust/crates/rgb-0.8.37.crate) = 16644
SHA256 (rust/crates/ring-0.17.8.crate) = c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d
@@ -543,24 +535,36 @@ SHA256 (rust/crates/rkyv-0.7.44.crate) = 5cba464629b3394fc4dbc6f940ff8f5b4ff5c7a
SIZE (rust/crates/rkyv-0.7.44.crate) = 115686
SHA256 (rust/crates/rkyv_derive-0.7.44.crate) = a7dddfff8de25e6f62b9d64e6e432bf1c6736c57d20323e15ee10435fbda7c65
SIZE (rust/crates/rkyv_derive-0.7.44.crate) = 18912
+SHA256 (rust/crates/roff-0.2.1.crate) = b833d8d034ea094b1ea68aa6d5c740e0d04bad9d16568d08ba6f76823a114316
+SIZE (rust/crates/roff-0.2.1.crate) = 10605
+SHA256 (rust/crates/rstest-0.19.0.crate) = 9d5316d2a1479eeef1ea21e7f9ddc67c191d497abc8fc3ba2467857abbb68330
+SIZE (rust/crates/rstest-0.19.0.crate) = 32932
+SHA256 (rust/crates/rstest_macros-0.19.0.crate) = 04a9df72cc1f67020b0d63ad9bfe4a323e459ea7eb68e03bd9824db49f9a4c25
+SIZE (rust/crates/rstest_macros-0.19.0.crate) = 61243
SHA256 (rust/crates/rustc-demangle-0.1.23.crate) = d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76
SIZE (rust/crates/rustc-demangle-0.1.23.crate) = 28970
SHA256 (rust/crates/rustc-hash-1.1.0.crate) = 08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2
SIZE (rust/crates/rustc-hash-1.1.0.crate) = 9331
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.38.31.crate) = 6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949
-SIZE (rust/crates/rustix-0.38.31.crate) = 375443
-SHA256 (rust/crates/rustls-0.21.10.crate) = f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba
-SIZE (rust/crates/rustls-0.21.10.crate) = 284920
-SHA256 (rust/crates/rustls-native-certs-0.6.3.crate) = a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00
-SIZE (rust/crates/rustls-native-certs-0.6.3.crate) = 24438
-SHA256 (rust/crates/rustls-pemfile-1.0.4.crate) = 1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c
-SIZE (rust/crates/rustls-pemfile-1.0.4.crate) = 22092
+SHA256 (rust/crates/rustix-0.38.34.crate) = 70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f
+SIZE (rust/crates/rustix-0.38.34.crate) = 365160
+SHA256 (rust/crates/rustls-0.21.12.crate) = 3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e
+SIZE (rust/crates/rustls-0.21.12.crate) = 285674
+SHA256 (rust/crates/rustls-0.22.4.crate) = bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432
+SIZE (rust/crates/rustls-0.22.4.crate) = 333681
+SHA256 (rust/crates/rustls-native-certs-0.7.0.crate) = 8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792
+SIZE (rust/crates/rustls-native-certs-0.7.0.crate) = 25071
+SHA256 (rust/crates/rustls-pemfile-2.1.2.crate) = 29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d
+SIZE (rust/crates/rustls-pemfile-2.1.2.crate) = 25928
+SHA256 (rust/crates/rustls-pki-types-1.5.0.crate) = beb461507cee2c2ff151784c52762cf4d9ff6a61f3e80968600ed24fa837fa54
+SIZE (rust/crates/rustls-pki-types-1.5.0.crate) = 29362
SHA256 (rust/crates/rustls-webpki-0.101.7.crate) = 8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765
SIZE (rust/crates/rustls-webpki-0.101.7.crate) = 168808
-SHA256 (rust/crates/rustversion-1.0.14.crate) = 7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4
-SIZE (rust/crates/rustversion-1.0.14.crate) = 17261
+SHA256 (rust/crates/rustls-webpki-0.102.3.crate) = f3bce581c0dd41bce533ce695a1437fa16a7ab5ac3ccfa99fe1a620a7885eabf
+SIZE (rust/crates/rustls-webpki-0.102.3.crate) = 197543
+SHA256 (rust/crates/rustversion-1.0.15.crate) = 80af6f9131f277a45a3fba6ce8e2258037bb0477a67e610d3c1fe046ab31de47
+SIZE (rust/crates/rustversion-1.0.15.crate) = 17406
SHA256 (rust/crates/ryu-1.0.17.crate) = e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1
SIZE (rust/crates/ryu-1.0.17.crate) = 47537
SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502
@@ -573,22 +577,22 @@ SHA256 (rust/crates/sct-0.7.1.crate) = da046153aa2352493d6cb7da4b6e5c0c057d8a1d0
SIZE (rust/crates/sct-0.7.1.crate) = 27501
SHA256 (rust/crates/seahash-4.1.0.crate) = 1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b
SIZE (rust/crates/seahash-4.1.0.crate) = 31976
-SHA256 (rust/crates/security-framework-2.9.2.crate) = 05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de
-SIZE (rust/crates/security-framework-2.9.2.crate) = 79295
-SHA256 (rust/crates/security-framework-sys-2.9.1.crate) = e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a
-SIZE (rust/crates/security-framework-sys-2.9.1.crate) = 18284
+SHA256 (rust/crates/security-framework-2.10.0.crate) = 770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6
+SIZE (rust/crates/security-framework-2.10.0.crate) = 79723
+SHA256 (rust/crates/security-framework-sys-2.10.0.crate) = 41f3cc463c0ef97e11c3461a9d3787412d30e8e7eb907c79180c4a57bf7c04ef
+SIZE (rust/crates/security-framework-sys-2.10.0.crate) = 18676
SHA256 (rust/crates/selectors-0.22.0.crate) = df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe
SIZE (rust/crates/selectors-0.22.0.crate) = 44199
SHA256 (rust/crates/semver-1.0.22.crate) = 92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca
SIZE (rust/crates/semver-1.0.22.crate) = 30446
-SHA256 (rust/crates/serde-1.0.197.crate) = 3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2
-SIZE (rust/crates/serde-1.0.197.crate) = 77087
-SHA256 (rust/crates/serde_derive-1.0.197.crate) = 7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b
-SIZE (rust/crates/serde_derive-1.0.197.crate) = 55771
-SHA256 (rust/crates/serde_json-1.0.114.crate) = c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0
-SIZE (rust/crates/serde_json-1.0.114.crate) = 146986
-SHA256 (rust/crates/serde_path_to_error-0.1.15.crate) = ebd154a240de39fdebcf5775d2675c204d7c13cf39a4c697be6493c8e734337c
-SIZE (rust/crates/serde_path_to_error-0.1.15.crate) = 16623
+SHA256 (rust/crates/serde-1.0.200.crate) = ddc6f9cc94d67c0e21aaf7eda3a010fd3af78ebf6e096aa6e2e13c79749cce4f
+SIZE (rust/crates/serde-1.0.200.crate) = 77611
+SHA256 (rust/crates/serde_derive-1.0.200.crate) = 856f046b9400cee3c8c94ed572ecdb752444c24528c035cd35882aad6f492bcb
+SIZE (rust/crates/serde_derive-1.0.200.crate) = 55785
+SHA256 (rust/crates/serde_json-1.0.116.crate) = 3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813
+SIZE (rust/crates/serde_json-1.0.116.crate) = 146790
+SHA256 (rust/crates/serde_path_to_error-0.1.16.crate) = af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6
+SIZE (rust/crates/serde_path_to_error-0.1.16.crate) = 16657
SHA256 (rust/crates/serde_spanned-0.6.5.crate) = eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1
SIZE (rust/crates/serde_spanned-0.6.5.crate) = 8349
SHA256 (rust/crates/serde_urlencoded-0.7.1.crate) = d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd
@@ -601,8 +605,8 @@ SHA256 (rust/crates/sha2-0.10.8.crate) = 793db75ad2bcafc3ffa7c68b215fee268f53798
SIZE (rust/crates/sha2-0.10.8.crate) = 26357
SHA256 (rust/crates/sharded-slab-0.1.7.crate) = f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6
SIZE (rust/crates/sharded-slab-0.1.7.crate) = 58227
-SHA256 (rust/crates/signal-hook-registry-1.4.1.crate) = d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1
-SIZE (rust/crates/signal-hook-registry-1.4.1.crate) = 17987
+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/simd-abstraction-0.7.1.crate) = 9cadb29c57caadc51ff8346233b5cec1d240b68ce55cf1afc764818791876987
SIZE (rust/crates/simd-abstraction-0.7.1.crate) = 9170
SHA256 (rust/crates/simd-adler32-0.3.7.crate) = d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe
@@ -613,68 +617,58 @@ SHA256 (rust/crates/siphasher-0.3.11.crate) = 38b58827f4464d87d377d175e90bf58eb0
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.1.crate) = e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7
-SIZE (rust/crates/smallvec-1.13.1.crate) = 34952
-SHA256 (rust/crates/socket2-0.5.6.crate) = 05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871
-SIZE (rust/crates/socket2-0.5.6.crate) = 55270
+SHA256 (rust/crates/smallvec-1.13.2.crate) = 3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67
+SIZE (rust/crates/smallvec-1.13.2.crate) = 35216
+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/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/strsim-0.11.0.crate) = 5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01
-SIZE (rust/crates/strsim-0.11.0.crate) = 13710
-SHA256 (rust/crates/strum-0.26.1.crate) = 723b93e8addf9aa965ebe2d11da6d7540fa2283fcea14b3371ff055f7ba13f5f
-SIZE (rust/crates/strum-0.26.1.crate) = 5861
-SHA256 (rust/crates/strum_macros-0.26.1.crate) = 7a3417fc93d76740d974a01654a09777cb500428cc874ca9f45edfe0c4d4cd18
-SIZE (rust/crates/strum_macros-0.26.1.crate) = 25326
+SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f
+SIZE (rust/crates/strsim-0.11.1.crate) = 14266
+SHA256 (rust/crates/strum-0.26.2.crate) = 5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29
+SIZE (rust/crates/strum-0.26.2.crate) = 7189
+SHA256 (rust/crates/strum_macros-0.26.2.crate) = c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946
+SIZE (rust/crates/strum_macros-0.26.2.crate) = 27056
SHA256 (rust/crates/subtle-2.5.0.crate) = 81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc
SIZE (rust/crates/subtle-2.5.0.crate) = 13909
SHA256 (rust/crates/syn-1.0.109.crate) = 72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237
SIZE (rust/crates/syn-1.0.109.crate) = 237611
-SHA256 (rust/crates/syn-2.0.52.crate) = b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07
-SIZE (rust/crates/syn-2.0.52.crate) = 254728
+SHA256 (rust/crates/syn-2.0.60.crate) = 909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3
+SIZE (rust/crates/syn-2.0.60.crate) = 255808
SHA256 (rust/crates/sync_wrapper-0.1.2.crate) = 2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160
SIZE (rust/crates/sync_wrapper-0.1.2.crate) = 6933
-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/sync_wrapper-1.0.1.crate) = a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394
+SIZE (rust/crates/sync_wrapper-1.0.1.crate) = 6939
SHA256 (rust/crates/tap-1.0.1.crate) = 55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369
SIZE (rust/crates/tap-1.0.1.crate) = 11316
SHA256 (rust/crates/tar-0.4.40.crate) = b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb
SIZE (rust/crates/tar-0.4.40.crate) = 51844
SHA256 (rust/crates/tempfile-3.10.1.crate) = 85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1
SIZE (rust/crates/tempfile-3.10.1.crate) = 33653
-SHA256 (rust/crates/tendril-0.4.3.crate) = d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0
-SIZE (rust/crates/tendril-0.4.3.crate) = 37210
-SHA256 (rust/crates/termcolor-1.4.1.crate) = 06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755
-SIZE (rust/crates/termcolor-1.4.1.crate) = 18773
SHA256 (rust/crates/terminal_size-0.3.0.crate) = 21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7
SIZE (rust/crates/terminal_size-0.3.0.crate) = 10096
SHA256 (rust/crates/thin-slice-0.1.1.crate) = 8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c
SIZE (rust/crates/thin-slice-0.1.1.crate) = 4484
-SHA256 (rust/crates/thiserror-1.0.57.crate) = 1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b
-SIZE (rust/crates/thiserror-1.0.57.crate) = 20993
-SHA256 (rust/crates/thiserror-impl-1.0.57.crate) = a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81
-SIZE (rust/crates/thiserror-impl-1.0.57.crate) = 15639
+SHA256 (rust/crates/thiserror-1.0.59.crate) = f0126ad08bff79f29fc3ae6a55cc72352056dfff61e3ff8bb7129476d44b23aa
+SIZE (rust/crates/thiserror-1.0.59.crate) = 21040
+SHA256 (rust/crates/thiserror-impl-1.0.59.crate) = d1cd413b5d558b4c5bf3680e324a6fa5014e7b7c067a51e69dbdf47eb7148b66
+SIZE (rust/crates/thiserror-impl-1.0.59.crate) = 15726
SHA256 (rust/crates/thread_local-1.1.8.crate) = 8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c
SIZE (rust/crates/thread_local-1.1.8.crate) = 13962
-SHA256 (rust/crates/time-0.3.34.crate) = c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749
-SIZE (rust/crates/time-0.3.34.crate) = 118430
+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/time-macros-0.2.17.crate) = 7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774
-SIZE (rust/crates/time-macros-0.2.17.crate) = 24443
+SHA256 (rust/crates/time-macros-0.2.18.crate) = 3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf
+SIZE (rust/crates/time-macros-0.2.18.crate) = 24361
SHA256 (rust/crates/tinyvec-1.6.0.crate) = 87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50
SIZE (rust/crates/tinyvec-1.6.0.crate) = 45991
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.36.0.crate) = 61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931
-SIZE (rust/crates/tokio-1.36.0.crate) = 757286
+SHA256 (rust/crates/tokio-1.37.0.crate) = 1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787
+SIZE (rust/crates/tokio-1.37.0.crate) = 764297
SHA256 (rust/crates/tokio-macros-2.2.0.crate) = 5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b
SIZE (rust/crates/tokio-macros-2.2.0.crate) = 11520
SHA256 (rust/crates/tokio-native-tls-0.3.1.crate) = bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2
@@ -683,26 +677,28 @@ SHA256 (rust/crates/tokio-openssl-0.6.4.crate) = 6ffab79df67727f6acf57f1ff743091
SIZE (rust/crates/tokio-openssl-0.6.4.crate) = 11911
SHA256 (rust/crates/tokio-rustls-0.24.1.crate) = c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081
SIZE (rust/crates/tokio-rustls-0.24.1.crate) = 33049
-SHA256 (rust/crates/tokio-stream-0.1.14.crate) = 397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842
-SIZE (rust/crates/tokio-stream-0.1.14.crate) = 35881
-SHA256 (rust/crates/tokio-tungstenite-0.20.1.crate) = 212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c
-SIZE (rust/crates/tokio-tungstenite-0.20.1.crate) = 28569
+SHA256 (rust/crates/tokio-rustls-0.25.0.crate) = 775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f
+SIZE (rust/crates/tokio-rustls-0.25.0.crate) = 30541
+SHA256 (rust/crates/tokio-stream-0.1.15.crate) = 267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af
+SIZE (rust/crates/tokio-stream-0.1.15.crate) = 36284
+SHA256 (rust/crates/tokio-tungstenite-0.21.0.crate) = c83b561d025642014097b66e6c1bb422783339e0909e4429cde4749d1990bc38
+SIZE (rust/crates/tokio-tungstenite-0.21.0.crate) = 28159
SHA256 (rust/crates/tokio-util-0.7.10.crate) = 5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15
SIZE (rust/crates/tokio-util-0.7.10.crate) = 110508
SHA256 (rust/crates/toml-0.7.8.crate) = dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257
SIZE (rust/crates/toml-0.7.8.crate) = 49671
-SHA256 (rust/crates/toml-0.8.10.crate) = 9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290
-SIZE (rust/crates/toml-0.8.10.crate) = 50667
+SHA256 (rust/crates/toml-0.8.12.crate) = e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3
+SIZE (rust/crates/toml-0.8.12.crate) = 51145
SHA256 (rust/crates/toml_datetime-0.6.5.crate) = 3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1
SIZE (rust/crates/toml_datetime-0.6.5.crate) = 10910
SHA256 (rust/crates/toml_edit-0.19.15.crate) = 1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421
SIZE (rust/crates/toml_edit-0.19.15.crate) = 95324
-SHA256 (rust/crates/toml_edit-0.22.6.crate) = 2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6
-SIZE (rust/crates/toml_edit-0.22.6.crate) = 103304
+SHA256 (rust/crates/toml_edit-0.22.12.crate) = d3328d4f68a705b2a4498da1d580585d39a6510f98318a2cec3018a7ec61ddef
+SIZE (rust/crates/toml_edit-0.22.12.crate) = 104416
SHA256 (rust/crates/tower-0.4.13.crate) = b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c
SIZE (rust/crates/tower-0.4.13.crate) = 106906
-SHA256 (rust/crates/tower-http-0.4.4.crate) = 61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140
-SIZE (rust/crates/tower-http-0.4.4.crate) = 115612
+SHA256 (rust/crates/tower-http-0.5.2.crate) = 1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5
+SIZE (rust/crates/tower-http-0.5.2.crate) = 118675
SHA256 (rust/crates/tower-layer-0.3.2.crate) = c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0
SIZE (rust/crates/tower-layer-0.3.2.crate) = 6023
SHA256 (rust/crates/tower-service-0.3.2.crate) = b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52
@@ -717,14 +713,10 @@ SHA256 (rust/crates/tracing-log-0.2.0.crate) = ee855f1f400bd0e5c02d150ae5de38400
SIZE (rust/crates/tracing-log-0.2.0.crate) = 17561
SHA256 (rust/crates/tracing-subscriber-0.3.18.crate) = ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b
SIZE (rust/crates/tracing-subscriber-0.3.18.crate) = 196312
-SHA256 (rust/crates/trust-dns-proto-0.23.2.crate) = 3119112651c157f4488931a01e586aa459736e9d6046d3bd9105ffb69352d374
-SIZE (rust/crates/trust-dns-proto-0.23.2.crate) = 366401
-SHA256 (rust/crates/trust-dns-resolver-0.23.2.crate) = 10a3e6c3aff1718b3c73e395d1f35202ba2ffa847c6a62eea0db8fb4cfe30be6
-SIZE (rust/crates/trust-dns-resolver-0.23.2.crate) = 89012
SHA256 (rust/crates/try-lock-0.2.5.crate) = e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b
SIZE (rust/crates/try-lock-0.2.5.crate) = 4314
-SHA256 (rust/crates/tungstenite-0.20.1.crate) = 9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9
-SIZE (rust/crates/tungstenite-0.20.1.crate) = 60095
+SHA256 (rust/crates/tungstenite-0.21.0.crate) = 9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1
+SIZE (rust/crates/tungstenite-0.21.0.crate) = 59858
SHA256 (rust/crates/typed-arena-2.0.2.crate) = 6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a
SIZE (rust/crates/typed-arena-2.0.2.crate) = 11848
SHA256 (rust/crates/typenum-1.17.0.crate) = 42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825
@@ -737,8 +729,8 @@ SHA256 (rust/crates/unicode-ident-1.0.12.crate) = 3354b9ac3fae1ff6755cb6db53683a
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.11.crate) = e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85
-SIZE (rust/crates/unicode-width-0.1.11.crate) = 19187
+SHA256 (rust/crates/unicode-width-0.1.12.crate) = 68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6
+SIZE (rust/crates/unicode-width-0.1.12.crate) = 24062
SHA256 (rust/crates/untrusted-0.9.0.crate) = 8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1
SIZE (rust/crates/untrusted-0.9.0.crate) = 14447
SHA256 (rust/crates/url-2.5.0.crate) = 31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633
@@ -747,8 +739,8 @@ SHA256 (rust/crates/utf-8-0.7.6.crate) = 09cc8ee72d2a9becf2f2febe0205bbed8fc6615
SIZE (rust/crates/utf-8-0.7.6.crate) = 10422
SHA256 (rust/crates/utf8parse-0.2.1.crate) = 711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a
SIZE (rust/crates/utf8parse-0.2.1.crate) = 13435
-SHA256 (rust/crates/uuid-1.7.0.crate) = f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a
-SIZE (rust/crates/uuid-1.7.0.crate) = 42627
+SHA256 (rust/crates/uuid-1.8.0.crate) = a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0
+SIZE (rust/crates/uuid-1.8.0.crate) = 44043
SHA256 (rust/crates/valuable-0.1.0.crate) = 830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d
SIZE (rust/crates/valuable-0.1.0.crate) = 27718
SHA256 (rust/crates/vcpkg-0.2.15.crate) = accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426
@@ -781,18 +773,16 @@ SHA256 (rust/crates/wasm-streams-0.4.0.crate) = b65dc4c90b63b118468cf747d8bf3566
SIZE (rust/crates/wasm-streams-0.4.0.crate) = 34328
SHA256 (rust/crates/web-sys-0.3.69.crate) = 77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef
SIZE (rust/crates/web-sys-0.3.69.crate) = 728877
-SHA256 (rust/crates/webpki-roots-0.25.4.crate) = 5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1
-SIZE (rust/crates/webpki-roots-0.25.4.crate) = 253559
-SHA256 (rust/crates/which-6.0.0.crate) = 7fa5e0c10bf77f44aac573e498d1a82d5fbd5e91f6fc0a99e7be4b38e85e101c
-SIZE (rust/crates/which-6.0.0.crate) = 16751
-SHA256 (rust/crates/widestring-1.0.2.crate) = 653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8
-SIZE (rust/crates/widestring-1.0.2.crate) = 79706
+SHA256 (rust/crates/webpki-roots-0.26.1.crate) = b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009
+SIZE (rust/crates/webpki-roots-0.26.1.crate) = 249748
+SHA256 (rust/crates/which-6.0.1.crate) = 8211e4f58a2b2805adfbefbc07bab82958fc91e3836339b1ab7ae32465dce0d7
+SIZE (rust/crates/which-6.0.1.crate) = 16542
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.6.crate) = f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596
-SIZE (rust/crates/winapi-util-0.1.6.crate) = 12234
+SHA256 (rust/crates/winapi-util-0.1.8.crate) = 4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b
+SIZE (rust/crates/winapi-util-0.1.8.crate) = 12416
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.45.0.crate) = 75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0
@@ -805,56 +795,60 @@ SHA256 (rust/crates/windows-targets-0.42.2.crate) = 8e5180c00cd44c9b1c88adb36932
SIZE (rust/crates/windows-targets-0.42.2.crate) = 5492
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.4.crate) = 7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b
-SIZE (rust/crates/windows-targets-0.52.4.crate) = 6310
+SHA256 (rust/crates/windows-targets-0.52.5.crate) = 6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb
+SIZE (rust/crates/windows-targets-0.52.5.crate) = 6376
SHA256 (rust/crates/windows_aarch64_gnullvm-0.42.2.crate) = 597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8
SIZE (rust/crates/windows_aarch64_gnullvm-0.42.2.crate) = 364071
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.4.crate) = bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9
-SIZE (rust/crates/windows_aarch64_gnullvm-0.52.4.crate) = 433373
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.52.5.crate) = 7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263
+SIZE (rust/crates/windows_aarch64_gnullvm-0.52.5.crate) = 433266
SHA256 (rust/crates/windows_aarch64_msvc-0.42.2.crate) = e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43
SIZE (rust/crates/windows_aarch64_msvc-0.42.2.crate) = 666981
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.4.crate) = da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675
-SIZE (rust/crates/windows_aarch64_msvc-0.52.4.crate) = 828055
+SHA256 (rust/crates/windows_aarch64_msvc-0.52.5.crate) = 9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6
+SIZE (rust/crates/windows_aarch64_msvc-0.52.5.crate) = 827944
SHA256 (rust/crates/windows_i686_gnu-0.42.2.crate) = c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f
SIZE (rust/crates/windows_i686_gnu-0.42.2.crate) = 736236
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.4.crate) = b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3
-SIZE (rust/crates/windows_i686_gnu-0.52.4.crate) = 875736
+SHA256 (rust/crates/windows_i686_gnu-0.52.5.crate) = 88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670
+SIZE (rust/crates/windows_i686_gnu-0.52.5.crate) = 875699
+SHA256 (rust/crates/windows_i686_gnullvm-0.52.5.crate) = 87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9
+SIZE (rust/crates/windows_i686_gnullvm-0.52.5.crate) = 473064
SHA256 (rust/crates/windows_i686_msvc-0.42.2.crate) = 44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060
SIZE (rust/crates/windows_i686_msvc-0.42.2.crate) = 724951
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.4.crate) = 1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02
-SIZE (rust/crates/windows_i686_msvc-0.52.4.crate) = 895530
+SHA256 (rust/crates/windows_i686_msvc-0.52.5.crate) = db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf
+SIZE (rust/crates/windows_i686_msvc-0.52.5.crate) = 895404
SHA256 (rust/crates/windows_x86_64_gnu-0.42.2.crate) = 8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36
SIZE (rust/crates/windows_x86_64_gnu-0.42.2.crate) = 699373
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.4.crate) = 5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03
-SIZE (rust/crates/windows_x86_64_gnu-0.52.4.crate) = 831627
+SHA256 (rust/crates/windows_x86_64_gnu-0.52.5.crate) = 4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9
+SIZE (rust/crates/windows_x86_64_gnu-0.52.5.crate) = 831539
SHA256 (rust/crates/windows_x86_64_gnullvm-0.42.2.crate) = 26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3
SIZE (rust/crates/windows_x86_64_gnullvm-0.42.2.crate) = 364068
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.4.crate) = 77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177
-SIZE (rust/crates/windows_x86_64_gnullvm-0.52.4.crate) = 433358
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.5.crate) = 852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596
+SIZE (rust/crates/windows_x86_64_gnullvm-0.52.5.crate) = 433246
SHA256 (rust/crates/windows_x86_64_msvc-0.42.2.crate) = 9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0
SIZE (rust/crates/windows_x86_64_msvc-0.42.2.crate) = 666936
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.4.crate) = 32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8
-SIZE (rust/crates/windows_x86_64_msvc-0.52.4.crate) = 828019
+SHA256 (rust/crates/windows_x86_64_msvc-0.52.5.crate) = bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0
+SIZE (rust/crates/windows_x86_64_msvc-0.52.5.crate) = 827905
SHA256 (rust/crates/winnow-0.5.40.crate) = f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876
SIZE (rust/crates/winnow-0.5.40.crate) = 159316
-SHA256 (rust/crates/winnow-0.6.5.crate) = dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8
-SIZE (rust/crates/winnow-0.6.5.crate) = 159316
-SHA256 (rust/crates/winreg-0.50.0.crate) = 524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1
-SIZE (rust/crates/winreg-0.50.0.crate) = 29703
+SHA256 (rust/crates/winnow-0.6.7.crate) = 14b9415ee827af173ebb3f15f9083df5a122eb93572ec28741fb153356ea2578
+SIZE (rust/crates/winnow-0.6.7.crate) = 159491
+SHA256 (rust/crates/winreg-0.52.0.crate) = a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5
+SIZE (rust/crates/winreg-0.52.0.crate) = 30148
+SHA256 (rust/crates/winsafe-0.0.19.crate) = d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904
+SIZE (rust/crates/winsafe-0.0.19.crate) = 492820
SHA256 (rust/crates/wyz-0.5.1.crate) = 05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed
SIZE (rust/crates/wyz-0.5.1.crate) = 18790
SHA256 (rust/crates/xattr-1.3.1.crate) = 8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f
@@ -863,6 +857,8 @@ SHA256 (rust/crates/zerocopy-0.7.32.crate) = 74d4d3961e53fa4c9a25a8637fc2bfaf259
SIZE (rust/crates/zerocopy-0.7.32.crate) = 151096
SHA256 (rust/crates/zerocopy-derive-0.7.32.crate) = 9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6
SIZE (rust/crates/zerocopy-derive-0.7.32.crate) = 37623
+SHA256 (rust/crates/zeroize-1.7.0.crate) = 525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d
+SIZE (rust/crates/zeroize-1.7.0.crate) = 19039
SHA256 (rust/crates/zip-0.6.6.crate) = 760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261
SIZE (rust/crates/zip-0.6.6.crate) = 65789
SHA256 (rust/crates/zopfli-0.8.0.crate) = 5c1f48f3508a3a3f2faee01629564400bc12260f6214a056d06a3aaaa6ef0736
@@ -871,7 +867,7 @@ SHA256 (rust/crates/zstd-0.11.2+zstd.1.5.2.crate) = 20cc960326ece64f010d2d210753
SIZE (rust/crates/zstd-0.11.2+zstd.1.5.2.crate) = 28987
SHA256 (rust/crates/zstd-safe-5.0.2+zstd.1.5.2.crate) = 1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db
SIZE (rust/crates/zstd-safe-5.0.2+zstd.1.5.2.crate) = 17273
-SHA256 (rust/crates/zstd-sys-2.0.9+zstd.1.5.5.crate) = 9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656
-SIZE (rust/crates/zstd-sys-2.0.9+zstd.1.5.5.crate) = 728791
-SHA256 (thedodd-trunk-v0.19.2_GH0.tar.gz) = 61876cd64a2a641cf30db0dba400cae50f0d73d33394838abbbb5636d12f3db7
-SIZE (thedodd-trunk-v0.19.2_GH0.tar.gz) = 482171
+SHA256 (rust/crates/zstd-sys-2.0.10+zstd.1.5.6.crate) = c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa
+SIZE (rust/crates/zstd-sys-2.0.10+zstd.1.5.6.crate) = 749088
+SHA256 (thedodd-trunk-v0.20.1_GH0.tar.gz) = 3f9127214abcd246d7f421cce5add03fb0cb1f5533c368d0f42a599faac1c4e3
+SIZE (thedodd-trunk-v0.20.1_GH0.tar.gz) = 503283
diff --git a/www/tt-rss/Makefile b/www/tt-rss/Makefile
index 06056ac5b33c..b3bd8d35ea6b 100644
--- a/www/tt-rss/Makefile
+++ b/www/tt-rss/Makefile
@@ -1,6 +1,5 @@
PORTNAME= tt-rss
-PORTVERSION= g20240221
-PORTREVISION= 2
+PORTVERSION= g20240421
PORTEPOCH= 2
CATEGORIES= www
PKGNAMESUFFIX= ${PHP_PKGNAMESUFFIX}
@@ -17,7 +16,7 @@ USES= gettext-tools php:cli,web,flavors shebangfix
USE_GITLAB= yes
GL_SITE= https://gitlab.tt-rss.org
-GL_TAGNAME= 81f31399929361d19fb3260a43aa35f9b6cf5105
+GL_TAGNAME= d832907125a7711397da8ade5cfb51082d802542
# phe json/openssl extension is required but it's statically linked in default php
USE_PHP= ctype dom exif fileinfo filter iconv intl mbstring pcntl pdo \
phar posix session simplexml sockets tokenizer xml xmlwriter \
diff --git a/www/tt-rss/distinfo b/www/tt-rss/distinfo
index 15c447187c4b..7821d80336d3 100644
--- a/www/tt-rss/distinfo
+++ b/www/tt-rss/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1709495465
-SHA256 (tt-rss-tt-rss-81f31399929361d19fb3260a43aa35f9b6cf5105_GL0.tar.gz) = 7fdbcfd84f6eae80cd656afc0720b1ed9ad23f46bde22aa520302d2e9ad797d7
-SIZE (tt-rss-tt-rss-81f31399929361d19fb3260a43aa35f9b6cf5105_GL0.tar.gz) = 8966510
+TIMESTAMP = 1713836306
+SHA256 (tt-rss-tt-rss-d832907125a7711397da8ade5cfb51082d802542_GL0.tar.gz) = 21754aa85eaa4a5de1aba6e076f26ca3c356a4d6e70ae7e1d9e6ea6d12de1d65
+SIZE (tt-rss-tt-rss-d832907125a7711397da8ade5cfb51082d802542_GL0.tar.gz) = 8995458
diff --git a/www/tuifeed/Makefile b/www/tuifeed/Makefile
index 69dfeef17a66..096ee1c334f5 100644
--- a/www/tuifeed/Makefile
+++ b/www/tuifeed/Makefile
@@ -1,7 +1,7 @@
PORTNAME= tuifeed
DISTVERSIONPREFIX= v
DISTVERSION= 0.3.2
-PORTREVISION= 10
+PORTREVISION= 11
CATEGORIES= www
MAINTAINER= driesm@FreeBSD.org
diff --git a/www/tusc/Makefile b/www/tusc/Makefile
index 5fdece66a197..a8afaeb887b8 100644
--- a/www/tusc/Makefile
+++ b/www/tusc/Makefile
@@ -1,6 +1,6 @@
PORTNAME= tusc
DISTVERSION= 0.4.7
-PORTREVISION= 18
+PORTREVISION= 19
CATEGORIES= www
MAINTAINER= osa@FreeBSD.org
diff --git a/www/tusd/Makefile b/www/tusd/Makefile
index ad867a492eab..60b506368ed2 100644
--- a/www/tusd/Makefile
+++ b/www/tusd/Makefile
@@ -1,7 +1,7 @@
PORTNAME= tusd
DISTVERSIONPREFIX= v
DISTVERSION= 2.0.0
-PORTREVISION= 4
+PORTREVISION= 5
CATEGORIES= www
MAINTAINER= mm@FreeBSD.org
diff --git a/www/typo3-11/Makefile b/www/typo3-11/Makefile
index 525c4ad00363..9d129e9f8dc6 100644
--- a/www/typo3-11/Makefile
+++ b/www/typo3-11/Makefile
@@ -28,7 +28,7 @@ SUB_LIST+= PREFIX=${PREFIX} \
PORT_V_MAJOR= 11
PORT_V_MINOR= 5
-PORT_V_PATCH= 35
+PORT_V_PATCH= 37
TYPO3WWW= www
TYPO3SRC= ${PORTNAME}_src-${PORTVERSION}
diff --git a/www/typo3-11/distinfo b/www/typo3-11/distinfo
index e1b4be65c323..1c74c064b3cc 100644
--- a/www/typo3-11/distinfo
+++ b/www/typo3-11/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1708194984
-SHA256 (typo3_src-11.5.35.tar.gz) = fae368c71fe744b4539e44a12776db6e5a634e59d01a1c7eac69c7ceb58b9e86
-SIZE (typo3_src-11.5.35.tar.gz) = 29060641
+TIMESTAMP = 1715913494
+SHA256 (typo3_src-11.5.37.tar.gz) = 4a4f70a1f21e4ab04ad6f331f0cb19da0a9c956898de2cacb927a92d8f2bff1e
+SIZE (typo3_src-11.5.37.tar.gz) = 29056310
diff --git a/www/typo3-11/pkg-descr b/www/typo3-11/pkg-descr
index 0704d9d3edc0..f21ba59184f2 100644
--- a/www/typo3-11/pkg-descr
+++ b/www/typo3-11/pkg-descr
@@ -1,5 +1,5 @@
-This is the stable version with long-term support (LTS). We provide free
-maintenance bug fixes until April 2023 and security updates until October 2024.
+This is the old stable version with long-term support (LTS). We provide free security
+updates until October 2024.
* Unified editor experience
* Advanced Filelist module
@@ -9,11 +9,11 @@ maintenance bug fixes until April 2023 and security updates until October 2024.
* And many improvements for developers
System requirements
-* PHP 7.4, 8.0, 8.1
+* PHP 7.4, 8.0, 8.1, 8.2, 8.3
* MariaDB 10.2.7+ / Microsoft SQL Server / MySQL 5.7.9+ / PostgreSQL / SQLite
* Modern Browsers
* Detailed list of requirements:
- https://get.typo3.org/version/11#system-requirements
+ https://get.typo3.org/version/11#system-requirements
Supported Until
Free: 2024-10-31
diff --git a/www/typo3-12/Makefile b/www/typo3-12/Makefile
index c23421770fcf..c415f603f0c7 100644
--- a/www/typo3-12/Makefile
+++ b/www/typo3-12/Makefile
@@ -12,8 +12,6 @@ WWW= https://typo3.org/
LICENSE= GPLv2
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
-IGNORE_WITH_PHP= 83
-
USES= cpe php:web,flavors shebangfix
# php openssl extension is required but it's statically linked in default php
USE_PHP= ctype dom fileinfo filter gd intl mbstring pdo session \
@@ -31,7 +29,7 @@ SUB_LIST+= PREFIX=${PREFIX} \
PORT_V_MAJOR= 12
PORT_V_MINOR= 4
-PORT_V_PATCH= 11
+PORT_V_PATCH= 15
TYPO3DIR= www/${PORTNAME}-${PORT_V_MAJOR}
diff --git a/www/typo3-12/distinfo b/www/typo3-12/distinfo
index 49bb1df05dfd..d0406b791356 100644
--- a/www/typo3-12/distinfo
+++ b/www/typo3-12/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1708195397
-SHA256 (typo3_src-12.4.11.tar.gz) = a93bb3e8ceae5f00c77f985438dd948d2a33426ccfd7c2e0e5706325c43533a3
-SIZE (typo3_src-12.4.11.tar.gz) = 25896306
+TIMESTAMP = 1715907884
+SHA256 (typo3_src-12.4.15.tar.gz) = 7004d07db76b600455ffc2ddd71a37ac9e5e2e6a6529da26a788c03c77c2af9f
+SIZE (typo3_src-12.4.15.tar.gz) = 26145402
diff --git a/www/typo3-12/pkg-descr b/www/typo3-12/pkg-descr
index 73191e782ce7..a21d2f94225b 100644
--- a/www/typo3-12/pkg-descr
+++ b/www/typo3-12/pkg-descr
@@ -1,20 +1,12 @@
-We support each TYPO3 sprint release until the next minor version is published.
-Once released in April 2023, the long-term support version of TYPO3 12 will
-receive bug fixes until October 2024, and we will provide security updates until
-April 2026.
-
-We encourage users and agencies to install and use the sprint releases until the
-LTS release is available. Further details about the releases and planned release
-dates are available in the roadmap.
-
+This is the stable version with long-term support (LTS). We provide free maintenance
+bug fixes until October 2024 and security updates until April 2026.
* Increased performance
* Improved backend usability
-* Create custom content types quickly and easily
* Top-modern dependent libraries (CKEditor v5, Symfony v6, Doctrine v3)
* And many improvements for developers
System requirements
-* PHP 8.1
+* PHP 8.1, 8.2, 8.3
* MariaDB 10.3+ / MySQL 8.0+ / PostgreSQL 10.0+ / SQLite 3.8.3+
* Modern Browsers
* Detailed list of requirements:
diff --git a/www/typo3-13/Makefile b/www/typo3-13/Makefile
new file mode 100644
index 000000000000..f1cd870fdc90
--- /dev/null
+++ b/www/typo3-13/Makefile
@@ -0,0 +1,76 @@
+PORTNAME= typo3
+DISTVERSION= ${PORT_V_MAJOR}.${PORT_V_MINOR}.${PORT_V_PATCH}
+CATEGORIES= www
+MASTER_SITES= https://typo3.azureedge.net/typo3/${DISTVERSION}/
+PKGNAMESUFFIX= -${PORT_V_MAJOR}${PHP_PKGNAMESUFFIX}
+DISTNAME= ${PORTNAME}_src-${DISTVERSION}
+
+MAINTAINER= freebsd-ports@charlieroot.de
+COMMENT= Typo3 content management system
+WWW= https://typo3.org/
+
+LICENSE= GPLv2
+LICENSE_FILE= ${WRKSRC}/LICENSE.txt
+
+IGNORE_WITH_PHP= 81
+
+USES= cpe php:web,flavors shebangfix
+# php openssl extension is required but it's statically linked in default php
+USE_PHP= ctype dom fileinfo filter gd intl mbstring pdo session \
+ simplexml tokenizer xml zip zlib
+
+WRKSRC= ${WRKDIR}/${PORTNAME}_src-${PORTVERSION}
+SHEBANG_GLOB= *.php *.sh
+NO_ARCH= yes
+NO_BUILD= yes
+PORTSCOUT= limit:^${PORT_V_MAJOR}\.${PORT_V_MINOR}\.
+SUB_FILES= pkg-message
+SUB_LIST+= PREFIX=${PREFIX} \
+ TYPO3DIR=${TYPO3DIR} \
+ TYPO3WWW=${TYPO3WWW}
+
+PORT_V_MAJOR= 13
+PORT_V_MINOR= 1
+PORT_V_PATCH= 1
+
+TYPO3DIR= www/${PORTNAME}-${PORT_V_MAJOR}
+
+OPTIONS_DEFINE= CURL GMP IMAGICK MYSQL POSTGRES SQLITE
+OPTIONS_DEFAULT= MYSQL
+
+IMAGICK_DESC= ${IMAGEMAGICK_DESC}
+MBSTRING_DESC= ${MULTIBYTE_DESC}
+MYSQL_DESC= Use MySQL as DBMS
+POSTGRES_DESC= Use PostgreSQL as DBMS
+SQLITE_DESC= Use SQLite as DBMS
+
+CURL_USE= PHP=curl
+GMP_USE= PHP=gmp
+MYSQL_USE= PHP=mysqli
+POSTGRES_USE= PHP=pgsql
+SQLITE_USE= PHP=sqlite3
+
+.include <bsd.port.options.mk>
+
+.if ${PORT_OPTIONS:MIMAGICK}
+.if ${PORT_OPTIONS:MX11}
+USES+= magick:7,run
+.else
+USES+= magick:7,run,nox11
+.endif
+.endif
+
+do-install:
+ @cd ${WRKSRC} && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/${TYPO3DIR}
+
+post-install:
+ @${ECHO_CMD} "@owner ${WWWOWN}" >> ${TMPPLIST}
+ @${ECHO_CMD} "@group ${WWWGRP}" >> ${TMPPLIST}
+ @${ECHO_CMD} "@mode 755" >> ${TMPPLIST}
+ @${FIND} -s -d ${WRKSRC} -type f | ${SED} "s?${WRKSRC}?${TYPO3DIR}?g" >>${TMPPLIST}
+ @${FIND} -s -d ${WRKSRC} -type d | ${SED} "s?${WRKSRC}?@dir ${TYPO3DIR}?g" >> ${TMPPLIST}
+ @${ECHO_CMD} "@mode" >> ${TMPPLIST}
+ @${ECHO_CMD} "@group" >> ${TMPPLIST}
+ @${ECHO_CMD} "@owner" >> ${TMPPLIST}
+
+.include <bsd.port.mk>
diff --git a/www/typo3-13/distinfo b/www/typo3-13/distinfo
new file mode 100644
index 000000000000..4a35beb1361d
--- /dev/null
+++ b/www/typo3-13/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1715914407
+SHA256 (typo3_src-13.1.1.tar.gz) = e57cbb2e201e0fb00007a75e8abf0f796146ea3771240f48f6e3c0d5d37626e8
+SIZE (typo3_src-13.1.1.tar.gz) = 25818232
diff --git a/www/typo3-13/files/pkg-message.in b/www/typo3-13/files/pkg-message.in
new file mode 100644
index 000000000000..2ab734bd1bbb
--- /dev/null
+++ b/www/typo3-13/files/pkg-message.in
@@ -0,0 +1,24 @@
+[
+{ type: install
+ message: <<EOM
+1) Add the following to your Apache configuration file
+ httpd.conf and restart the web server:
+
+ Alias /typo3 %%PREFIX%%/%%TYPO3WWW%%/%%TYPO3DIR%%/
+ AcceptPathInfo On
+ <Directory %%PREFIX%%/%%TYPO3WWW%%/%%TYPO3DIR%%/>
+ Options Indexes FollowSymLinks
+ AllowOverride all
+ Require all granted
+ </Directory>
+
+2) Visit your TYPO3 site with a browser (i.e.
+ http://your.server.com/typo3/) to continue the
+ installation / upgrade process.
+
+For more information, see the INSTALL DOCUMENTATION:
+
+ https://docs.typo3.org/typo3cms/GettingStartedTutorial/latest/Installation/Index.html
+EOM
+}
+]
diff --git a/www/typo3-13/pkg-descr b/www/typo3-13/pkg-descr
new file mode 100644
index 000000000000..b6562969b0eb
--- /dev/null
+++ b/www/typo3-13/pkg-descr
@@ -0,0 +1,14 @@
+Once released in October 2023, the long-term support version of TYPO3 13 will receive
+bug fixes until April 2026, and we will provide security updates until October 2027.
+Frontend rendering presets
+* Content blocks
+* Improved search, redirects and workspaces
+* Simplified external system integration
+* Top-modern image rendering
+
+System requirements
+* PHP 8.2, 8.3
+* MariaDB 10.4+ / MySQL 8.0+ / PostgreSQL 10.0+ / SQLite 3.8.3+
+* Modern Browsers
+* Detailed list of requirements:
+ https://get.typo3.org/version/12#system-requirements
diff --git a/www/uchiwa/Makefile b/www/uchiwa/Makefile
index 91118fa36576..bdb5747f8522 100644
--- a/www/uchiwa/Makefile
+++ b/www/uchiwa/Makefile
@@ -1,6 +1,6 @@
PORTNAME= uchiwa
PORTVERSION= 0.18.2
-PORTREVISION= 19
+PORTREVISION= 20
CATEGORIES= www
MASTER_SITES= http://uchiwa.io/
diff --git a/www/ungoogled-chromium/Makefile b/www/ungoogled-chromium/Makefile
index f75f5f61a3b4..38dd9c95b374 100644
--- a/www/ungoogled-chromium/Makefile
+++ b/www/ungoogled-chromium/Makefile
@@ -1,5 +1,5 @@
PORTNAME= ungoogled-chromium
-PORTVERSION= 124.0.6367.60
+PORTVERSION= 124.0.6367.207
UGVERSION= ${DISTVERSION}-1
CATEGORIES= www wayland
MASTER_SITES= https://commondatastorage.googleapis.com/chromium-browser-official/ \
diff --git a/www/ungoogled-chromium/distinfo b/www/ungoogled-chromium/distinfo
index 48739ad45d84..4a93c2f69d53 100644
--- a/www/ungoogled-chromium/distinfo
+++ b/www/ungoogled-chromium/distinfo
@@ -1,9 +1,9 @@
-TIMESTAMP = 1713858634
-SHA256 (chromium-124.0.6367.60.tar.xz) = ebd553527149cb8477a522df90acd6cea2388a6f431e2db589a0301df1d0cae2
-SIZE (chromium-124.0.6367.60.tar.xz) = 3432734968
-SHA256 (ungoogled-chromium-124.0.6367.60-1.tar.gz) = 10996c17d79b4bf1baccc3138e6103c39379ca2f5bdc72092e67e4dda7a527a7
-SIZE (ungoogled-chromium-124.0.6367.60-1.tar.gz) = 667143
-SHA256 (chromium-124.0.6367.60-testdata.tar.xz) = 42fcb4454bb703343843b7b7b4c7c28cbc9e0f885f5e38748268aeeb00ce9d29
-SIZE (chromium-124.0.6367.60-testdata.tar.xz) = 279785420
+TIMESTAMP = 1715673313
+SHA256 (chromium-124.0.6367.207.tar.xz) = 6d6dc8b943012573a244ddb013b281ecbc97f77fe1fc6f55a4118241d107eba5
+SIZE (chromium-124.0.6367.207.tar.xz) = 3450794132
+SHA256 (ungoogled-chromium-124.0.6367.207-1.tar.gz) = e109631651affdaae2ddc22cc1e81f56d8c7eb583f816c6ee7de21d97977315b
+SIZE (ungoogled-chromium-124.0.6367.207-1.tar.gz) = 667461
+SHA256 (chromium-124.0.6367.207-testdata.tar.xz) = d30386a73719a64fdd191f7b51709185e4d3fc49888b04a390506d4370e69b06
+SIZE (chromium-124.0.6367.207-testdata.tar.xz) = 277899644
SHA256 (test_fonts-336e775eec536b2d785cc80eff6ac39051931286.tar.gz) = a2ca2962daf482a8f943163541e1c73ba4b2694fabcd2510981f2db4eda493c8
SIZE (test_fonts-336e775eec536b2d785cc80eff6ac39051931286.tar.gz) = 32624734
diff --git a/www/ungoogled-chromium/files/patch-chrome_app_chrome__main__delegate.cc b/www/ungoogled-chromium/files/patch-chrome_app_chrome__main__delegate.cc
index 0459ec4b8d77..56986599445b 100644
--- a/www/ungoogled-chromium/files/patch-chrome_app_chrome__main__delegate.cc
+++ b/www/ungoogled-chromium/files/patch-chrome_app_chrome__main__delegate.cc
@@ -1,4 +1,4 @@
---- chrome/app/chrome_main_delegate.cc.orig 2024-04-23 07:42:17 UTC
+--- chrome/app/chrome_main_delegate.cc.orig 2024-05-11 05:39:22 UTC
+++ chrome/app/chrome_main_delegate.cc
@@ -146,7 +146,7 @@
#include "components/about_ui/credit_utils.h"
@@ -34,7 +34,7 @@
#include "chrome/browser/policy/policy_path_parser.h"
#include "components/crash/core/app/crashpad.h"
#endif
-@@ -346,7 +346,7 @@ void AdjustLinuxOOMScore(const std::string& process_ty
+@@ -349,7 +349,7 @@ void AdjustLinuxOOMScore(const std::string& process_ty
// and resources loaded.
bool SubprocessNeedsResourceBundle(const std::string& process_type) {
return
@@ -43,7 +43,7 @@
// The zygote process opens the resources for the renderers.
process_type == switches::kZygoteProcess ||
#endif
-@@ -431,7 +431,7 @@ bool HandleVersionSwitches(const base::CommandLine& co
+@@ -434,7 +434,7 @@ bool HandleVersionSwitches(const base::CommandLine& co
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
@@ -52,7 +52,7 @@
// Show the man page if --help or -h is on the command line.
void HandleHelpSwitches(const base::CommandLine& command_line) {
if (command_line.HasSwitch(switches::kHelp) ||
-@@ -477,7 +477,7 @@ void SetCrashpadUploadConsentPostLogin() {
+@@ -480,7 +480,7 @@ void SetCrashpadUploadConsentPostLogin() {
}
#endif // BUILDFLAG(IS_CHROMEOS_LACROS)
@@ -61,7 +61,7 @@
void SIGTERMProfilingShutdown(int signal) {
content::Profiling::Stop();
struct sigaction sigact;
-@@ -559,7 +559,7 @@ std::optional<int> AcquireProcessSingleton(
+@@ -562,7 +562,7 @@ std::optional<int> AcquireProcessSingleton(
// process can be exited.
ChromeProcessSingleton::CreateInstance(user_data_dir);
@@ -70,7 +70,7 @@
// Read the xdg-activation token and set it in the command line for the
// duration of the notification in order to ensure this is propagated to an
// already running browser process if it exists.
-@@ -643,7 +643,7 @@ void InitializeUserDataDir(base::CommandLine* command_
+@@ -646,7 +646,7 @@ void InitializeUserDataDir(base::CommandLine* command_
std::string process_type =
command_line->GetSwitchValueASCII(switches::kProcessType);
@@ -79,7 +79,7 @@
// On Linux, Chrome does not support running multiple copies under different
// DISPLAYs, so the profile directory can be specified in the environment to
// support the virtual desktop use-case.
-@@ -770,7 +770,7 @@ void RecordMainStartupMetrics(base::TimeTicks applicat
+@@ -773,7 +773,7 @@ void RecordMainStartupMetrics(base::TimeTicks applicat
#endif
#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || \
@@ -88,7 +88,7 @@
// Record the startup process creation time on supported platforms. On Android
// this is recorded in ChromeMainDelegateAndroid.
startup_metric_utils::GetCommon().RecordStartupProcessCreationTime(
-@@ -1155,7 +1155,7 @@ void ChromeMainDelegate::CommonEarlyInitialization(Inv
+@@ -1162,7 +1162,7 @@ void ChromeMainDelegate::CommonEarlyInitialization(Inv
chrome::GetChannel() == version_info::Channel::DEV;
const bool emit_crashes =
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
@@ -97,7 +97,7 @@
is_canary_dev;
#else
false;
-@@ -1174,7 +1174,7 @@ void ChromeMainDelegate::CommonEarlyInitialization(Inv
+@@ -1181,7 +1181,7 @@ void ChromeMainDelegate::CommonEarlyInitialization(Inv
// for more context.
base::sequence_manager::internal::ThreadController::InitializeFeatures(
/*record_sample_metadata=*/is_canary_dev);
@@ -106,7 +106,7 @@
base::MessagePumpLibevent::InitializeFeatures();
#elif BUILDFLAG(IS_MAC)
base::PlatformThread::InitFeaturesPostFieldTrial();
-@@ -1323,7 +1323,7 @@ std::optional<int> ChromeMainDelegate::BasicStartupCom
+@@ -1330,7 +1330,7 @@ std::optional<int> ChromeMainDelegate::BasicStartupCom
// TODO(crbug.com/1052397): Revisit the macro expression once build flag
// switch of lacros-chrome is complete.
@@ -115,7 +115,7 @@
// This will directly exit if the user asked for help.
HandleHelpSwitches(command_line);
#endif
-@@ -1353,7 +1353,7 @@ std::optional<int> ChromeMainDelegate::BasicStartupCom
+@@ -1360,7 +1360,7 @@ std::optional<int> ChromeMainDelegate::BasicStartupCom
#if BUILDFLAG(IS_CHROMEOS)
chromeos::dbus_paths::RegisterPathProvider();
#endif
@@ -124,7 +124,7 @@
nacl::RegisterPathProvider();
#endif
-@@ -1750,7 +1750,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
+@@ -1757,7 +1757,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
CHECK(!loaded_locale.empty()) << "Locale could not be found for " << locale;
}
@@ -133,7 +133,7 @@
// Zygote needs to call InitCrashReporter() in RunZygote().
if (process_type != switches::kZygoteProcess) {
if (command_line.HasSwitch(switches::kPreCrashpadCrashTest)) {
-@@ -1851,7 +1851,7 @@ absl::variant<int, content::MainFunctionParams> Chrome
+@@ -1858,7 +1858,7 @@ absl::variant<int, content::MainFunctionParams> Chrome
// This entry is not needed on Linux, where the NaCl loader
// process is launched via nacl_helper instead.
diff --git a/www/ungoogled-chromium/files/patch-chrome_browser_BUILD.gn b/www/ungoogled-chromium/files/patch-chrome_browser_BUILD.gn
index f5900cb6ed8d..38fcbfc58577 100644
--- a/www/ungoogled-chromium/files/patch-chrome_browser_BUILD.gn
+++ b/www/ungoogled-chromium/files/patch-chrome_browser_BUILD.gn
@@ -1,6 +1,6 @@
---- chrome/browser/BUILD.gn.orig 2024-04-23 07:42:17 UTC
+--- chrome/browser/BUILD.gn.orig 2024-04-26 05:03:53 UTC
+++ chrome/browser/BUILD.gn
-@@ -6529,6 +6529,13 @@ static_library("browser") {
+@@ -6531,6 +6531,13 @@ static_library("browser") {
}
}
diff --git a/www/ungoogled-chromium/files/patch-chrome_browser_chrome__browser__main__extra__parts__linux.cc b/www/ungoogled-chromium/files/patch-chrome_browser_chrome__browser__main__extra__parts__linux.cc
index 54e29af84e54..7f44501ed5b4 100644
--- a/www/ungoogled-chromium/files/patch-chrome_browser_chrome__browser__main__extra__parts__linux.cc
+++ b/www/ungoogled-chromium/files/patch-chrome_browser_chrome__browser__main__extra__parts__linux.cc
@@ -1,9 +1,9 @@
---- chrome/browser/chrome_browser_main_extra_parts_linux.cc.orig 2024-04-23 07:42:17 UTC
+--- chrome/browser/chrome_browser_main_extra_parts_linux.cc.orig 2024-05-11 05:39:22 UTC
+++ chrome/browser/chrome_browser_main_extra_parts_linux.cc
-@@ -169,7 +169,7 @@ ChromeBrowserMainExtraPartsLinux::ChromeBrowserMainExt
- ChromeBrowserMainExtraPartsLinux::~ChromeBrowserMainExtraPartsLinux() = default;
+@@ -175,7 +175,7 @@ void ChromeBrowserMainExtraPartsLinux::PostBrowserStar
- void ChromeBrowserMainExtraPartsLinux::PreEarlyInitialization() {
+ // static
+ void ChromeBrowserMainExtraPartsLinux::InitOzonePlatformHint() {
-#if BUILDFLAG(IS_LINUX)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
// On the desktop, we fix the platform name if necessary.
diff --git a/www/ungoogled-chromium/files/patch-chrome_browser_devtools_BUILD.gn b/www/ungoogled-chromium/files/patch-chrome_browser_devtools_BUILD.gn
new file mode 100644
index 000000000000..06adbd4b64ff
--- /dev/null
+++ b/www/ungoogled-chromium/files/patch-chrome_browser_devtools_BUILD.gn
@@ -0,0 +1,10 @@
+--- chrome/browser/devtools/BUILD.gn.orig 2024-04-30 23:46:45 UTC
++++ chrome/browser/devtools/BUILD.gn
+@@ -113,6 +113,7 @@ static_library("devtools") {
+ "//chrome/browser/autofill:autofill",
+ "//components/autofill/content/browser:browser",
+ "//components/autofill/core/browser:browser",
++ "//components/enterprise/buildflags",
+ "//components/paint_preview/buildflags:buildflags",
+ "//content/public/browser",
+ "//net",
diff --git a/www/ungoogled-chromium/files/patch-chrome_browser_extensions_BUILD.gn b/www/ungoogled-chromium/files/patch-chrome_browser_extensions_BUILD.gn
index c8d6a576c705..6d684075152e 100644
--- a/www/ungoogled-chromium/files/patch-chrome_browser_extensions_BUILD.gn
+++ b/www/ungoogled-chromium/files/patch-chrome_browser_extensions_BUILD.gn
@@ -1,6 +1,14 @@
---- chrome/browser/extensions/BUILD.gn.orig 2024-04-23 07:42:17 UTC
+--- chrome/browser/extensions/BUILD.gn.orig 2024-04-24 01:31:09 UTC
+++ chrome/browser/extensions/BUILD.gn
-@@ -1378,6 +1378,10 @@ static_library("extensions") {
+@@ -826,6 +826,7 @@ static_library("extensions") {
+ "//components/device_reauth",
+ "//components/optimization_guide/core:features",
+ "//components/safe_browsing/content/browser",
++ "//components/safe_browsing/content/common/proto:download_file_types_proto",
+ "//components/safe_browsing/core/browser:safe_browsing_metrics_collector",
+ "//components/security_interstitials/content:security_interstitial_page",
+ "//components/site_engagement/core/mojom:mojo_bindings",
+@@ -1384,6 +1385,10 @@ static_library("extensions") {
deps += [ "//chrome/services/printing/public/mojom" ]
}
diff --git a/www/ungoogled-chromium/files/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc b/www/ungoogled-chromium/files/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc
index 7219cb6e234c..a115979b7fdb 100644
--- a/www/ungoogled-chromium/files/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc
+++ b/www/ungoogled-chromium/files/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc
@@ -1,4 +1,4 @@
---- chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc.orig 2024-04-23 07:42:17 UTC
+--- chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc.orig 2024-05-11 05:39:22 UTC
+++ chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
@@ -80,8 +80,10 @@
@@ -30,7 +30,7 @@
#include "components/power_metrics/system_power_monitor.h"
#endif
-@@ -858,7 +860,7 @@ void RecordStartupMetrics() {
+@@ -860,7 +862,7 @@ void RecordStartupMetrics() {
// Record whether Chrome is the default browser or not.
// Disabled on Linux due to hanging browser tests, see crbug.com/1216328.
@@ -39,7 +39,7 @@
shell_integration::DefaultWebClientState default_state =
shell_integration::GetDefaultBrowser();
base::UmaHistogramEnumeration("DefaultBrowser.State", default_state,
-@@ -1162,11 +1164,11 @@ void ChromeBrowserMainExtraPartsMetrics::PostBrowserSt
+@@ -1164,11 +1166,11 @@ void ChromeBrowserMainExtraPartsMetrics::PostBrowserSt
}
#endif // !BUILDFLAG(IS_ANDROID)
diff --git a/www/ungoogled-chromium/files/patch-chrome_browser_prefs_browser__prefs.cc b/www/ungoogled-chromium/files/patch-chrome_browser_prefs_browser__prefs.cc
index e5ca4d4ae5e9..ae840bbf1d89 100644
--- a/www/ungoogled-chromium/files/patch-chrome_browser_prefs_browser__prefs.cc
+++ b/www/ungoogled-chromium/files/patch-chrome_browser_prefs_browser__prefs.cc
@@ -1,4 +1,4 @@
---- chrome/browser/prefs/browser_prefs.cc.orig 2024-04-23 07:42:17 UTC
+--- chrome/browser/prefs/browser_prefs.cc.orig 2024-05-11 05:39:22 UTC
+++ chrome/browser/prefs/browser_prefs.cc
@@ -485,18 +485,18 @@
#endif
@@ -31,7 +31,7 @@
#include "ui/color/system_theme.h"
#endif
-@@ -1711,7 +1711,7 @@ void RegisterLocalState(PrefRegistrySimple* registry)
+@@ -1718,7 +1718,7 @@ void RegisterLocalState(PrefRegistrySimple* registry)
registry->RegisterBooleanPref(prefs::kOopPrintDriversAllowedByPolicy, true);
#endif
@@ -40,7 +40,7 @@
registry->RegisterBooleanPref(prefs::kChromeForTestingAllowed, true);
#endif
-@@ -2053,12 +2053,12 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySync
+@@ -2060,12 +2060,12 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySync
#endif
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
diff --git a/www/ungoogled-chromium/files/patch-chrome_browser_ui_views_tabs_tab.cc b/www/ungoogled-chromium/files/patch-chrome_browser_ui_views_tabs_tab.cc
index 05fd5e3d5e57..a96fa71c4fb1 100644
--- a/www/ungoogled-chromium/files/patch-chrome_browser_ui_views_tabs_tab.cc
+++ b/www/ungoogled-chromium/files/patch-chrome_browser_ui_views_tabs_tab.cc
@@ -1,6 +1,6 @@
---- chrome/browser/ui/views/tabs/tab.cc.orig 2024-02-25 20:22:18 UTC
+--- chrome/browser/ui/views/tabs/tab.cc.orig 2024-04-26 05:03:53 UTC
+++ chrome/browser/ui/views/tabs/tab.cc
-@@ -619,7 +619,7 @@ void Tab::MaybeUpdateHoverStatus(const ui::MouseEvent&
+@@ -622,7 +622,7 @@ void Tab::MaybeUpdateHoverStatus(const ui::MouseEvent&
return;
}
diff --git a/www/ungoogled-chromium/files/patch-components_viz_service_display__embedder_skia__output__surface__impl.cc b/www/ungoogled-chromium/files/patch-components_viz_service_display__embedder_skia__output__surface__impl.cc
index d21ebccf08a5..991d6c2912ef 100644
--- a/www/ungoogled-chromium/files/patch-components_viz_service_display__embedder_skia__output__surface__impl.cc
+++ b/www/ungoogled-chromium/files/patch-components_viz_service_display__embedder_skia__output__surface__impl.cc
@@ -1,9 +1,9 @@
---- components/viz/service/display_embedder/skia_output_surface_impl.cc.orig 2024-04-23 07:42:17 UTC
+--- components/viz/service/display_embedder/skia_output_surface_impl.cc.orig 2024-04-26 05:03:53 UTC
+++ components/viz/service/display_embedder/skia_output_surface_impl.cc
-@@ -1526,7 +1526,7 @@ GrBackendFormat SkiaOutputSurfaceImpl::GetGrBackendFor
- ->GetDeviceQueue()
- ->GetVulkanPhysicalDevice(),
- VK_IMAGE_TILING_OPTIMAL, vk_format, yuv_color_space, ycbcr_info);
+@@ -1527,7 +1527,7 @@ GrBackendFormat SkiaOutputSurfaceImpl::GetGrBackendFor
+ ->GetVulkanPhysicalDevice(),
+ VK_IMAGE_TILING_OPTIMAL, vk_format,
+ si_format, yuv_color_space, ycbcr_info);
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
// Textures that were allocated _on linux_ with ycbcr info came from
diff --git a/www/ungoogled-chromium/files/patch-media_base_media__switches.cc b/www/ungoogled-chromium/files/patch-media_base_media__switches.cc
index 3ac5967ad08e..1a7c6ba7ffe0 100644
--- a/www/ungoogled-chromium/files/patch-media_base_media__switches.cc
+++ b/www/ungoogled-chromium/files/patch-media_base_media__switches.cc
@@ -1,4 +1,4 @@
---- media/base/media_switches.cc.orig 2024-04-23 07:42:17 UTC
+--- media/base/media_switches.cc.orig 2024-05-11 05:39:22 UTC
+++ media/base/media_switches.cc
@@ -21,7 +21,7 @@
#include "ui/gl/gl_features.h"
@@ -92,7 +92,7 @@
base::FEATURE_ENABLED_BY_DEFAULT
#else
base::FEATURE_DISABLED_BY_DEFAULT
-@@ -1500,7 +1500,7 @@ BASE_FEATURE(kUseGTFOOutOfProcessVideoDecoding,
+@@ -1496,7 +1496,7 @@ BASE_FEATURE(kUseGTFOOutOfProcessVideoDecoding,
base::FEATURE_DISABLED_BY_DEFAULT);
#endif // BUILDFLAG(ALLOW_OOP_VIDEO_DECODER)
diff --git a/www/ungoogled-chromium/files/patch-net_dns_BUILD.gn b/www/ungoogled-chromium/files/patch-net_dns_BUILD.gn
index 00a74cb5750b..dd5a55548aa8 100644
--- a/www/ungoogled-chromium/files/patch-net_dns_BUILD.gn
+++ b/www/ungoogled-chromium/files/patch-net_dns_BUILD.gn
@@ -1,4 +1,4 @@
---- net/dns/BUILD.gn.orig 2024-04-23 07:42:17 UTC
+--- net/dns/BUILD.gn.orig 2024-04-30 23:47:00 UTC
+++ net/dns/BUILD.gn
@@ -136,7 +136,7 @@ source_set("dns") {
"dns_config_service_android.cc",
@@ -9,7 +9,17 @@
sources += [
"dns_config_service_linux.cc",
"dns_config_service_linux.h",
-@@ -177,6 +177,7 @@ source_set("dns") {
+@@ -170,6 +170,9 @@ source_set("dns") {
+ }
+
+ deps = [ "//net:net_deps" ]
++ if (is_bsd) {
++ deps += [ "//services/screen_ai/buildflags" ]
++ }
+
+ public_deps = [
+ ":dns_client",
+@@ -177,6 +180,7 @@ source_set("dns") {
":host_resolver_manager",
":mdns_client",
"//net:net_public_deps",
@@ -17,7 +27,7 @@
]
allow_circular_includes_from = [
-@@ -444,9 +445,9 @@ source_set("tests") {
+@@ -444,9 +448,9 @@ source_set("tests") {
if (is_android) {
sources += [ "dns_config_service_android_unittest.cc" ]
diff --git a/www/ungoogled-chromium/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5 b/www/ungoogled-chromium/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5
index 716193560c84..72a13e77567d 100644
--- a/www/ungoogled-chromium/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5
+++ b/www/ungoogled-chromium/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5
@@ -1,6 +1,6 @@
---- third_party/blink/renderer/platform/runtime_enabled_features.json5.orig 2024-04-23 07:42:17 UTC
+--- third_party/blink/renderer/platform/runtime_enabled_features.json5.orig 2024-05-11 05:39:22 UTC
+++ third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -321,7 +321,7 @@
+@@ -313,7 +313,7 @@
name: "AppTitle",
status: "experimental",
origin_trial_feature_name: "AppTitle",
@@ -9,7 +9,7 @@
base_feature: "WebAppEnableAppTitle",
},
{
-@@ -1978,7 +1978,7 @@
+@@ -1970,7 +1970,7 @@
base_feature_status: "enabled",
copied_from_base_feature_if: "overridden",
origin_trial_feature_name: "FullscreenPopupWindows",
@@ -18,7 +18,7 @@
},
{
name: "GamepadButtonAxisEvents",
-@@ -2899,7 +2899,7 @@
+@@ -2891,7 +2891,7 @@
name: "PaymentHandlerMinimalHeaderUX",
origin_trial_feature_name: "PaymentHandlerMinimalHeaderUX",
origin_trial_allows_third_party: true,
@@ -27,7 +27,7 @@
status: "stable",
},
{
-@@ -3091,7 +3091,7 @@
+@@ -3083,7 +3083,7 @@
{
name: "PrivateNetworkAccessPermissionPrompt",
origin_trial_feature_name: "PrivateNetworkAccessPermissionPrompt",
@@ -36,7 +36,7 @@
status: "stable",
public: true,
base_feature: "none",
-@@ -3959,7 +3959,7 @@
+@@ -3951,7 +3951,7 @@
name: "UnrestrictedSharedArrayBuffer",
base_feature: "none",
origin_trial_feature_name: "UnrestrictedSharedArrayBuffer",
@@ -45,7 +45,7 @@
},
// Enables using policy-controlled feature "usb-unrestricted" to allow
// isolated context to access protected USB interface classes and to
-@@ -4119,7 +4119,7 @@
+@@ -4111,7 +4111,7 @@
{
name: "WebAppScopeExtensions",
origin_trial_feature_name: "WebAppScopeExtensions",
diff --git a/www/ungoogled-chromium/files/patch-third__party_ffmpeg_configure b/www/ungoogled-chromium/files/patch-third__party_ffmpeg_configure
new file mode 100644
index 000000000000..4ef45be429b6
--- /dev/null
+++ b/www/ungoogled-chromium/files/patch-third__party_ffmpeg_configure
@@ -0,0 +1,13 @@
+--- third_party/ffmpeg/configure.orig 2024-04-25 07:48:13 UTC
++++ third_party/ffmpeg/configure
+@@ -6713,8 +6713,8 @@ if ! disabled pthreads && ! enabled w32threads && ! en
+ if enabled pthread_np_h; then
+ hdrs="$hdrs pthread_np.h"
+ fi
+- check_lib pthread_set_name_np "$hdrs" pthread_set_name_np -lpthread
+- check_lib pthread_setname_np "$hdrs" pthread_setname_np -lpthread
++ check_lib pthread_set_name_np pthread_np.h pthread_set_name_np -lpthread
++ check_lib pthread_setname_np pthread_np.h pthread_setname_np -lpthread
+ fi
+ fi
+
diff --git a/www/ungoogled-chromium/files/patch-ui_base_ui__base__features.cc b/www/ungoogled-chromium/files/patch-ui_base_ui__base__features.cc
index acda9751c795..59184e5e4f85 100644
--- a/www/ungoogled-chromium/files/patch-ui_base_ui__base__features.cc
+++ b/www/ungoogled-chromium/files/patch-ui_base_ui__base__features.cc
@@ -1,6 +1,6 @@
---- ui/base/ui_base_features.cc.orig 2024-04-23 07:42:17 UTC
+--- ui/base/ui_base_features.cc.orig 2024-05-11 05:39:22 UTC
+++ ui/base/ui_base_features.cc
-@@ -227,7 +227,7 @@ BASE_FEATURE(kExperimentalFlingAnimation,
+@@ -228,7 +228,7 @@ BASE_FEATURE(kExperimentalFlingAnimation,
"ExperimentalFlingAnimation",
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
@@ -9,7 +9,7 @@
(BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_ASH) && \
!BUILDFLAG(IS_CHROMEOS_LACROS))
base::FEATURE_ENABLED_BY_DEFAULT
-@@ -326,7 +326,7 @@ bool IsForcedColorsEnabled() {
+@@ -327,7 +327,7 @@ bool IsForcedColorsEnabled() {
BASE_FEATURE(kEyeDropper,
"EyeDropper",
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
diff --git a/www/unit-java/distinfo b/www/unit-java/distinfo
index bd47dd8968d0..422f047a9f7b 100644
--- a/www/unit-java/distinfo
+++ b/www/unit-java/distinfo
@@ -1,6 +1,6 @@
-TIMESTAMP = 1710284573
-SHA256 (unit-1.32.0.tar.gz) = 4b5e9be3f3990fceabf06292c2b7853667aceb71fd8de5dc67cb7fb05d247a20
-SIZE (unit-1.32.0.tar.gz) = 937300
+TIMESTAMP = 1714515235
+SHA256 (unit-1.32.1.tar.gz) = 0e440ef63a3adf9400db978a64fc84e1eb8887f61a04ccff284c3f682fb83ea2
+SIZE (unit-1.32.1.tar.gz) = 937669
SHA256 (classgraph-4.8.165.jar) = 5258d9218fc6413f4d14218a5a6e784528e349f60f48883b77de74bb478ebafd
SIZE (classgraph-4.8.165.jar) = 562061
SHA256 (ecj-3.26.0.jar) = ac0ba5876eaf7ebb47749a0d1be179c51f194b9dd0b875d1c09e1b530f5a2db5
diff --git a/www/unit-ruby/Makefile b/www/unit-ruby/Makefile
index cea2e9dd1252..d943980b3645 100644
--- a/www/unit-ruby/Makefile
+++ b/www/unit-ruby/Makefile
@@ -4,7 +4,7 @@ UNIT_MODNAME= ruby${RUBY_VER}
COMMENT= Ruby module for NGINX Unit
-RUN_DEPENDS= rackup:www/rubygem-rack22 \
+RUN_DEPENDS= rackup:www/rubygem-rackup \
unitd:www/unit
PLIST_FILES= libexec/unit/modules/${UNIT_MODNAME}.unit.so
diff --git a/www/unit-wasm/Makefile b/www/unit-wasm/Makefile
index 3159ac7e96cc..2b87d3ff838a 100644
--- a/www/unit-wasm/Makefile
+++ b/www/unit-wasm/Makefile
@@ -1,5 +1,5 @@
PKGNAMESUFFIX= -${UNIT_MODNAME}
-PORTREVISION= 10
+PORTREVISION= 1
UNIT_MODNAME= wasm
diff --git a/www/unit/distinfo b/www/unit/distinfo
index a3e6d898bac9..b126e53ad55c 100644
--- a/www/unit/distinfo
+++ b/www/unit/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1710267192
-SHA256 (unit-1.32.0.tar.gz) = 4b5e9be3f3990fceabf06292c2b7853667aceb71fd8de5dc67cb7fb05d247a20
-SIZE (unit-1.32.0.tar.gz) = 937300
+TIMESTAMP = 1714508183
+SHA256 (unit-1.32.1.tar.gz) = 0e440ef63a3adf9400db978a64fc84e1eb8887f61a04ccff284c3f682fb83ea2
+SIZE (unit-1.32.1.tar.gz) = 937669
diff --git a/www/unit/version.mk b/www/unit/version.mk
index 22f5db26d111..777fee093486 100644
--- a/www/unit/version.mk
+++ b/www/unit/version.mk
@@ -2,6 +2,6 @@
UNITVERSION_MK= defined
# Define NGINX Unit's version.
-UNIT_VERSION= 1.32.0
+UNIT_VERSION= 1.32.1
.endif # UNITVERSION_MK
diff --git a/www/varnish-libvmod-dynamic/Makefile b/www/varnish-libvmod-dynamic/Makefile
index e729272e4364..481d6e0fd77d 100644
--- a/www/varnish-libvmod-dynamic/Makefile
+++ b/www/varnish-libvmod-dynamic/Makefile
@@ -1,6 +1,6 @@
PORTNAME= libvmod-dynamic
PORTVERSION= 20230321
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= www
PKGNAMEPREFIX= varnish-
diff --git a/www/varnish-libvmod-fileserver/Makefile b/www/varnish-libvmod-fileserver/Makefile
index 3c2bc6570257..da604a995a59 100644
--- a/www/varnish-libvmod-fileserver/Makefile
+++ b/www/varnish-libvmod-fileserver/Makefile
@@ -1,6 +1,6 @@
PORTNAME= libvmod-fileserver
PORTVERSION= 0.0.5
-PORTREVISION= 15
+PORTREVISION= 16
CATEGORIES= www
PKGNAMEPREFIX= varnish-
diff --git a/www/varnish_exporter/Makefile b/www/varnish_exporter/Makefile
index d10fcebb674c..f22252c3dbd9 100644
--- a/www/varnish_exporter/Makefile
+++ b/www/varnish_exporter/Makefile
@@ -1,6 +1,6 @@
PORTNAME= varnish_exporter
PORTVERSION= 1.6
-PORTREVISION= 18
+PORTREVISION= 19
CATEGORIES= www
MAINTAINER= ports@zx23.net
diff --git a/www/vieb/Makefile b/www/vieb/Makefile
index a15866f97cca..4a6adce9aed8 100644
--- a/www/vieb/Makefile
+++ b/www/vieb/Makefile
@@ -13,6 +13,9 @@ WWW= https://vieb.dev
LICENSE= GPLv3+
+DEPRECATED= Outdated and depends on expired (and blacklisted) devel/electron25
+EXPIRATION_DATE=2024-06-15
+
USES= desktop-file-utils electronfix:25
NO_BUILD= yes
diff --git a/www/vigil/Makefile b/www/vigil/Makefile
index 4c5bf43b810d..e4cfd948d29b 100644
--- a/www/vigil/Makefile
+++ b/www/vigil/Makefile
@@ -1,7 +1,7 @@
PORTNAME= vigil
DISTVERSIONPREFIX= v
DISTVERSION= 1.26.3
-PORTREVISION= 6
+PORTREVISION= 7
CATEGORIES= www
MAINTAINER= yuri@FreeBSD.org
diff --git a/www/vultr-cli/Makefile b/www/vultr-cli/Makefile
index f123ccbb787f..fb044db1d637 100644
--- a/www/vultr-cli/Makefile
+++ b/www/vultr-cli/Makefile
@@ -1,7 +1,7 @@
PORTNAME= vultr-cli
DISTVERSIONPREFIX= v
DISTVERSION= 2.17.0
-PORTREVISION= 6
+PORTREVISION= 7
CATEGORIES= www
MAINTAINER= antranigv@freebsd.am
diff --git a/www/wabt/Makefile b/www/wabt/Makefile
index d4e04356a0b1..7a6053587fe9 100644
--- a/www/wabt/Makefile
+++ b/www/wabt/Makefile
@@ -1,5 +1,5 @@
PORTNAME= wabt
-DISTVERSION= 1.0.34
+DISTVERSION= 1.0.35
CATEGORIES= www
MAINTAINER= yuri@FreeBSD.org
@@ -21,7 +21,7 @@ GH_TUPLE= dabeaz:ply:d776a2e:dabeaz_ply/third_party/ply \
nodejs:uvwasi:55eff19:nodejs_uvwasi/third_party/uvwasi \
okdshin:PicoSHA2:27fcf69:picosha/third_party/picosha2 \
simd-everywhere:simde:54b8c8f:simde/third_party/simde \
- WebAssembly:testsuite:c2a67a5:WebAssembly_testsuite/third_party/testsuite \
+ WebAssembly:testsuite:0a394e3:WebAssembly_testsuite/third_party/testsuite \
WebAssembly:wasm-c-api:b6dd1fb:WebAssembly_wasm_c_api/third_party/wasm-c-api
CMAKE_ON= BUILD_SHARED_LIBS USE_SYSTEM_GTEST
diff --git a/www/wabt/distinfo b/www/wabt/distinfo
index 235469c8c1c8..11a8f4c528bb 100644
--- a/www/wabt/distinfo
+++ b/www/wabt/distinfo
@@ -1,6 +1,6 @@
-TIMESTAMP = 1703640020
-SHA256 (WebAssembly-wabt-1.0.34_GH0.tar.gz) = 0d7da8a066141d4a21102c42fd6b059bfee7c03220c3efa9001bd781bf1f4330
-SIZE (WebAssembly-wabt-1.0.34_GH0.tar.gz) = 1226317
+TIMESTAMP = 1715761878
+SHA256 (WebAssembly-wabt-1.0.35_GH0.tar.gz) = c55bb2083de3afafa011ac1ab4aa14bab9fe51c2a90d24ba38f66f6b3bde0b09
+SIZE (WebAssembly-wabt-1.0.35_GH0.tar.gz) = 1242161
SHA256 (dabeaz-ply-d776a2e_GH0.tar.gz) = 36520ea1c1ead2139282096f6727fe0baf62a67950374f64ea4623955c45daac
SIZE (dabeaz-ply-d776a2e_GH0.tar.gz) = 149787
SHA256 (nodejs-uvwasi-55eff19_GH0.tar.gz) = 4c1d796dde734cd596f571a8d193f60d164a79ec474ae933eac738b818c2b0c0
@@ -9,7 +9,7 @@ SHA256 (okdshin-PicoSHA2-27fcf69_GH0.tar.gz) = 9d4ed9a2c67c86d67c4f2c8cfde7f7712
SIZE (okdshin-PicoSHA2-27fcf69_GH0.tar.gz) = 7620
SHA256 (simd-everywhere-simde-54b8c8f_GH0.tar.gz) = 58a8bef5fae26922b245830ff85bac0627fe115c99c041436a53f6a20bdc662f
SIZE (simd-everywhere-simde-54b8c8f_GH0.tar.gz) = 6138190
-SHA256 (WebAssembly-testsuite-c2a67a5_GH0.tar.gz) = 58b3904efeea597f9b7ea8475142fecf1a00127d9e22e5f0f86bb6f4ebe1f10b
-SIZE (WebAssembly-testsuite-c2a67a5_GH0.tar.gz) = 624991
+SHA256 (WebAssembly-testsuite-0a394e3_GH0.tar.gz) = aa1f3d57a35ab0346fdfebea37f4c896a525e9465eef32b71550bf4e9dfa7b3d
+SIZE (WebAssembly-testsuite-0a394e3_GH0.tar.gz) = 629310
SHA256 (WebAssembly-wasm-c-api-b6dd1fb_GH0.tar.gz) = 19e41111cb2cb83bfa06ded6b1a16c81475248e0b293a98dd2c50e82d48d680c
SIZE (WebAssembly-wasm-c-api-b6dd1fb_GH0.tar.gz) = 57094
diff --git a/www/wabt/files/patch-CMakeLists.txt b/www/wabt/files/patch-CMakeLists.txt
index 9bc598736a93..cc3e0ada75b3 100644
--- a/www/wabt/files/patch-CMakeLists.txt
+++ b/www/wabt/files/patch-CMakeLists.txt
@@ -1,4 +1,4 @@
---- CMakeLists.txt.orig 2023-10-25 02:14:59 UTC
+--- CMakeLists.txt.orig 2024-05-14 22:23:51 UTC
+++ CMakeLists.txt
@@ -391,7 +391,7 @@ set(WABT_LIBRARY_SRC ${WABT_LIBRARY_CC} ${WABT_LIBRARY
@@ -11,14 +11,14 @@
@@ -425,7 +425,7 @@ if (HAVE_SETJMP_H)
if (HAVE_SETJMP_H)
- set(WASM_RT_FILES "wasm2c/wasm-rt-impl.h" "wasm2c/wasm-rt-impl.c" "wasm2c/wasm-rt-exceptions-impl.c")
+ set(WASM_RT_FILES "wasm2c/wasm-rt-impl.h" "wasm2c/wasm-rt-impl.c" "wasm2c/wasm-rt-exceptions-impl.c" "wasm2c/wasm-rt-mem-impl.c")
- add_library(wasm-rt-impl STATIC ${WASM_RT_FILES})
+ add_library(wasm-rt-impl ${WASM_RT_FILES})
+ target_link_libraries(wasm-rt-impl ${CMAKE_THREAD_LIBS_INIT})
add_library(wabt::wasm-rt-impl ALIAS wasm-rt-impl)
if (WABT_BIG_ENDIAN)
- target_compile_definitions(wasm-rt-impl PUBLIC WABT_BIG_ENDIAN=1)
-@@ -453,7 +453,7 @@ if (BUILD_FUZZ_TOOLS)
+@@ -454,7 +454,7 @@ if (BUILD_FUZZ_TOOLS)
if (BUILD_FUZZ_TOOLS)
set(FUZZ_FLAGS "-fsanitize=fuzzer,address")
diff --git a/www/wabt/pkg-plist b/www/wabt/pkg-plist
index 3c5129457d8e..498245a06a52 100644
--- a/www/wabt/pkg-plist
+++ b/www/wabt/pkg-plist
@@ -98,3 +98,4 @@ share/man/man1/wat2wasm.1.gz
%%DATADIR%%/wasm2c/wasm-rt-exceptions-impl.c
%%DATADIR%%/wasm2c/wasm-rt-impl.c
%%DATADIR%%/wasm2c/wasm-rt-impl.h
+%%DATADIR%%/wasm2c/wasm-rt-mem-impl.c
diff --git a/www/wasm-pack/Makefile b/www/wasm-pack/Makefile
index fc73d079c30e..2216379d1f5b 100644
--- a/www/wasm-pack/Makefile
+++ b/www/wasm-pack/Makefile
@@ -1,7 +1,7 @@
PORTNAME= wasm-pack
DISTVERSIONPREFIX= v
DISTVERSION= 0.12.1
-PORTREVISION= 7
+PORTREVISION= 8
CATEGORIES= www
MAINTAINER= yuri@FreeBSD.org
diff --git a/www/web2ldap/Makefile b/www/web2ldap/Makefile
index 4619fbf67264..b9dccab45ebf 100644
--- a/www/web2ldap/Makefile
+++ b/www/web2ldap/Makefile
@@ -1,5 +1,6 @@
PORTNAME= web2ldap
PORTVERSION= 1.8.1
+PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI https://www.web2ldap.de/download/
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/webalizer/Makefile b/www/webalizer/Makefile
index bc56f1271bbe..421a75b057b4 100644
--- a/www/webalizer/Makefile
+++ b/www/webalizer/Makefile
@@ -1,6 +1,6 @@
PORTNAME= webalizer
PORTVERSION= 2.23.8
-PORTREVISION= 16
+PORTREVISION= 18
CATEGORIES+= www
MASTER_SITES= ftp://ftp.dinoex.de/pub/FreeBSD/distfiles/:main \
http://flags.blogpotato.de/zip/:flags
@@ -16,6 +16,7 @@ LICENSE= GPLv2
LIB_DEPENDS+= libpng.so:graphics/png
+USES= iconv:build
GNU_CONFIGURE= yes
DOCSDIR?= ${PREFIX}/share/doc/${PKGNAMEPREFIX}${PORTNAME}
EXAMPLESDIR?= ${PREFIX}/share/examples/${PKGNAMEPREFIX}${PORTNAME}
@@ -38,7 +39,7 @@ OPTIONS_SINGLE_DB= BDB1 BDB
NO_OPTIONS_SORT=yes
OPTIONS_SUB=yes
GEODB_DESC=Enable Webalizers IP-Database support
-WEBALIZER_CONV_DESC=Japanese character code convert patch
+WEBALIZER_CONV_DESC=Japanese character code convert to EUC-JP
FULL_CGI_REFS_DESC=Show full cgi parameters in referers
CLICKABLE_REFERER_DESC=Make referers clickable
IP_AS_HOSTNAME_DESC=Show IP as hostname when IP does not resolve
@@ -102,24 +103,46 @@ DOC1= CHANGES Copyright INSTALL \
EXAMPLES1= msfree.png sample.conf webalizer.png
WRKSRC= ${WRKDIR}/${DISTNAME:S/-src$//}
PLIST_SUB+= PKGNAMEPREFIX=${PKGNAMEPREFIX}
-SUPP_LANG= albanian arabic catalan chinese croatian czech danish dutch \
- english estonian finnish french galician german greek \
- hungarian icelandic indonesian italian japanese korean \
- latvian lithuanian malay norwegian polish portuguese \
- portuguese_brazil romanian romanian-iso-8859-2 russian \
- serbian simplified_chinese slovak slovene spanish swedish \
- thai turkish ukrainian
-
+CHARSETS= ISO-8859-1 ISO-8859-2 ISO-8859-5 ISO-8859-7 ISO-8859-13 \
+ ISO-8859-15 BIG5 EUC-CN EUC-JP EUC-KR TIS620 WINDOWS-1250
+CHARSET_ISO-8859-1= catalan danish finnish french galician galician \
+ german icelandic norwegian portuguese \
+ portuguese_brazil spanish swedish
+CHARSET_ISO-8859-2= czech hungarian polish slovak
+CHARSET_ISO-8859-7= greek
+CHARSET_ISO-8859-5= russian ukrainian
+CHARSET_ISO-8859-13= latvian lithuanian
+CHARSET_ISO-8859-15= estonian
+CHARSET_BIG5= chinese
+CHARSET_EUC-CN= simplified_chinese
+CHARSET_EUC-JP= japanese
+CHARSET_EUC-KR= korean
+CHARSET_TIS620= thai
+CHARSET_WINDOWS-1250= slovene
+SUPP_LANG= albanian arabic catalan catalan-utf8 chinese chinese-utf8 \
+ croatian czech czech-utf8 danish danish-utf8 dutch english \
+ estonian estonian-utf8 finnish finnish-utf8 \
+ french french-utf8 galician galician-utf8 german german-utf8 \
+ greek greek-utf8 hungarian hungarian-utf8 \
+ icelandic icelandic-uf8 indonesian italian \
+ japanese japanese-utf8 korean korean-utf8 \
+ latvian latvian-utf8 lithuanian lithuanian-utf8 malay \
+ norwegian norwegian-utf8 polish polish-utf8 \
+ portuguese portuguese-utf8 \
+ portuguese_brazil portuguese_brazil-utf8 \
+ romanian romanian-iso-8859-2 russian russian-utf8 \
+ serbian simplified_chinese simplified_chinese-utf8 \
+ slovak slovak-utf8 slovene slovene-utf8 spanish spanish-utf8 \
+ swedish swedish-utf8 thai thai-utf8 turkish \
+ ukrainian ukrainian-utf8
.if defined(WEBALIZER_LANG)
CONFIGURE_ARGS+= --with-language=${WEBALIZER_LANG}
-# The patch file is written by URASHIMA Akira
-# see http://tyche.pu-toyama.ac.jp/~a-urasim/webalizer/
-.if ${WEBALIZER_LANG} == japanese
-EXTRA_PATCHES+= ${FILESDIR}/ja-webalizer.conf-dist.patch
-.endif
.endif
.if ${PORT_OPTIONS:MWEBALIZER_CONV}
+.if ${WEBALIZER_LANG} != japanese
+BROKEN= no conversion from UTF-8 needed
+.endif
# The patch file is written by URASHIMA Akira
# see http://tyche.pu-toyama.ac.jp/~a-urasim/webalizer/
EXTRA_PATCHES+= ${FILESDIR}/webalizer-a-urasim_2.patch
@@ -147,6 +170,18 @@ pre-configure:
-e "s|-lGeoIP|-lmaxminddb|" \
${WRKSRC}/configure
.endif
+.for charset in ${CHARSETS}
+.for i in ${CHARSET_${charset}}
+ ${ICONV_CMD} -f ${charset} -t UTF-8 ${WRKSRC}/lang/webalizer_lang.${i} \
+ > ${WRKSRC}/lang/webalizer_lang.${i}-utf8
+.endfor
+.endfor
+.if defined(WEBALIZER_LANG)
+.if ${WEBALIZER_LANG} == japanese
+ ${REINPLACE_CMD} -e 's|charset=UTF-8|charset=x-euc-jp|' \
+ ${WRKSRC}/sample.conf
+.endif
+.endif
.if !defined(WEBALIZER_LANG)
@${ECHO_MSG} "You can customize the language by typing"
diff --git a/www/webalizer/files/ja-webalizer.conf-dist.patch b/www/webalizer/files/ja-webalizer.conf-dist.patch
deleted file mode 100644
index c9d241df90e0..000000000000
--- a/www/webalizer/files/ja-webalizer.conf-dist.patch
+++ /dev/null
@@ -1,69 +0,0 @@
---- sample.conf.orig 2008-07-01 22:09:31.000000000 +0200
-+++ sample.conf 2008-07-05 13:39:47.000000000 +0200
-@@ -107,9 +107,12 @@
-
- PageType htm*
- PageType cgi
-+#PageType shtml
- #PageType phtml
- #PageType php3
-+#PageType php
- #PageType pl
-+#PageType rb
-
- # PagePrefix allows all requests with a specified prefix to be
- # considered as 'pages'. If you want everything under /documents
-@@ -242,7 +245,8 @@
- # is 80 characters, so use multiple lines if needed.
-
- #HTMLHead <META NAME="author" CONTENT="The Webalizer">
--#HTMLHead <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
-+HTMLHead <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
-+HTMLHead <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-euc-jp">
-
- # HTMLBody defined the HTML code to be inserted, starting with the
- # <BODY> tag. If not specified, the default is shown below. If
-@@ -545,6 +550,9 @@
- HideURL *.png
- HideURL *.PNG
- HideURL *.ra
-+HideURL *.css
-+HideURL *.CSS
-+HideURL *.ico
-
- # Hiding agents is kind of futile
- #HideAgent RealPlayer
-@@ -564,6 +572,11 @@
- #GroupReferrer excite.com/ Excite
- #GroupReferrer infoseek.com/ InfoSeek
- #GroupReferrer webcrawler.com/ WebCrawler
-+#GroupReferrer yahoo.co.jp/ Yahoo!Japan
-+#GroupReferrer google.co.jp/ GoogleJapan
-+#GroupReferrer infoseek.co.jp/ InfoSeekJapan
-+#GroupReferrer goo.ne.jp/ Goo
-+#GroupReferrer msn.co.jp/ MSNJapan
-
- #GroupUser root Admin users
- #GroupUser admin Admin users
-@@ -702,6 +715,21 @@
- #SearchEngine alltheweb.com q=
- #SearchEngine northernlight.com qr=
-
-+SearchEngine yahoo.co.jp p=
-+SearchEngine google.co.jp q=
-+SearchEngine infoseek.co.jp qt=
-+SearchEngine msn.co.jp q=
-+# ocn
-+SearchEngine goo.ne.jp MT=
-+SearchEngine biglobe.ne.jp q=
-+SearchEngine nifty.com Text=
-+# so-net odn
-+SearchEngine excite.co.jp search=
-+SearchEngine livedoor.com q=
-+SearchEngine jp.aol.com query=
-+#SearchEngine .google. q=
-+#SearchEngine bulkfeeds.net q=
-+
- # Normally, search strings are converted to lower case in order to
- # increase accuracy. The SearchCaseI option allows them to maintain
- # case sensitivity, useful for some sites. The value can be 'yes'
diff --git a/www/webalizer/files/patch-webalizer_lang.japanese b/www/webalizer/files/patch-webalizer_lang.japanese
deleted file mode 100644
index 16749bb2ace7..000000000000
--- a/www/webalizer/files/patch-webalizer_lang.japanese
+++ /dev/null
@@ -1,159 +0,0 @@
---- lang/webalizer_lang.japanese.orig 2008-07-01 22:24:12 UTC
-+++ lang/webalizer_lang.japanese
-@@ -186,16 +186,16 @@ char *h_msg[]= {
-
- /* header strings */
- /* char *msg_hhdr_sp = "Summary Period";*/
--char *msg_hhdr_sp = "統計期間";
--char *msg_hhdr_gt = "作成日時";
-+char *msg_hhdr_sp = "腟沿";
-+char *msg_hhdr_gt = "篏ユ";
-
- /* main index strings */
- char *msg_main_us = "Usage summary for";
--/* char *msg_main_per= "過去12ヶ月"; */
--char *msg_main_per= "月の統計";
--char *msg_main_sum= "月の統計";
--char *msg_main_da = "一日あたりの平均";
--char *msg_main_mt = "月合計";
-+/* char *msg_main_per= "サ12倶"; */
-+char *msg_main_per= "腟沿";
-+char *msg_main_sum= "腟沿";
-+char *msg_main_da = "筝ャ綛喝";
-+char *msg_main_mt = "荐";
-
- /* month HTML page strings */
- char *msg_hmth_du = "Daily usage for";
-@@ -203,77 +203,77 @@ char *msg_hmth_hu = "Hourly usage for";
-
- /* table header strings */
- char *msg_h_by = "By";
--char *msg_h_avg = "平均";
--char *msg_h_max = "最大";
--char *msg_h_total = "合計";
--char *msg_h_totals= "総合計";
--char *msg_h_day = "日";
--char *msg_h_mth = "月";
--char *msg_h_hour = "時";
-+char *msg_h_avg = "綛喝";
-+char *msg_h_max = "紊";
-+char *msg_h_total = "荐";
-+char *msg_h_totals= "膩荐";
-+char *msg_h_day = "";
-+char *msg_h_mth = "";
-+char *msg_h_hour = "";
- char *msg_h_hits = "Hits";
- char *msg_h_pages = "Pages";
- char *msg_h_visits= "Visits";
- char *msg_h_files = "Files";
- char *msg_h_sites = "Sites";
- char *msg_h_xfer = "KBytes";
--char *msg_h_hname = "ホスト名";
-+char *msg_h_hname = "鴻";
- char *msg_h_url = "URL";
--char *msg_h_agent = "ユーザエージェント";
--char *msg_h_ref = "リファラー";
--char *msg_h_ctry = "国";
--char *msg_h_search= "検索文字列";
--char *msg_h_uname = "ユーザ名";
-+char *msg_h_agent = "若吟若吾с潟";
-+char *msg_h_ref = "<";
-+char *msg_h_ctry = "";
-+char *msg_h_search= "罎膣∽絖";
-+char *msg_h_uname = "若九";
-
- /* links along top of page */
--char *msg_hlnk_ds = "日ごとの統計";
--char *msg_hlnk_hs = "時間ごとの統計";
-+char *msg_hlnk_ds = "ャ腟沿";
-+char *msg_hlnk_hs = "腟沿";
- char *msg_hlnk_u = "URL";
--char *msg_hlnk_s = "サイト";
--char *msg_hlnk_a = "エージェント";
--char *msg_hlnk_c = "国";
--char *msg_hlnk_r = "リファラー";
--char *msg_hlnk_en = "エントリー";
-+char *msg_hlnk_s = "泣ゃ";
-+char *msg_hlnk_a = "若吾с潟";
-+char *msg_hlnk_c = "";
-+char *msg_hlnk_r = "<";
-+char *msg_hlnk_en = "潟";
- char *msg_hlnk_ex = "Exit";
--char *msg_hlnk_sr = "検索文字列";
--char *msg_hlnk_i = "ユーザ数";
-+char *msg_hlnk_sr = "罎膣∽絖";
-+char *msg_hlnk_i = "若倶";
-
- /* monthly total table */
--char *msg_mtot_ms = "月の統計";
--char *msg_mtot_th = "全ヒット数";
--char *msg_mtot_tf = "全ファイル数";
--char *msg_mtot_tx = "全 KBytes数";
--char *msg_mtot_us = "個別サイト数";
--char *msg_mtot_ur = "個別リファラー数";
--char *msg_mtot_ua = "個別ユーザエージェント数";
--char *msg_mtot_uu = "個別URL数";
--char *msg_mtot_ui = "個別ユーザ数";
--char *msg_mtot_mhd= "一日あたりのヒット数";
--char *msg_mtot_mhh= "一時間あたりのヒット数";
--char *msg_mtot_mfd= "一日あたりのファイル数";
--char *msg_mtot_mpd= "一日あたりのページ数";
-+char *msg_mtot_ms = "腟沿";
-+char *msg_mtot_th = "";
-+char *msg_mtot_tf = "<ゃ";
-+char *msg_mtot_tx = " KBytes";
-+char *msg_mtot_us = "ャ泣ゃ";
-+char *msg_mtot_ur = "ャ<惹";
-+char *msg_mtot_ua = "ャ若吟若吾с潟";
-+char *msg_mtot_uu = "URL";
-+char *msg_mtot_ui = "ャ若倶";
-+char *msg_mtot_mhd= "筝ャ";
-+char *msg_mtot_mhh= "筝";
-+char *msg_mtot_mfd= "筝ャ<ゃ";
-+char *msg_mtot_mpd= "筝ャ若御";
- char *msg_mtot_msd= "Sites per Day";
--char *msg_mtot_mvd= "一日あたりの訪問者数";
--char *msg_mtot_mkd= "一日あたりのKBytes数";
--char *msg_mtot_rc = "レスポンスコードごとのヒット数";
-+char *msg_mtot_mvd= "筝ャ荐";
-+char *msg_mtot_mkd= "筝ャKBytes";
-+char *msg_mtot_rc = "鴻潟鴻潟若";
-
- /* daily total table */
--char *msg_dtot_ds = "日ごとの統計";
-+char *msg_dtot_ds = "ャ腟沿";
-
- /* hourly total table */
--char *msg_htot_hs = "時間ごとの統計";
-+char *msg_htot_hs = "腟沿";
-
- /* country pie chart */
- char *msg_ctry_use= "Usage by Country for";
-
- /* top tables */
- /* Formatted as "Top xxx of xxx Total something" */
--char *msg_top_top = "トップ";
-+char *msg_top_top = "";
- char *msg_top_of = "of";
--char *msg_top_s = "サイト";
--char *msg_top_u = "全URL";
--char *msg_top_r = "リファラー";
--char *msg_top_a = "ユーザエージェント";
--char *msg_top_c = "国";
-+char *msg_top_s = "泣ゃ";
-+char *msg_top_u = "URL";
-+char *msg_top_r = "<";
-+char *msg_top_a = "若吟若吾с潟";
-+char *msg_top_c = "";
- char *msg_top_en = "Total Entry Pages";
- char *msg_top_ex = "Total Exit Pages";
- char *msg_top_sr = "Total Search Strings";
-@@ -340,7 +340,7 @@ struct response_code response[] =
- { "Code 504 - Gateway Timeout", 0 },
- { "Code 505 - HTTP Version Not Supported", 0 } };
-
--char *msg_title = "利用統計";
-+char *msg_title = "腟沿";
- char *msg_h_other = "Other";
-
- /* Country codes (previously in ctry.h header file) */
diff --git a/www/webhook/Makefile b/www/webhook/Makefile
index 90e361a3b0ad..ec7d250d9de3 100644
--- a/www/webhook/Makefile
+++ b/www/webhook/Makefile
@@ -1,6 +1,6 @@
PORTNAME= webhook
PORTVERSION= 2.8.0
-PORTREVISION= 19
+PORTREVISION= 20
CATEGORIES= www
MAINTAINER= stb@lassitu.de
diff --git a/www/websh/Makefile b/www/websh/Makefile
index 6f6cf0127ad3..bcc7a3e10451 100644
--- a/www/websh/Makefile
+++ b/www/websh/Makefile
@@ -1,11 +1,11 @@
PORTNAME= websh
PORTVERSION= 3.6.0b5
-PORTREVISION= 8
+PORTREVISION= 9
CATEGORIES= www tcl
MASTER_SITES= https://archive.apache.org/dist/tcl/${PORTNAME}/source/
EXTRACT_SUFX= -src.tar.gz
-MAINTAINER= mi@aldan.algebra.com
+MAINTAINER= ports@virtual-estates.net
COMMENT= Embeds a TCL8 interpreter in the Apache server
WWW= https://tcl.apache.org/websh/
diff --git a/www/websocat/Makefile b/www/websocat/Makefile
index 9cb27cb6d79c..e092a3700bf1 100644
--- a/www/websocat/Makefile
+++ b/www/websocat/Makefile
@@ -1,6 +1,7 @@
PORTNAME= websocat
DISTVERSIONPREFIX= v
DISTVERSION= 1.13.0
+PORTREVISION= 1
CATEGORIES= www
MAINTAINER= osa@FreeBSD.org
diff --git a/www/websocketd/Makefile b/www/websocketd/Makefile
index 615de7222ed0..db7f58fa0065 100644
--- a/www/websocketd/Makefile
+++ b/www/websocketd/Makefile
@@ -1,7 +1,7 @@
PORTNAME= websocketd
DISTVERSIONPREFIX= v
DISTVERSION= 0.4.1
-PORTREVISION= 18
+PORTREVISION= 19
CATEGORIES= www
MAINTAINER= ygy@FreeBSD.org
diff --git a/www/wiki-tui/Makefile b/www/wiki-tui/Makefile
index f019bc54d672..06fb70c6aa6d 100644
--- a/www/wiki-tui/Makefile
+++ b/www/wiki-tui/Makefile
@@ -1,7 +1,7 @@
PORTNAME= wiki-tui
DISTVERSIONPREFIX= v
DISTVERSION= 0.8.2
-PORTREVISION= 6
+PORTREVISION= 7
CATEGORIES= www
MAINTAINER= eduardo@FreeBSD.org
diff --git a/www/writeas-cli/Makefile b/www/writeas-cli/Makefile
index 83efee057ccb..ebb9a31d3f37 100644
--- a/www/writeas-cli/Makefile
+++ b/www/writeas-cli/Makefile
@@ -1,7 +1,7 @@
PORTNAME= writeas-cli
DISTVERSIONPREFIX= v
DISTVERSION= 2.0.0-wf
-PORTREVISION= 19
+PORTREVISION= 20
CATEGORIES= www textproc
MASTER_SITES= https://code.as/core/socks/archive/v1.0.0.tar.gz?dummy=/:core_socks
DISTFILES= core-socks-v1.0.0.tar.gz:core_socks
diff --git a/www/wuzz/Makefile b/www/wuzz/Makefile
index 526bcbdc5327..e1e0a150dada 100644
--- a/www/wuzz/Makefile
+++ b/www/wuzz/Makefile
@@ -1,7 +1,7 @@
PORTNAME= wuzz
DISTVERSIONPREFIX= v
DISTVERSION= 0.5.0
-PORTREVISION= 19
+PORTREVISION= 20
CATEGORIES= www
MAINTAINER= yuri@FreeBSD.org
diff --git a/www/xcaddy/Makefile b/www/xcaddy/Makefile
index d1a38b884104..560c651a5a20 100644
--- a/www/xcaddy/Makefile
+++ b/www/xcaddy/Makefile
@@ -1,6 +1,7 @@
PORTNAME= xcaddy
DISTVERSIONPREFIX= v
DISTVERSION= 0.4.0
+PORTREVISION= 1
CATEGORIES= www
DIST_SUBDIR= xcaddy
diff --git a/www/xh/Makefile b/www/xh/Makefile
index 5934cc63c206..2b5043530776 100644
--- a/www/xh/Makefile
+++ b/www/xh/Makefile
@@ -1,7 +1,7 @@
PORTNAME= xh
DISTVERSIONPREFIX= v
DISTVERSION= 0.18.0
-PORTREVISION= 9
+PORTREVISION= 10
CATEGORIES= www
MAINTAINER= lcook@FreeBSD.org
diff --git a/www/xurls/Makefile b/www/xurls/Makefile
index 9afa8b51b7c2..e3bdac085ca3 100644
--- a/www/xurls/Makefile
+++ b/www/xurls/Makefile
@@ -1,7 +1,7 @@
PORTNAME= xurls
DISTVERSIONPREFIX= v
DISTVERSION= 2.5.0
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= www
MAINTAINER= nivit@FreeBSD.org
diff --git a/www/yarn-node22/Makefile b/www/yarn-node22/Makefile
new file mode 100644
index 000000000000..53fde2b308e0
--- /dev/null
+++ b/www/yarn-node22/Makefile
@@ -0,0 +1,5 @@
+USES= nodejs:22,run
+
+MASTERDIR= ${.CURDIR}/../yarn-node20
+
+.include "${MASTERDIR}/Makefile"
diff --git a/www/yarr/Makefile b/www/yarr/Makefile
index 43548e5429f1..1859903c2c75 100644
--- a/www/yarr/Makefile
+++ b/www/yarr/Makefile
@@ -1,7 +1,7 @@
PORTNAME= yarr
DISTVERSIONPREFIX=v
DISTVERSION= 2.4
-PORTREVISION= 5
+PORTREVISION= 6
CATEGORIES= www
MAINTAINER= decke@FreeBSD.org
diff --git a/www/you-get/Makefile b/www/you-get/Makefile
index e4aa1f57f372..ae99db41eee2 100644
--- a/www/you-get/Makefile
+++ b/www/you-get/Makefile
@@ -21,10 +21,9 @@ USE_PYTHON= autoplist pep517 noflavors
NO_ARCH= yes
-OPTIONS_DEFINE= RTMPDUMP SOCKS
+OPTIONS_DEFINE= SOCKS
SOCKS_DESC= SOCKS support
-RTMPDUMP_RUN_DEPENDS= rtmpdump:multimedia/rtmpdump
SOCKS_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pysocks>=0:net/py-pysocks@${PY_FLAVOR}
.include <bsd.port.mk>
diff --git a/www/ytdl/Makefile b/www/ytdl/Makefile
index 1b3264f007db..163ec3f3d899 100644
--- a/www/ytdl/Makefile
+++ b/www/ytdl/Makefile
@@ -1,7 +1,7 @@
PORTNAME= ytdl
DISTVERSIONPREFIX= v
DISTVERSION= 0.6.4
-PORTREVISION= 19
+PORTREVISION= 20
CATEGORIES= www
MAINTAINER= yuri@FreeBSD.org
diff --git a/www/zgrab2/Makefile b/www/zgrab2/Makefile
index 203bc613f811..51e87d91aba5 100644
--- a/www/zgrab2/Makefile
+++ b/www/zgrab2/Makefile
@@ -1,7 +1,7 @@
PORTNAME= zgrab2
DISTVERSIONPREFIX= v
DISTVERSION= 0.1.7
-PORTREVISION= 6
+PORTREVISION= 7
CATEGORIES= www
MAINTAINER= yuri@FreeBSD.org
diff --git a/www/zola/Makefile b/www/zola/Makefile
index 6f568fca199d..84df4d5c709d 100644
--- a/www/zola/Makefile
+++ b/www/zola/Makefile
@@ -1,7 +1,7 @@
PORTNAME= zola
DISTVERSIONPREFIX= v
DISTVERSION= 0.18.0
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= www
MAINTAINER= mikael@FreeBSD.org